Avatar billede sleeper Nybegynder
08. januar 2008 - 13:06 Der er 4 kommentarer og
1 løsning

Slitte celleværdi til flere celler

Hej

Jeg er ved at designe et ark, som kan indlæses i Outlook
Mit problem er at Arket er bygget op således at "Navn" kun står i kollone A?

Nogle personer har "Fornavn" + "Efternavn" Andre har "Fornavn" + "Mellemnavn" + "Efternavn"

Kan man med en formel dele dette til 3 celler, således at b? altid er "Fornavn" C? altid er "Mellemnavn" hvis der ikke er et skal den være tom, og D? altid er "Efternavn"
Avatar billede jlemming Nybegynder
08. januar 2008 - 14:07 #1
Jeg har en vba løsning, men det er nok muligt at der findes en anden

i kolonne A skriver du =delnavn($A$4;1)
i kolonne B skriver du =delnavn($A$4;2)
i kolonne C skriver du =delnavn($A$4;3)

under makro ligger du denne kode:


Function delnavn(navn As String, nr As Integer) As String
For t = 1 To Len(navn)
  navn1 = Left(navn, t)
  If Mid(navn, t, 1) = " " Then Exit For
Next t
Start = t

For t = Len(navn) To 1 Step -1
  navn3 = Right(navn, Len(navn) - t)
  If Mid(navn, t, 1) = " " Then Exit For
Next t
slut = t

If Start <> slut Then
    navn2 = Mid(navn, Start, slut - Start)
End If
Select Case nr
Case 1: delnavn = navn1
Case 2: delnavn = navn2
Case 3: delnavn = navn3
Case Else: delnavn = "?"
End Select
Avatar billede jlemming Nybegynder
08. januar 2008 - 14:16 #2
nu uden fejl :o), hvis kun fornavn


Function delnavn(navn As String, nr As Integer) As String
For t = 1 To Len(navn)
  navn1 = Left(navn, t)
  If Mid(navn, t, 1) = " " Then Exit For
Next t
Start = t

For t = Len(navn) To 1 Step -1
  navn3 = Right(navn, Len(navn) - t)
  If Mid(navn, t, 1) = " " Then Exit For
Next t
slut = t

If slut = 0 Then
    navn3 = ""
    navn2 = ""
End If

If Start <> slut And slut > 0 Then
    navn2 = Mid(navn, Start, slut - Start)
End If

Select Case nr
Case 1: delnavn = navn1
Case 2: delnavn = navn2
Case 3: delnavn = navn3
Case Else: delnavn = "?"
End Select
End Function
Avatar billede sleeper Nybegynder
09. januar 2008 - 07:18 #3
Hej

Der er ligemeget om der er en bedre løsning, dette fungere perfekt.

Ligger du lige et svar?
Avatar billede jlemming Nybegynder
09. januar 2008 - 09:19 #4
svar :o)
Avatar billede jlemming Nybegynder
10. januar 2008 - 09:23 #5
Her er en anden/pænere løsning, men resultatet er det samme :o)

Function delnavn2(navn As String, nr As Integer) As String
delnavn2 = ""
If navn = "" Or nr < 1 Or nr > 3 Then Exit Function
navnsplit = Split(navn, " ")

If UBound(navnsplit) + 1 = 2 And nr = 2 Then    ' byt mellemnavn og efternavn
    nr = 3
Else
    If UBound(navnsplit) + 1 = 2 And nr = 3 Then nr = 2
End If
If nr <= UBound(navnsplit) + 1 Then delnavn2 = navnsplit(nr - 1)

End Function
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester