Aufgabe automatisieren VBA Excel Text in Tabelle konvertieren?
Hallo Leute,
ich habe einen Text den ich aus einer Webapplikation per STRG-C kopiere und dann in Excel einfügen muss. Der Text ist immer unterschiedlich und das muss ich 2-4Tausend mal machen die nächsten Monate. Daher bin ich daran interessiert, das effizienter mit VBA und Makros zu gestalten aber komme auch mit Makro aufzeichnen nicht zu dem gewünschten Ergebnis.
Also ich schildere euch mal was für ein Text das ist und wie ich das Endformat haben will:
Text:
Es wurden XY bla und XY bla überprüft
Es wurden XY Fehler gefunden
Leerzeile
Text; Text; Text (Zeilen, xmal manchmal 12 manchmal 150 manchmal 1000 Zeilen)
Output: in dem Excelmakrodatei ein Button der das was ich im Zwischenspeicher habe einfügt.
Ab Zeile 4 bis Ende markieren und Text in Spalten konvertieren - Getrennt anhaken --> Weiter, dann Haken nur bei Semikolon setzen --> Fertig klicken.
Dann soll das als Tabelle Formatiert werden aber mit zwei zusätzlichen Spalten aber da ich immer unterschiedliche viele Zeilen habe, weiß ich nicht wie ich das automatisieren soll.
Und dann vor allem möchte ich ganze Zeilen mit die in Spalte C u.a. eine bestimmte textkette haben löschen lassen.
Für jede Hilfe bin ich dankbar. Ich habe mir Tutorials angeschaut aber die behandeln irgendwie alle es auf komische Art und Weise und nicht das Problem mit dem Formatieren der unterschiedlich langen Tabelle sowie des Löschen der Zeilen.
2 Antworten
Das Problem ist zu groß. Ich bräuchte dafür bestimmt 2 Tage.
Etwas aus einer "Webapplikation" (sagen wir Browser) zu kopieren und in Excel einzufügen wäre das Riesenthema "Web automatisation"
Damit sparst du dir den "aus der Zwischenablage" in ein Exceldatenblatt kopieren Schritt. Das lohnt natürlich nur sich so etwas zu programmieren, wenn du sehr häufig den STRG C Befehl ausführst.
Ab Zeile 4 bis Ende markieren und Text in Spalten konvertieren - Getrennt anhaken --> Weiter, dann Haken nur bei Semikolon setzen --> Fertig klicken.
Nach diesem Schritt fängt die klassische Programmierung an.
Dann soll das als Tabelle Formatiert werden aber mit zwei zusätzlichen Spalten aber da ich immer unterschiedliche viele Zeilen habe, weiß ich nicht wie ich das automatisieren soll.
Hier musst du dann mal gucken wie man Tabellen zeichnet mit VBA Code. Den Makrorekorder kannst du als Hilfe für Zwischenschritte einsetzen. Einige Programmierskills solltest du bereits haben.
Und dann vor allem möchte ich ganze Zeilen mit die in Spalte C u.a. eine bestimmte textkette haben löschen lassen.
Sub zeilenLoeschen()
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'in Spalte A
suchtext = "asdf"
For i = 1 To letztezeile
For k = 1 To 26
If Cells(i, k) = suchtext Then
Rows(i).Delete
i = i - 1
Exit For
End If
Next
Next
End Sub
Dieses Programm prüft zunächst wie viele Zeilen zu überprüfen sind. Es ermittlert die letzte Zeile in Spalte A. Das heißt von allen Spalten A,B,C... muss in Spalte A immer ganz unten der letzte Eintrag sein.
Es sucht nun in allen Spalten den suchtext "asdf" in den Spalten A bis Z (1 bis 26).
Wird der Suchtext gefunden in einer Zelle A bis Z, wird die gesamte Zeile gelöscht.
Also, das Thema "Web automatisieren" ist groß. Ich stimme zu.
Aber man kann jeden Browser "fernsteuern" (Google: "Selenium Driver") und man hat Ruck zuck auf die "eigenen Bedürfnisse" die Dinge programmiert.
Es gibt auch viel Sample Code, so dass man nicht von vorne beginnt.
Wenn du dich bereists mit VBA auskennst ist dies in einer Woche -robust- erledigt.
"Ich habe einen Text den ich aus einer Webapplikation per STRG-C kopiere.."
Dies von Hand zu machen ist bereits unnötig und führt zu den weiteren Aufwänden.
Dies kann man automatisieren. Daher meine Anregung.
Ggf sogar ohne VBA, denn Excel aknn sich auch mit Webseiten verbinden.
Wichtig ist nur, dass dort eine Tabellenstruktur vorkommt.
Danke für deinen Input! :) Aber das Copy Pasten ist nicht zeitaufwendig, die Schritte die ich aufgezählt habe sind zeitaufwendig, diese würde ich gern zu einem hohen Grad automatisieren.
Den Browser will ich nicht automatisieren sondern nur die Eingabe in Excel inklusiver Formatierung und rauslöschen von Zeilen.