Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: String Zeile für Zeile auslesen

String Zeile für Zeile auslesen
04.08.2023 11:12:27
Urmila
Hallo liebe Community,

ich habe eine Frage zum Thema String auslesen/auswerten.
Ich lese einen Inhalt aus, mit Zeilenumbrüche. Der String ist dann wie folgt aufgebaut:
Text 1 Tag1 Woche2
Text 2 Woche2 Tag2
Text 3 Tag3 Woche3


Nun würde ich den String weiterbearbeiten, aber soll Zeile für Zeile auslesen, und anschließend die einzelne Textbausteine. Ich habe recherchiert und bin auf die Funktion Split aufmerksam geworden. Doch leider weiß ich nicht wie und wo ich es einsetzen soll. Mein bisheriger Code:

Dim aText as String, zStr as String
aText = Activesheet.range("B4").Value
zStr = aText.Split(vbCrLf)???????

Weiter weiß ich leider nicht mehr. Ich hoffe auf Eure Hilfe

LG
Urmila
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
String Zeile für Zeile auslesen
04.08.2023 11:22:38
JoWE
Hallo Urmila,
warum zeigst Du keine Beispielarbeitsmappe die Deine Frage verdeutlicht und das Wunschergebnis zeigt?
Gruß
Jochen
String Zeile für Zeile auslesen
04.08.2023 11:39:57
Urmila
Hallo Jochen,

das würde ich sehr gerne machen, nur ist bei mir am PC der Upload von jeglichen Dateien blockiert :(

LG
Urmila
AW: String Zeile für Zeile auslesen
04.08.2023 12:44:09
JoWE
dann also anders,
wo genau steht der von Dir angegebene Text? Alles in einer einzigen Zelle? Also zum Beispiel in der Zelle A1?
Dann würd' ich das so machen:
Option Explicit


Sub splitTxt_into_Rows()
'genau so hat Daniel das gemacht
'nur die Ausgabe hatte er mittel MessgeBox gelöst
Dim arrText
Dim i As Long
arrText = Split(Range("A1"), Chr(10))
For i = 0 To UBound(arrText)
Cells(i + 1, 2) = arrText(i)
Next
End Sub
Gruß
Jochern
Anzeige
String Zeile für Zeile auslesen
04.08.2023 13:08:07
Urmila
Hallo Jochen,

damit komme ich schon weiter, muss nur noch anpassen, dann ist es so wie ich es haben wollte :)

Danke und schönes Wochenende euch
LG
Urmila
String Zeile für Zeile auslesen
04.08.2023 11:50:28
daniel
dim arrText

dim i as long

arrText = Split(Text, Trennzeichen)

for i = 0 to ubound(arrText)
Msgbox i & " - " & arrText(i)
next

Gruß Daniel
Anzeige
String Zeile für Zeile auslesen
04.08.2023 12:09:35
Urmila
Hallo Daniel,

nochmals vielen lieben Dank für deine Hilfe.
Leider habe ich falsch formuliert.
ich meinte eher, wie ich die Schleife für die Zeilen im String aufbaue?
Das was Du mir geschickt hast, wäre dann der Schritt danach.

Könntest Du mir bitte nochmals helfen?

LG
Urmila
Anzeige
String Zeile für Zeile auslesen
04.08.2023 12:16:50
Rudi Maintaire
Hallo,
wie ich die Schleife für die Zeilen im String aufbaue?
genau das hat er doch gepostet.

Gruß
Rudi
AW: String Zeile für Zeile auslesen
04.08.2023 11:20:08
daniel
Hi
Spilt erzeugt ein eindimensionales Array mit den einzelnen Textteilen.
die aufnehmende Variable deklariert man am besten als Variant.

Dim aText as String, zStr as variant
aText = Activesheet.range("B4").Value
zStr = Split(aText, vbCrLf)


Gruß Daniel
Anzeige
String Zeile für Zeile auslesen
04.08.2023 11:38:53
Urmila
Hallo Daniel,

danke für den Hinweis.
Verrätst Du mir bitte noch, wie ich eine Schleife darin baue?
Also For Schleife?

Lieben Dank und LG
Urmila
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

String Zeile für Zeile auslesen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Zelle ansprechen: Stelle sicher, dass der Text, den Du zeilenweise auslesen möchtest, in einer Zelle steht. Beispiel: Zelle B4.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle "Einfügen" > "Modul".

  4. Code einfügen: Füge den folgenden Code in das Modul ein:

    Option Explicit
    
    Sub SplitTextIntoRows()
       Dim aText As String
       Dim zStr As Variant
       Dim i As Long
    
       aText = ActiveSheet.Range("B4").Value
       zStr = Split(aText, vbCrLf) ' Zeilenumbrüche als Trennzeichen
    
       For i = 0 To UBound(zStr)
           Cells(i + 1, 2).Value = zStr(i) ' Ausgabe in Spalte B
       Next i
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor, gehe zurück zu Excel, und führe das Makro über ALT + F8 aus. Wähle "SplitTextIntoRows" und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Typ Mismatch": Dies kann passieren, wenn Du versuchst, einen String in eine inkompatible Variable zu speichern. Stelle sicher, dass die Variable zStr als Variant deklariert ist.

  • Problem bei der Ausgabe: Wenn keine Daten in die Zellen geschrieben werden, überprüfe, ob die Zelle B4 tatsächlich Daten enthält und ob die Formel im Makro korrekt auf die Zelle verweist.


Alternative Methoden

  • Excel-Formeln verwenden: Anstatt VBA zu nutzen, kannst Du auch die Funktion TEXTKETTE oder TEIL in Kombination mit FINDEN und LÄNGE verwenden, um Text nach bestimmten Zeichen abzuschneiden.

  • Textfeld mit Zelle verknüpfen: Du kannst auch ein Textfeld erstellen und es mit einer Zelle verknüpfen, sodass der Inhalt der Zelle automatisch im Textfeld angezeigt wird.


Praktische Beispiele

  1. Text in Zellen aufteilen: Wenn Du den Text in Zelle B4 zeilenweise in die Spalte B schreiben möchtest, kannst Du den oben genannten Code verwenden.

  2. Jede zweite Zeile farbig markieren: Du könntest das Makro erweitern, um jede zweite Zeile farbig zu markieren:

    If (i + 1) Mod 2 = 0 Then
       Cells(i + 1, 2).Interior.Color = RGB(200, 200, 200) ' Grau
    End If

Tipps für Profis

  • Variablen für Zeilennummern: Du kannst die Zeilennummer als Variable speichern, um flexibler mit den Daten umzugehen:

    Dim zeile As Long
    zeile = 1 ' Startzeile
  • Daten aus anderer Datei auslesen: Wenn Du Informationen aus einer anderen Datei benötigst, kannst Du die Workbooks.Open Methode verwenden, um die Daten zu importieren.


FAQ: Häufige Fragen

1. Wie kann ich den Text nach einem bestimmten Zeichen abschneiden?
Du kannst InStr verwenden, um das Zeichen zu finden, und dann Left oder Mid, um den Text abzuschneiden.

2. Kann ich die Zeilennummer als Variable verwenden?
Ja, speichere die Zeilennummer in einer Variable und verwende diese Variable, um auf die Zellen zuzugreifen.

3. Wie kann ich ein Textfeld mit einer Zelle verknüpfen?
Klicke mit der rechten Maustaste auf das Textfeld, wähle "Steuerelement formatieren" und gebe die Zelle an, mit der es verknüpft werden soll.

4. Was mache ich, wenn mein Makro nicht läuft?
Überprüfe die Makrosicherheitseinstellungen in Excel und stelle sicher, dass Du die richtigen Referenzen in den VBA-Optionen hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige