ich habe in der Spalte X (24) einen langen Text.
Nun möchte ich in der Spalte Y (25) den Text kopiert haben bis zum Komma.
Immer ab Zeile 4 bis zum Ende, das Ende sool in der Spalte "B" ermittelt werden.
Wenn möglich mit einem Makro ?
mfg walli
sub TextWurm()
erstesKomma=instr(1,range("X24"),",")
Textbisdahin=left(range("X24"),erstesKomma-1)
range("Y25")=Textbisdahin
end sub
Sub Teilmich()
for zae1=4 to 23 ' Die 23 kannst du deiner Zeilenanzahl anpassen
left(cells(zae1,"X"),instr(1,cells(zae1,"X"),",")-1).copy
cells(zae1,"Y").paste
next zae1
end sub
Sub Teilmich()
'Text in Spalte X (24) bis zum 1. Komma ausschneiden und in Spalte Y (25) eintragen
Dim zae1 As Long, sText As String
For zae1 = 4 To 23 ' Die 23 kannst du deiner Zeilenanzahl anpassen
sText = Cells(zae1, 24).Text
'Komma im Text vorhanden
If InStr(1, sText, ",") > 1 Then
Cells(zae1, 25) = Left(sText, InStr(1, sText, ",") - 1)
'Komma an 1. Position
ElseIf InStr(1, sText, ",") = 1 Then
Cells(zae1, 25).ClearContents
Else
'Kein Komma im text
Cells(zae1, 25).ClearContents
' Cells(zae1, 25)=sText
End If
Next zae1
End Sub
Sub TeilKommaXY()
Dim arrA, arrE() As String, zz As Long
arrA = Cells(4, 24).Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3)
ReDim arrE(1 To UBound(arrA))
For zz = 1 To UBound(arrE)
arrE(zz) = Split(arrA(zz, 1), ",")(0)
Next zz
Cells(4, 25).Resize(UBound(arrE)) = Application.Transpose(arrE)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Sub TeilKommaXYv2()
Dim arrA, zz As Long
arrA = Cells(4, 24).Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3)
For zz = 1 To UBound(arrA)
arrA(zz, 1) = Split(arrA(zz, 1), ",")(0)
Next zz
Cells(4, 25).Resize(UBound(arrA)) = arrA
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Sub TeilKommaXYv3()
Dim arrA, zz As Long, strE As String
arrA = Cells(4, 24).Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3)
For zz = 1 To UBound(arrA)
strE = Split(arrA(zz, 1), ",")(0)
arrA(zz, 1) = strE & IIf(strE arrA(zz, 1), ",", "")
Next zz
Cells(4, 25).Resize(UBound(arrA)) = arrA
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Sub Teilmich2()
Dim arrA, zz As Long, strE As String
arrA = Cells(4, 24).Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3)
For zz = 1 To UBound(arrA)
If Len(arrA(zz, 1)) > 0 Then
strE = Split(arrA(zz, 1), ",")(0)
arrA(zz, 1) = IIf(strE = arrA(zz, 1), "", strE)
End If
Next zz
Cells(4, 25).Resize(UBound(arrA)) = arrA
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-LintfortÖffne Excel und lade deine Datei, die den Text enthält, den du bis zum Komma aufteilen möchtest.
Wähle die Zelle in Spalte Y, ab Zeile 4, wo der Text bis zum Komma eingefügt werden soll.
Öffne den VBA-Editor:
ALT + F11
, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Kopiere und füge folgenden Code ein:
Sub Teilmich()
Dim zae1 As Long
For zae1 = 4 To Cells(Rows.Count, 24).End(xlUp).Row
If InStr(1, Cells(zae1, 24), ",") > 0 Then
Cells(zae1, 25) = Left(Cells(zae1, 24), InStr(1, Cells(zae1, 24), ",") - 1)
Else
Cells(zae1, 25).ClearContents
End If
Next zae1
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus:
ALT + F8
, wähle „TeilMICH“ aus und klicke auf „Ausführen“.Damit werden die Texte in Spalte X bis zum ersten Komma in Spalte Y kopiert.
Kein Komma in der Zelle: Wenn der Text kein Komma enthält, wird die Zelle in Spalte Y leer gelassen. Stelle sicher, dass alle relevanten Zellen ein Komma enthalten, oder passe den Code an, um einen Standardwert zu setzen.
Leere Zellen: Wenn eine Zelle leer ist, zeigt Excel keine Fehlermeldung, sondern bleibt ebenfalls leer. Um das Verhalten zu ändern, kannst du den Code so anpassen, dass leere Zellen nach einem bestimmten Muster behandelt werden.
Datenformat: Überprüfe, dass die Daten in Spalte X im Textformat vorliegen. Excel kann manchmal Zahlen als solche interpretieren und nicht als Text.
Daten > Text in Spalten:
Formelansatz:
=WENNFEHLER(LINKS(X4;FINDEN(",";X4)-1);"")
1. Wie funktioniert das Makro genau? Das Makro sucht in jeder Zelle der Spalte X nach dem ersten Komma und kopiert den Text davor in die entsprechende Zelle in Spalte Y.
2. Was passiert, wenn kein Komma vorhanden ist? Wenn kein Komma vorhanden ist, wird die Zielzelle in Spalte Y geleert.
3. Kann ich das Makro auch für andere Spalten verwenden? Ja, du kannst die Spaltennummern im Code anpassen, um das Makro für andere Spalten anzuwenden.
4. Wie kann ich das Makro speichern, sodass es immer verfügbar ist? Speichere deine Excel-Datei als „Excel-Makro-fähige Arbeitsmappe“ (*.xlsm), um das Makro zu behalten.
5. Ist es möglich, das Komma mit in den Text zu kopieren? Ja, du kannst den Code so anpassen, dass er das Komma mit einbezieht. Ändere die Zeile im Code, die den Text kopiert, entsprechend ab.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen