Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Macro gesucht Text teilen ab Zeichen "-"

Macro gesucht Text teilen ab Zeichen "-"
Tom
Liebes Forum,
ich suche ein Macro welches mir alle Zeichen links vom "-" (Minus) in eine neue Spalte B und alle Zeichen rechts vom Minus in die neue Spalte C kopiert. Das "-" (Minus) kann ggf. öfter vor kommen, ich möchte es nur auf das erste von links beziehen.
Konkret
Textxyz 79.x - Textabcd (Dos) - Textlmno
Dann soll
Spalte B Textxyz 79.x
Spalte C Textabcd (Dos) - Textlmno
Danke
AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 12:19:17
Marc
Hallo,

Sub lllll()
Dim iZeile As Long
Dim i As Byte
Application.ScreenUpdating = False
For iZeile = 2 To Range("A65536").End(xlUp).Row
Vorhanden = False
For i = 1 To Len(Cells(iZeile, 1))
If Mid(Cells(iZeile, 1), i, 1) = "-" Then
Cells(iZeile, 2) = Left(Cells(iZeile, 1), i - 2)
Cells(iZeile, 3) = Right(Cells(iZeile, 1), Len(Cells(iZeile, 1)) - i - 1)
Exit For
End If
Next i
Next iZeile
Application.ScreenUpdating = True
End Sub


AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 12:37:23
Tom
Marc, Klasse....Vielen Dank.
Kannst Du es noch erweitern wenn kein "-" (Minus) vorkommt, das es dann den Inhalt in Spalte B übernimmt.
Super Danke
Tom
Anzeige
AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 12:43:51
Marc
Okay...

Sub lllll()
Dim iZeile As Long, i As Byte, Vorhanden As Boolean
Application.ScreenUpdating = False
For iZeile = 2 To Range("A65536").End(xlUp).Row
Vorhanden = False
For i = 1 To Len(Cells(iZeile, 1))
If Mid(Cells(iZeile, 1), i, 1) = "-" Then
Cells(iZeile, 2) = Left(Cells(iZeile, 1), i - 2)
Cells(iZeile, 3) = Right(Cells(iZeile, 1), Len(Cells(iZeile, 1)) - i - 1)
Vorhanden = True
Exit For
End If
Next i
If Vorhanden = False Then Cells(iZeile, 2) = Cells(iZeile, 1)
Next iZeile
Application.ScreenUpdating = True
End Sub


AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 13:03:40
Tom
DANKE Marc
Anzeige
AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 12:28:20
UweD
Hallo
als Formel reicht nicht?
 
 ABC
1Textxyz 79.x - Textabcd (Dos) - TextlmnoTextxyz 79.xTextabcd (Dos) - Textlmno
Formeln der Tabelle
B1 : =LINKS(A1;SUCHEN(" - ";A1)-1)
C1 : =RECHTS(A1;LÄNGE(A1)-SUCHEN(" - ";A1)-2)
 

Gruß UweD
Anzeige
AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 12:39:57
Tom
Hallo Uwe,
ich hatte immer Probleme mit der Ausgabe des rechten Teils. Scheinbar irgendwie Längenabhängig o.ä.
ich habe es nicht hinbekommen das XLS von rechts aus das Minus getroffen hat.
Danke
Tom
Uwes Lösung hat einen unschätzbaren Vorteil;...
06.07.2009 14:35:50
Luc:-?
...sie ist - ganz im Sinne von xl - universal, Tom!
Die vorgestellten Lösungen mit Subroutinen sind demggüber Insellösungen, die bei geänderter Ausgangssituation Anpassungsaufwand erfordern — ein Fass (nebst Fehlerquelle) ohne Boden (Ende)... So etwas ist nur bei sehr komplexen bzw umfangreichen Aufgaben sinnvoll.
Deshalb schreibe ich auch überwiegend udFktt!
Gruß Luc :-?
Anzeige
AW: Macro gesucht Text teilen ab Zeichen "-"
06.07.2009 12:58:40
UweD
Hier noch ein Makrolösung


Sub Trennen()
    On Error GoTo Fehler
    Dim TB1, i%, SP%, ZE%, LR&, Such$, PO%
    Such = " - "
    Set TB1 = ActiveSheet   'aus aktuellen Blatt
    SP = 1 'Spalte A
    ZE = 1 'Zeile 1
    With TB1
        LR = .Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
        Application.ScreenUpdating = False
        For i = ZE To LR
            PO = InStr(1, .Cells(i, SP), Such)
            If PO > 0 Then
                .Cells(i, SP).Offset(0, 1) = Left(.Cells(i, SP), PO - 1)
                .Cells(i, SP).Offset(0, 2) = Mid(.Cells(i, SP), PO + Len(Such))
            Else
                .Cells(i, SP).Offset(0, 1) = .Cells(i, SP)
            End If
        Next
    End With
    Err.Clear 'nur bei XL 2007 benötigt
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub


Gruß UweD
Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige