Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

text in einzelne zellen aufteilen





Frage

Hallo zusammen gerne möchte ich eine ganze liste von namen\vornamen\ort (welches alles so in einer zelle steht) auf einzelne zellen aufteilen. da es aber nicht bei allen einen vornamen hat, sollte bei diesen die zelle dann einfach leer sein und nicht aufrücken Bsp. (steht in a1..a2..a3 etc..) müller\daniel\zürich urg\philip\baden volenweider\unterägeri sollte liefern: b1 müller b2 urg b3 vollenweider c1 daniel c2 philip c3 <leer> d1 zürich d2 baden d3 unterägeri besten dank für eure hilfe raphi ps. excel 2003

Antwort 1 von Saarbauer

Hallo,

geht von Grundsatz her so

in B1 -> =TEIL($A1;1;FINDEN("\";$A1;1)-1)

in C1 -> =TEIL($A1;FINDEN("\";$A1;1)+1;FINDEN("\";$A1;FINDEN("\";$A1;1)+1)-FINDEN("\";$A1;1)-1)

in D1 -> =TEIL($A1;FINDEN("\";$A1;FINDEN("\";$A1;FINDEN("\";$A1;1)+1))+1;50)

Wobei es mit den Fehlenden Daten Probleme gibt, da dies so nicht ohne Weiteres von der Formel festgestellt wird, wie bei

Zitat:
volenweider\unterägeri

Hie kommt eine Fehlermeldung

volenweider\\unterägeri

gibt es keine Probleme

Gruß

Helmut

Antwort 2 von kromgi

Mahlzeit!

Da ich sehr wenig ahnung von excel habe, würde ich keine formel nehmen, sondern das ganze über TEXT IN SPALTEN erledigen. dauert keine 10 sec.
und dann die entstandenen einzelnen zellen nach rechts ziehen soweit es notwendig ist.

wenn die Tabelle nur 100 adressen hat, sollte das in wenigen min. erledigt sein.

FRAGE: woher hast du diese quelldatei mit der komischen inhalt mit den \ als ternnzeichen? hast du da event. eine Exportfunktion nicht optimal abarbeiten lassen?

kromgi

Antwort 3 von Saarbauer

Hallo,

wenn die Daten importiert werden müsste es ohne witere probleme gehen, da hierzu von @ cainam keine Angaben gemacht wurden, bin ich von einer normalen Exceldatei ausgegangen

Gruß

Helmut

Antwort 4 von Cainam

es handelt sich eigentlich um filenamen die ich via eines makros ins excel geholt habe.. nur sind die jetzt so formatiert:

Y:\test\33213231-6544.xls
Y:\test\65465465-6546.xls
Y:\test\pascal müller\65468899-651.xls
Y:\test\pascal müller\69977654-5555.xls
y:\fasdfasdas\asdfasd\asdfsd\asas\sdfsd\sdasg.xls

Antwort 5 von lorf

Hallo raphi,
letztens hatte ich das hier schon mal mit Zeilenumbruch, hier nun noch mal für dich mit \.
Sub Makro1()
For i = 1 To Range("A65536").End(xlUp).Row
  Cells(i, 1).Select
  Call CRTextAufteilen(ActiveCell, "\")
Next i
End Sub


Sub CRTextAufteilen(c As Range, Trennung As String)
'
' CRTextAufteilen Makro
' Trennung z.B. "\" oder auch Chr(10)

Dim VarText, TextBisCR As String

VarText = c  
Beg = 1
Do
  PosCR = InStr(Beg, VarText, Trennung, 1)
  If (PosCR > 0) Then
      TextBisCR = Mid(VarText, Beg, PosCR - Beg)
      Beg = PosCR + 1
    Else
      If (Beg > 0) Then
        TextBisCR = Mid(VarText, Beg, Len(VarText) - Beg + 1)
        Beg = 0
      End If
  End If
  ActiveCell.Next.Select
  ActiveCell = TextBisCR
Loop While Beg > 0

End Sub


Alles was in Spalte A steht, wird bearbeitet. Hinterher stehen die textteile rechts daneben wie oben beschrieben.

Gruß
lorf

Antwort 6 von cainam

danke für das tool...

leider ist es noch nicht ganz das was ich brauche:

da wo kein (zb name) steht sollte die zelle leer bleiben, so dass am schluss alle nummern hinten unter einer spalte stehen....

Antwort 7 von lorf

Hallo cainam,
ich habe das jetzt nochmal so umbestaltet, dass jetzt alles "rechtsbündig" verschoben wird.
Sub Makro1()

Dim c As Range
Dim maxSp, Sp1, Zeilen As Integer
maxSp = 0
Zeilen = Range("A65536").End(xlUp).Row
For i = 1 To Zeilen
  Cells(i, 1).Select
  maxSp = Application.WorksheetFunction.Max(CRTextAufteilenR(ActiveCell, "\"), maxSp)
Next i
For i = 1 To Zeilen
  For Sp = maxSp + 3 To 2 Step -1
    Set c = Cells.Find(What:="*", After:=Cells(i, Sp), SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlValues)
    If (c.Column < 2) Then Exit For
    c.Cut
    ActiveSheet.Paste Destination:=Cells(i, Sp + 3)
  Next Sp
Next i

End Sub


Function CRTextAufteilenR(c As Range, Trennung As String)
'
' CRTextAufteilen Makro
' Trennung z.B. "\" oder auch Chr(10)

Dim VarText, TextBisCR, Sp As String
VarText = c
Beg = 1
Sp = 0
Do
  PosCR = InStr(Beg, VarText, Trennung, 1)
  If (PosCR > 0) Then
      TextBisCR = Mid(VarText, Beg, PosCR - Beg)
      Beg = PosCR + 1
      Sp = Sp + 1
    Else
      If (Beg > 0) Then
        TextBisCR = Mid(VarText, Beg, Len(VarText) - Beg + 1)
        Beg = 0
        Sp = Sp + 1
      End If
  End If
  ActiveCell.Next.Select
  ActiveCell = TextBisCR
Loop While Beg > 0

CRTextAufteilenR = Sp
End Function



Ich hoffe, das läuft so.

Gruß
lorf

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: