Vielen Dank für den Hinweis! Die finale Codezeile muss also lauten: With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Gewohnte Spitzenqualität! Toll aufbereitet und besonders gefällt mir, wie du die "Klick-Objekte" hervorhebst. Selbst wenn man da nicht unsicher ist, macht es das Mitkommen im Video so viel angenehmer 👍
Ja, du hast recht. Ich habe dazu meine Antwort auch im ersten Kommentar angepinnt. Die finale Codezeile muss also lauten: With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Hallo Kai super erklärt und sehr gut nachvollziehbar. Wie geht man denn mit CSV-Dateien um, die nicht UTF-8 codiert sind und auch noch Tausendertrennzeichen(Kommas) und Dezimaltrennzeichen (Punkte) haben? Gibt wohl noch mehr Parameter als das Spaltentrennzeichen.
Hallo, wirklich toller Kanal mit Spitzen-Videos. Du hast hier vergessen, im "With-Block" den absoluten Pfad durch die Variable "Dateipfad" zu ersetzen. Das fällt nur nicht auf, weil du ja im Explorer die Datei Semikolon auch angewählt hast. Hier stimmt also "zufällig" der ausgewählte Dateipfad mit dem absoluten Dateipfad überein.
Vielen Dank für dein Hinweis! Dieser kam schon öfter, daher auch der angepinnte Kommentar ganz oben: Die finale Codezeile muss also lauten: With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Hallo, leider tut sich eine Frage auf, bei der ich als Anfänger Hilfe benötige. Beim Import der .CSV -Daten formatiert das P bei einer Zeile 5,30 Euro zu dem Datum 01.05.1930 um^^. Kann man eine Regel hinzufügen, dass aus jeder CSV Datei die mit Komma angegebenen Preise mit einem Punkt oder einem Komma ausgegeben werden?
Ich habe mir nun schon einige Videos von dir angesehenund bin immer wieder begeistert, wie einfach du die "Sachen" rüber bringst Ich hatte schon eine ähnliche Procedure geschrieben, bei der ich, da diese Routine für verschiedene Dateien benötigt wurde, als Parameter den Dateipfad, das Trennzeichen und den Bereich, die Tabelle für das Ziel, mit geben. Habe auch eine Funktion mit eine Boolean-Wert als Rückgabe daraus gemacht, damit ich in den aufrufenden Proceduren Fehler abfangen kann. Ich bekomme es nur einfach nicht hin, ganz einfach solche Importe dann wieder als CSV-Datei mit variablem Trennzeichen zu speichern. Meine Routine ist sicher noch etwas umständich. Vielleicht kannst du ja einmal bei einem deiner nächsten Videos auf sowas eingehen. Oder gibt es da gar etwas udn ich habe es übersehen?
@@KaiWeissmann Hallo Kai. Würde gerne beim Import das Datum und die Uhrzeit in zwei separate spalten schreiben und das Datum in ein EU Format abändern. Aber das geht wohl nicht in einem Abwasch.
Moin, auch wenn schon ein wenig älter, wieder ein Super Video, hat mir sehr geholfen das ohne "feste Dateinamen" und/oder extra Makros für jede unterschiedliche CSV-Datei umsetzen zu können ... Hättest du vielleicht einen Tipp, wo oder in welche Richtung ich schauen müsste, wenn meine Umlaute nicht richtig importiert werden ? ... Die CSV-Datei ist fest vorgegeben, wird nur runtergeladen und an diese komme ich nicht ran.
Hallo Kai , vielen Dank für die vielen Super Video's , haben mir schon sehr geholfen. Eine Frage, ich habe ein VBA Progamm mit dem ich ein PDF Formular befülle. Auf Arbeit mit der Vollversion von Acrobat DC alles ok. Privat mit dem Reader, Fehlermeldung. Gibt es da eine Lösung oder muss man die Vollversion mieten?
Hallo Kai wie immer super habe bereits vieles gelernt und umgesetzt! Eine Frage habe ich kann mann die eingelesenen daten nach der bearbeitung in Excel auch wieder zurück Konvertieren und wie geht das??
Hallo Kai, wieder eine super Hilfe - DANKE Ich will die eingelesenen Daten als intelligente Tabelle formatieren - STRG + T - und dann versagt EXCEL mir das - warum?
Sehr gerne. Warum hier Strg+T nicht funktioniert kann ich nicht sagen. Versuche es vielleicht einmal direkt per VBA mit der Listobjects.Add Methode. Details dazu in meinem Video zu intelligente Tabellen: ua-cam.com/video/ey3xPAHNO2g/v-deo.html Ich hoffe das hilft dir weiter.
Gutenmorgen Kai, Vielen Dank für wieder ein tolles Lehrmoment. Und genau so etwas könnte ich gebrauchen um Dateien aus autocad zu exportieren und nach bearbeitung wieder zu laden. Autocad aber, macht ein TAB separated Value Text. Wie kann ich den Code deutlich machen dass es keine Komma aber ein TAB nützen soll?
Super!! Danke für deine Zeit! Ich hätte noch ganz gerne ein Problem, nämlich die Trennung mittels "TextFileOtherDelimiter = Zeilenumbruch" und jede Zeile in eine Spalte. Der Name ist Programm, soll heißen die ausgewählte Datei soll die Überschrift in der Ersten spalte sein. D.h bei drücken des Buttons, soll der Name der geöffneten datei in A1 als Überschrift geschrieben werden und der Inhalt der Datei Zeile für Zeile in Spalte B1,C1,D1 usw. geschrieben werden und da ich mehrere Dateien in einem Ordner habe die ich öffnen muss, wäre es schön, wenn dies automatisch durchläuft. Den Dateiname "E00_00" mit +1 hochzuzählen geht ja nicht unbedingt?
Gefällt mir gut das Video. Aber was mir fehlt, ist die Übergabe des Dateipfades in die Zeile mit QueryTables. Dort steht ja bis zum Ende des Videos der manuell eingetragene Dateipfad. Wie wird jetzt der "variable" Dateipfad dort eingetragen?
Hallo Kai, von deinem Kanal bin ich total begeistert! Wage mich nun auch an komplexere VBA-Projekte heran. Deine Erklärungen, die Logik und optische Aufbereitung deiner Videos sind für mich perfekt nachvollziehbar. Ein Problem habe ich aber gerade: Bei dem Import von CSV-Dateien habe ich das Problem, dass ich aus den importierten Daten (via dem im Video erklärten VBA Code) keine intelligente Tabelle erstellen kann. Liefert bei mir immer Laufzeitfehler 1004. Offenbar besteht immer noch eine Verbindung zur ursprünglichen CSV-Datei, die das Umwandeln verhindert. Hast du das schon einmal getestet? Ich habe mal ChatGPT um Rat gefragt, bekomme es aber nicht hin, immer wieder der Laufzeitfehler. Und ich hatte den Eindruck die KI war langsam genervt von mir... Habe auch mal den "Powerquery CSV-Importvorgang" als Makro aufgezeichnet (dort wird ja automatisch eine intelligente Tabelle erzeugt mit bestehender Verknüpfung), wurde daraus aber auch nicht schlauer. Dank ChatGPT habe ich es immerhin hinbekommen, das Format einer Spalte beim Kopieren der CSV-Datei-Daten in Text umzuwandeln (führende Null musste erhalten bleiben -grusel). Das stimmte die KI wieder versöhnlich. Bitte mach auf alle Fälle weiter so und viele Grüße Marco
Hallo Kai Vorweg vielen Dank undein großes Lob für derine Videos. Sie sind immer wieder eine Inspiration. Kann mann bei dieser Prozedur auch steuern, dass das eingelesene Feld als Text geschrieben wird? Ich habe das Problem, dass in der CSV eine Positionsnummer "01.2.1" heist. Beim Import wird es allerdings als Datum interpretiert und wird zu "01.02.2002" Ich habe hierfür keine Löunng gefunden. Geht das überhaupt?
Hallo Kai, was passiert wenn Symbole in der CSV-Datei vorhanden sind und ich diese auslesen und bereinigen will. Da erscheinen nur Fragezeichen. Wie muss ich den Code dafür schreiben?
Hallo Kai, danke, für das und die anderen lehrreichen Videos. Gibt es auch eine Möglichkeit, dass man sich über VBA z. B.: auf seine Hausbank anmeldet und dort dann die CSV runterladen kann? Wäre schön, wenn du das mal weiter erläutern könntest.
Vielen Dank! Auf eine Lösung für dieses Problem habe ich schon lange gewartet. Jetzt fehlt mir nur noch eins. Wie kann ich eine zweite oder dritte Datei einlesen? Zum Beispiel ab welcher Cursorposition? Gut gemacht, bitte weiter so.
Das kannst du natürlich machen. Statt den Bereich fest vorzugeben kannst du eine Variable dafür definieren und z.B. die aktuell ausgewählte Zelle als Startpunkt festlegen. Nutze dafür ActiveCell.Address Hoffe das hilft dir weiter.
Hallo Kai, Danke für das Super Video. Hat mir schon sehr geholfen. Eine Frage hätte ich: Ich möchte mit der importierten Tabelle mit Formeln weiterarbeiten, jedoch verliert Excel den Bezug zu der Importierten Tabelle, wenn ich es lösche und wieder importiere bzw. eine andere CSV importiere. Woran könnte das liegen? Viele Grüße
Hi Kai. Könntest du eventuell ein Video darüber machen, wie man mittels VBA von einer Excel (nach Änderung eines Wertes - ich denke hier z.B. an eine Lagerbestandsveränderung eines Produktes und dem anschließenden speichern) automatisiert eine CSV-Datei erstellen kann, welche die schon vorhandene CSV im gleichen Ordnerpfad überschreibt? Hintergrund meiner Frage ist folgende: Wir arbeiten mit dem Warenwirtschaftssystem JTL-Wawi (dort werden Bestände gepflegt) und zusätzlich ganz oldschool auch mit Excel Lagerlisten. Was die Pflege der Bestände betrifft, so sind die Excel Lagerlisten führend. Via JTL-Ameise (ein Hilfsprogramm der Warenwirtschaft) und einer zusätzlichen Batch kann ich automatisiert jede Stunde eine CSV Datei in der Wawi importieren - allerdings funktioniert das leider nur mit einer CSV. Wir arbeiten aber logischerweise in einer Excel -.- Eventuell gibt es solch ein Video ja auch schon und ich habe es übersehen? Viele Grüße, Manuel
Vielen Dank Kai für Deine Videos. Ich beschäftige mich erst seit ein paar Wochen privat ein wenig mit VBA. Ich versuche meine Unterlagen von der Arbeit so zu automatisieren, dass es mir einfach Arbeit erspart da ich vieles wie Tabellen abgleichen etc alles noch manuell mache. Deine Videos helfen mir sehr dabei und dafür möchte ich mich bedanken. Wenn ich mal gespart habe, werde ich mir Deinen Onlinekurs gönnen. Zu diesem Video habe ich aber dennoch eine kurze Frage, kann es sein, dass wenn ich einen CSV Import mit Datum mache, dass es nicht korrekt funktioniert? Mein Import von CSV Dateien, die Uhrzeit und das Datum enthalten werden nicht nach Semikolon getrennt und ich weiß nicht warum. Mit den ganz normalen Einfügeoptionen wird alles korrekt angezeigt. Nochmals vielen Dank für Deine Mühe.
Hallo Kai, in meiner CSV-Datei sind auch Symbole vorhanden, leider bekomme ich beim Auslesen aber nur Fragezeichen zurück. Was muss ich tun damit ich die Symbole eins zu eins in eine andere Zelle bereinigt (nur erste 3 Zeichen bei einer Länge von 4 Symbolen, bzw. die letzten drei Zeichen bei einer Länge von > 4 Symbolen) übertragen bekomme?
Hallo Kai Tolles Video aber leider bekomme ich Laufzeitfehler 1004 "Auf die Datei kann nicht zugegriffen werden...." Auch andere CSV Dateien z.B. auf dem Desktop lassen sich nicht importieren. Benutze Office 365 (Microsoft® Excel® für Microsoft 365 MSO (Version 2410 Build 16.0.18129.20158) 32 Bit ). In Excel funktioniert der Import der Datei über "Daten -- Aus Text/CSV" Hat sich da in Excel was geändert? Danke für Deine Hilfe. Gruß Stefan
Hallo Kai, danke für das wirklich hilfreiche Video. Leider werden die Umlaute und das "ß" als unleserliche Zeichenfolge importiert. Ich bin aber davon überzeugt, dass Du auch dafür eine Lösung weißt. Viele Grüße Ludwig
@@KaiWeissmann Danke für die schnelle Antwort. 😃Der Kommentar von Klaus Peter wird bei mir nicht angezeigt und @skyte61 gibt seine Lösung wohl nicht bekannt
Hallo Kai, vielen Dank für das super Video. Hilft im ersten Schritt schon super weiter. Ich hab in meiner CSV allerdings noch Zahlen die im US Format sind (Tausendertrennzeichen sind Kommas und Dezimaltrennzeichen sind Punkte) Dies kann ich beim manuellen umwandeln der CSV in Schritt 3/3 bei "weitere Textimporteinstellungen tauschen und dann passt alles wie es sein soll. Ist es möglich diesen Schritt ebenfalls in das Makro mit einzubauen? Vielen Dank schon mal vorab! 😊
Hallo , meine Frage ,wenn ich die Datei auswähle ,muss ich nicht die zeile With Tabelle1.QueryTables.Add(Conneection:="TEXT: ......... ändern .Sonst öffnet sich ja immer die selbe ??
Danke für den Hinweis. - Das ist mir leider auch erst durch die betreffenden Kommentare aufgefallen. Daher habe ich oben die Antwort auch angepinnt: Die finale Codezeile muss also lauten: With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Hallo Kai, interessant wäre jetzt, nur bestimmte Spalten in eine vorhandene Exceltabelle zu importieren, wie zum Beispiel die von der Bank gelieferten Kontodaten, welche im csv-Format empfangen werden, zu integrieren…
Klasse Video interessantes Thema. Ich als Neuling in VBA meine Frage währe wie könnte man das mit Json Datei machen? Ohne Power Query zu benutzen. Hab mal Test gemacht mit eine neue Modul für Tabelle2, csv ersetzt auf json klappt super. Nur die Klammeren zwischen Text und Zahlen, welche Befehl braucht man dort als Code in VBA?🙂Danke
Hi Kai, ich hoffe du liest noch die Kommentare :) Erstmal super Video, bin total begeistert. Leider hänge ich schon seit ca. 2 Stunden an einer Thematik und komme einfach nicht weiter. Deine Code funktioniert bei mir natürlich. Selbstverständlich habe ich auch deine anderen Videos angesehen und habe schon bereits eine intelligente Tabelle mit einem Namen. Jetzt möchte ich die CSV Datei in meine intelligente anhängen, so dass diese größer wird (habs schon mit "add" etc probiert). Leider weiß ich nicht wo ich sonst noch schauen könnte.. bei Microsoft werde ich auch nicht schlauer. :/ Vielleicht hast du noch ein Tipp?
Da müsstest du die Destination entsprechend dynamisch gestalten. Am besten dazu eben eine neue Zeile in der intelligenten Tabelle hinzufügen (add) und diese dann dafür verwenden. Zum Thema intelligente Tabellen habe ich auchschon ein Video gemacht: ua-cam.com/video/ey3xPAHNO2g/v-deo.html Ich hoffe das hilft dir weiter.
Hallo Kai, so ein Video habe ich schon immer gesucht. Super!!! Ich habe noch eine Frage zu dieser Zeile 'CSV importieren With Tabelle1.QueryTables.Add(Connection:="TEXT;C:\Users\....csv", Destination:Tabelle1.Range("A6")). Hiermit kann ich nur diese Datei umwandeln. Wenn ich jetzt aber einen bestimmten Ordner auswähle, darin befinden sich verschieden csv Dateien, und irgendeine auswählen möchte, wie lautet hier der Befehl? Ich komme da nicht mehr weiter.
Der Hinweis kam schon mehrfach, daher der angepinnte Kommentar oben: Die finale Codezeile muss also lauten: With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Hallo Kai, Dein Skript klappt bei mir nur, solange ich den Dateinamen fest übergebe. Wenn ich die Datei mit der Variablen Dateipfad übergebe, kommt die Meldung "Laufzeitfehler '1004' Excel kann die Textdatei für die Aktualisierung des externen Datenbereichs nicht finden". Brauche bitte Unterstützung.
Möchte man (so wie ich) die importierten Daten direkt im Code in eine intelligente Tabelle konvertieren, kann man die Verbindungen zu den externen Daten löschen und anschließend gleich die intelligente Tabelle erstellen: 'Löschen der Verbindung zu externen Daten For Each con In MeinWorksheet.QueryTables con.Delete Next con und dann erst die ListObject Methode (siehe Kai's Video dazu)... Dann hat man im Ergebnis direkt eine von der CSV-Datei unabhängige Tabelle zum Weiterverarbeiten (basierend auf dem hier gezeigten Code von Kai) Vor dem Reimport das Löschen der nun angelegten Tabelle nicht vergessen... Ich hatte immer Laufzeitfehler 1004, wenn ich die ListObject-Methode direkt im Anschluss an Kais Code ausführen wollte. Auch eine Konvertierung aus der Excel-Oberfläche heraus war da nicht möglich. Ob und wie es funktionieren könnte mit bestehender Verknüpfung (also so wie es der Power-Query-Editor standardmäßig macht) habe ich nicht weiter verfolgt, da ich die Daten von der Ursprungsdatei trennen wollte. Viel Spaß
Hallo Kai, Du hast aber jetzt nicht die Variable geöffnet. Du hattest immer noch den festen Wert drin stehen
Vielen Dank für den Hinweis!
Die finale Codezeile muss also lauten:
With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
@@KaiWeissmann Hallo zum glück habe ich die kommentare gelesen! Ich dachte schon es liegt an mir!
Super präsentiert! Hilfreich waren auch die vielen Tipps und Erklärungen "zwischendurch".
Freut mich sehr, dass dir das Video gefällt! LG Kai
Gewohnte Spitzenqualität! Toll aufbereitet und besonders gefällt mir, wie du die "Klick-Objekte" hervorhebst. Selbst wenn man da nicht unsicher ist, macht es das Mitkommen im Video so viel angenehmer 👍
Danke fürs Feedback!
wieder sehr lehrreiches Video. Danke für das teilen deines Wissens.
Immer wieder gerne!
Sehr hilfreich. Die Erklärung ist ausgezeichnet. Vielen Dank
super, wieder was dazu gelernt! Danke Kai
Gerne 😊
Hallo Kai, wie immer Perfekt erklärt! Vielen Dank!
Super Video. Sehr lehrreich.
Freut mich, danke!
Hallo Kai,
bei ca. 12:56 muss doch die zurückgegebene Datei erst noch in den ConnectString eingebunden werden. Oder liege ich da falsch?
Ja, du hast recht.
Ich habe dazu meine Antwort auch im ersten Kommentar angepinnt.
Die finale Codezeile muss also lauten:
With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Hallo Kai super erklärt und sehr gut nachvollziehbar. Wie geht man denn mit CSV-Dateien um, die nicht UTF-8 codiert sind und auch noch Tausendertrennzeichen(Kommas) und Dezimaltrennzeichen (Punkte) haben? Gibt wohl noch mehr Parameter als das Spaltentrennzeichen.
Hallo, wirklich toller Kanal mit Spitzen-Videos. Du hast hier vergessen, im "With-Block" den absoluten Pfad durch die Variable "Dateipfad" zu ersetzen. Das fällt nur nicht auf, weil du ja im Explorer die Datei Semikolon auch angewählt hast. Hier stimmt also "zufällig" der ausgewählte Dateipfad mit dem absoluten Dateipfad überein.
Vielen Dank für dein Hinweis!
Dieser kam schon öfter, daher auch der angepinnte Kommentar ganz oben:
Die finale Codezeile muss also lauten:
With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
wirklich gut erklärt! vielen vielen Dank.
Hallo, leider tut sich eine Frage auf, bei der ich als Anfänger Hilfe benötige. Beim Import der .CSV -Daten formatiert das P bei einer Zeile 5,30 Euro zu dem Datum 01.05.1930 um^^. Kann man eine Regel hinzufügen, dass aus jeder CSV Datei die mit Komma angegebenen Preise mit einem Punkt oder einem Komma ausgegeben werden?
Ich habe mir nun schon einige Videos von dir angesehenund bin immer wieder begeistert, wie einfach du die "Sachen" rüber bringst
Ich hatte schon eine ähnliche Procedure geschrieben, bei der ich, da diese Routine für verschiedene Dateien benötigt wurde, als Parameter den Dateipfad, das Trennzeichen und den Bereich, die Tabelle für das Ziel, mit geben.
Habe auch eine Funktion mit eine Boolean-Wert als Rückgabe daraus gemacht, damit ich in den aufrufenden Proceduren Fehler abfangen kann.
Ich bekomme es nur einfach nicht hin, ganz einfach solche Importe dann wieder als CSV-Datei mit variablem Trennzeichen zu speichern.
Meine Routine ist sicher noch etwas umständich.
Vielleicht kannst du ja einmal bei einem deiner nächsten Videos auf sowas eingehen.
Oder gibt es da gar etwas udn ich habe es übersehen?
vielen Dank für dein Kommentar.
Ich nehme das gerne in die Ideensammlung auf.
Vielen Dank!
Immer gerne
Tolles Video.
Mit welchem Programm nimmst du die Videos auf? Insbesondere die Interaktionen mit Symbole (Strg oder Symbol für Mausklick)
Hallo Verlin,
Ich nehme die Videos mit OBS auf.
Die Tasteneinblendungen werden dann beim Schnitt von meinem Cutter hinzugefügt.
Hallo Kai
wie trennt man dann eine CVS Datei die verschiedene Trennzeichen enthält?
2016-05-12 02:15:00;10445;10741;10420;10709
2016-06-12 02:15:00;10707;10840;10664;10829
2016-07-12 02:15:00;10864;11086;10844;11043
2016-08-12 02:15:00;11028;11206;10980;11173
2016-09-12 02:15:00;11180;11238;11143;11229
2016-12-12 02:15:00;11245;11247;11141;11167
2016-13-12 02:15:00;11177;11308;11174;11277
2016-14-12 02:15:00;11274;11322;11221;11234
2016-15-12 02:15:00;11269;11399;11257;11374
2016-16-12 02:15:00;11372;11451;11351;11390
2016-19-12 02:15:00;11418;11431;11377;11397
2016-20-12 02:15:00;11415;11476;11408;11457
2016-21-12 02:15:00;11447;11483;11444;11463
2016-22-12 02:15:00;11447;11478;11428;11449
2016-23-12 02:15:00;11462;11487;11406;11454
2016-27-12 02:15:00;11427;11483;11425;11463
2016-28-12 02:15:00;11473;11481;11433;11443
2016-29-12 02:15:00;11449;11465;11412;11437
2016-30-12 02:15:00;11458;11486;11403;11444
2017-02-01 02:15:00;11429;11622;11402;11587
Hallo Alexander, spontan erkenne ich in den Daten nur das Semikolon als Trennzeichen. Die Bindestriche zeigen dann lediglich das Datum an. LG Kai
@@KaiWeissmann Hallo Kai. Würde gerne beim Import das Datum und die Uhrzeit in zwei separate spalten schreiben und das Datum in ein EU Format abändern. Aber das geht wohl nicht in einem Abwasch.
Hallo Kai beim auswählen der csv Datei liest Excel immer die noch voreingestellte ein muss ich im Dateipfad die Vaiable angeben?
Moin, auch wenn schon ein wenig älter, wieder ein Super Video, hat mir sehr geholfen das ohne "feste Dateinamen" und/oder extra Makros für jede unterschiedliche CSV-Datei umsetzen zu können ... Hättest du vielleicht einen Tipp, wo oder in welche Richtung ich schauen müsste, wenn meine Umlaute nicht richtig importiert werden ? ... Die CSV-Datei ist fest vorgegeben, wird nur runtergeladen und an diese komme ich nicht ran.
Hallo Kai , vielen Dank für die vielen Super Video's , haben mir schon sehr geholfen. Eine Frage, ich habe ein VBA Progamm mit dem ich ein PDF Formular befülle. Auf Arbeit mit der Vollversion von Acrobat DC alles ok. Privat mit dem Reader, Fehlermeldung. Gibt es da eine Lösung oder muss man die Vollversion mieten?
Hallo Kai wie immer super habe bereits vieles gelernt und umgesetzt! Eine Frage habe ich kann mann die eingelesenen daten nach der bearbeitung in Excel auch wieder zurück Konvertieren und wie geht das??
Hallo Kai, wieder eine super Hilfe - DANKE
Ich will die eingelesenen Daten als intelligente Tabelle formatieren - STRG + T - und dann versagt EXCEL mir das - warum?
Sehr gerne.
Warum hier Strg+T nicht funktioniert kann ich nicht sagen.
Versuche es vielleicht einmal direkt per VBA mit der Listobjects.Add Methode.
Details dazu in meinem Video zu intelligente Tabellen: ua-cam.com/video/ey3xPAHNO2g/v-deo.html
Ich hoffe das hilft dir weiter.
Gutenmorgen Kai,
Vielen Dank für wieder ein tolles Lehrmoment.
Und genau so etwas könnte ich gebrauchen um Dateien aus autocad zu exportieren und nach bearbeitung wieder zu laden.
Autocad aber, macht ein TAB separated Value Text.
Wie kann ich den Code deutlich machen dass es keine Komma aber ein TAB nützen soll?
Super!! Danke für deine Zeit! Ich hätte noch ganz gerne ein Problem, nämlich die Trennung mittels "TextFileOtherDelimiter = Zeilenumbruch" und jede Zeile in eine Spalte. Der Name ist Programm, soll heißen die ausgewählte Datei soll die Überschrift in der Ersten spalte sein. D.h bei drücken des Buttons, soll der Name der geöffneten datei in A1 als Überschrift geschrieben werden und der Inhalt der Datei Zeile für Zeile in Spalte B1,C1,D1 usw. geschrieben werden und da ich mehrere Dateien in einem Ordner habe die ich öffnen muss, wäre es schön, wenn dies automatisch durchläuft. Den Dateiname "E00_00" mit +1 hochzuzählen geht ja nicht unbedingt?
Gefällt mir gut das Video. Aber was mir fehlt, ist die Übergabe des Dateipfades in die Zeile mit QueryTables. Dort steht ja bis zum Ende des Videos der manuell eingetragene Dateipfad. Wie wird jetzt der "variable" Dateipfad dort eingetragen?
Ups. Sorry, habe es jetzt in den Kommentaren gelesen.
Hallo Kai, von deinem Kanal bin ich total begeistert! Wage mich nun auch an komplexere VBA-Projekte heran. Deine Erklärungen, die Logik und optische Aufbereitung deiner Videos sind für mich perfekt nachvollziehbar.
Ein Problem habe ich aber gerade:
Bei dem Import von CSV-Dateien habe ich das Problem, dass ich aus den importierten Daten (via dem im Video erklärten VBA Code) keine intelligente Tabelle erstellen kann. Liefert bei mir immer Laufzeitfehler 1004. Offenbar besteht immer noch eine Verbindung zur ursprünglichen CSV-Datei, die das Umwandeln verhindert. Hast du das schon einmal getestet?
Ich habe mal ChatGPT um Rat gefragt, bekomme es aber nicht hin, immer wieder der Laufzeitfehler. Und ich hatte den Eindruck die KI war langsam genervt von mir...
Habe auch mal den "Powerquery CSV-Importvorgang" als Makro aufgezeichnet (dort wird ja automatisch eine intelligente Tabelle erzeugt mit bestehender Verknüpfung), wurde daraus aber auch nicht schlauer.
Dank ChatGPT habe ich es immerhin hinbekommen, das Format einer Spalte beim Kopieren der CSV-Datei-Daten in Text umzuwandeln (führende Null musste erhalten bleiben -grusel). Das stimmte die KI wieder versöhnlich.
Bitte mach auf alle Fälle weiter so und viele Grüße
Marco
Hallo Kai
Vorweg vielen Dank undein großes Lob für derine Videos. Sie sind immer wieder eine Inspiration.
Kann mann bei dieser Prozedur auch steuern, dass das eingelesene Feld als Text geschrieben wird?
Ich habe das Problem, dass in der CSV eine Positionsnummer "01.2.1" heist. Beim Import wird es allerdings als Datum interpretiert und wird zu "01.02.2002"
Ich habe hierfür keine Löunng gefunden. Geht das überhaupt?
Hallo Kai, was muss ich tun, wenn die CSV-Datei in UTF-8 geschrieben ist, um die Umlaute richtig anzuzeigen?
Hallo Kai, was passiert wenn Symbole in der CSV-Datei vorhanden sind und ich diese auslesen und bereinigen will. Da erscheinen nur Fragezeichen. Wie muss ich den Code dafür schreiben?
Hallo Kai,
danke, für das und die anderen lehrreichen Videos.
Gibt es auch eine Möglichkeit, dass man sich über VBA z. B.: auf seine Hausbank anmeldet und dort dann die CSV runterladen kann?
Wäre schön, wenn du das mal weiter erläutern könntest.
Geht das auch ein zu eins mit txt darein ?
Vielen Dank! Auf eine Lösung für dieses Problem habe ich schon lange gewartet. Jetzt fehlt mir nur noch eins. Wie kann ich eine zweite oder dritte Datei einlesen? Zum Beispiel ab welcher Cursorposition? Gut gemacht, bitte weiter so.
Das kannst du natürlich machen.
Statt den Bereich fest vorzugeben kannst du eine Variable dafür definieren und z.B. die aktuell ausgewählte Zelle als Startpunkt festlegen.
Nutze dafür ActiveCell.Address
Hoffe das hilft dir weiter.
Vielen Dank‼️ ich werde es versuchen👍
Hallo Kai,
Danke für das Super Video. Hat mir schon sehr geholfen.
Eine Frage hätte ich:
Ich möchte mit der importierten Tabelle mit Formeln weiterarbeiten, jedoch verliert Excel den Bezug zu der Importierten Tabelle, wenn ich es lösche und wieder importiere bzw. eine andere CSV importiere.
Woran könnte das liegen?
Viele Grüße
Hi Kai. Könntest du eventuell ein Video darüber machen, wie man mittels VBA von einer Excel (nach Änderung eines Wertes - ich denke hier z.B. an eine Lagerbestandsveränderung eines Produktes und dem anschließenden speichern) automatisiert eine CSV-Datei erstellen kann, welche die schon vorhandene CSV im gleichen Ordnerpfad überschreibt?
Hintergrund meiner Frage ist folgende:
Wir arbeiten mit dem Warenwirtschaftssystem JTL-Wawi (dort werden Bestände gepflegt) und zusätzlich ganz oldschool auch mit Excel Lagerlisten.
Was die Pflege der Bestände betrifft, so sind die Excel Lagerlisten führend. Via JTL-Ameise (ein Hilfsprogramm der Warenwirtschaft) und einer zusätzlichen Batch kann ich automatisiert jede Stunde eine CSV Datei in der Wawi importieren - allerdings funktioniert das leider nur mit einer CSV. Wir arbeiten aber logischerweise in einer Excel -.-
Eventuell gibt es solch ein Video ja auch schon und ich habe es übersehen?
Viele Grüße,
Manuel
Versuche mal diesen Code dafür:
wb.SaveAs Filename:= "PFAD", FileFormat:= xlCSV
@@KaiWeissmann Danke Kai. Ich habe mir nun benötigten Code mit ChatGPT generieren lassen =)
Vielen Dank Kai für Deine Videos. Ich beschäftige mich erst seit ein paar Wochen privat ein wenig mit VBA. Ich versuche meine Unterlagen von der Arbeit so zu automatisieren, dass es mir einfach Arbeit erspart da ich vieles wie Tabellen abgleichen etc alles noch manuell mache. Deine Videos helfen mir sehr dabei und dafür möchte ich mich bedanken. Wenn ich mal gespart habe, werde ich mir Deinen Onlinekurs gönnen.
Zu diesem Video habe ich aber dennoch eine kurze Frage, kann es sein, dass wenn ich einen CSV Import mit Datum mache, dass es nicht korrekt funktioniert? Mein Import von CSV Dateien, die Uhrzeit und das Datum enthalten werden nicht nach Semikolon getrennt und ich weiß nicht warum. Mit den ganz normalen Einfügeoptionen wird alles korrekt angezeigt.
Nochmals vielen Dank für Deine Mühe.
Hallo Kai, in meiner CSV-Datei sind auch Symbole vorhanden, leider bekomme ich beim Auslesen aber nur Fragezeichen zurück. Was muss ich tun damit ich die Symbole eins zu eins in eine andere Zelle bereinigt (nur erste 3 Zeichen bei einer Länge von 4 Symbolen, bzw. die letzten drei Zeichen bei einer Länge von > 4 Symbolen) übertragen bekomme?
Hallo Kai
Tolles Video aber leider bekomme ich Laufzeitfehler 1004 "Auf die Datei kann nicht zugegriffen werden...."
Auch andere CSV Dateien z.B. auf dem Desktop lassen sich nicht importieren.
Benutze Office 365 (Microsoft® Excel® für Microsoft 365 MSO (Version 2410 Build 16.0.18129.20158) 32 Bit ).
In Excel funktioniert der Import der Datei über "Daten -- Aus Text/CSV"
Hat sich da in Excel was geändert?
Danke für Deine Hilfe.
Gruß
Stefan
Hallo Kai,
danke für das wirklich hilfreiche Video. Leider werden die Umlaute und das "ß" als unleserliche Zeichenfolge importiert. Ich bin aber davon überzeugt, dass Du auch dafür eine Lösung weißt.
Viele Grüße
Ludwig
Siehe dazu die Lösung von Klaus Peter - vielen Dank an dieser Stelle!:
Sub Unicode2Westeuropa()
With ActiveSheet.UsedRange
.Replace "Ä", "Ä" 'UTF-8 dezimal: 195 132 | Unicode dezimal: 0196
.Replace "Ã-", "Ö" 'UTF-8 dezimal: 195 150 | Unicode dezimal: 0246
.Replace "Ãœ", "Ü" 'UTF-8 dezimal: 195 156 | Unicode dezimal: 0220
.Replace "ä", "ä" 'UTF-8 dezimal: 195 164 | Unicode dezimal: 0228
.Replace "ö", "ö" 'UTF-8 dezimal: 195 182 | Unicode dezimal: 0246
.Replace "ü", "ü" 'UTF-8 dezimal: 195 188 | Unicode dezimal: 0252
.Replace "ß", "ß" 'UTF-8 dezimal: 195 159 | Unicode dezimal: 0223
.Replace "€", "€" 'UTF-8 dezimal: 194 128 | Unicode dezimal: 0214
'nicht typisch deutsche Beispiele, hier auskommentiert
'.Replace "Ã…", "Å" 'UTF-8 dezimal: 195 133 | Unicode dezimal: 0197
'.Replace "£", "£" 'UTF-8 dezimal: 195 163 | Unicode dezimal: 0163
'.Replace "Â¥", "¥" 'UTF-8 dezimal: 195 165 | Unicode dezimal: 0165
'Weitere Ersetzungen nach Bedarf …
End With
End Sub
@@KaiWeissmann Danke für die schnelle Antwort. 😃Der Kommentar von Klaus Peter wird bei mir nicht angezeigt und @skyte61 gibt seine Lösung wohl nicht bekannt
Hallo Kai, vielen Dank für das super Video. Hilft im ersten Schritt schon super weiter. Ich hab in meiner CSV allerdings noch Zahlen die im US Format sind (Tausendertrennzeichen sind Kommas und Dezimaltrennzeichen sind Punkte) Dies kann ich beim manuellen umwandeln der CSV in Schritt 3/3 bei "weitere Textimporteinstellungen tauschen und dann passt alles wie es sein soll. Ist es möglich diesen Schritt ebenfalls in das Makro mit einzubauen? Vielen Dank schon mal vorab! 😊
Hallo , meine Frage ,wenn ich die Datei auswähle ,muss ich nicht die zeile With Tabelle1.QueryTables.Add(Conneection:="TEXT: ......... ändern .Sonst öffnet sich ja immer die selbe ??
Danke für den Hinweis. - Das ist mir leider auch erst durch die betreffenden Kommentare aufgefallen.
Daher habe ich oben die Antwort auch angepinnt:
Die finale Codezeile muss also lauten:
With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Hallo Kai, interessant wäre jetzt, nur bestimmte Spalten in eine vorhandene Exceltabelle zu importieren, wie zum Beispiel die von der Bank gelieferten Kontodaten, welche im csv-Format empfangen werden, zu integrieren…
Ja, das würde mich auch interessieren. Vieleicht kann Kai ja einen "Teil 2" machen?
Klasse Video interessantes Thema. Ich als Neuling in VBA meine Frage währe wie könnte man das mit Json Datei machen? Ohne Power Query zu benutzen. Hab mal Test gemacht mit eine neue Modul für Tabelle2, csv ersetzt auf json klappt super. Nur die Klammeren zwischen Text und Zahlen, welche Befehl braucht man dort als Code in VBA?🙂Danke
Hi Kai,
ich hoffe du liest noch die Kommentare :)
Erstmal super Video, bin total begeistert.
Leider hänge ich schon seit ca. 2 Stunden an einer Thematik und komme einfach nicht weiter.
Deine Code funktioniert bei mir natürlich.
Selbstverständlich habe ich auch deine anderen Videos angesehen und habe schon bereits eine intelligente Tabelle mit einem Namen.
Jetzt möchte ich die CSV Datei in meine intelligente anhängen, so dass diese größer wird (habs schon mit "add" etc probiert).
Leider weiß ich nicht wo ich sonst noch schauen könnte.. bei Microsoft werde ich auch nicht schlauer. :/
Vielleicht hast du noch ein Tipp?
Da müsstest du die Destination entsprechend dynamisch gestalten.
Am besten dazu eben eine neue Zeile in der intelligenten Tabelle hinzufügen (add) und diese dann dafür verwenden.
Zum Thema intelligente Tabellen habe ich auchschon ein Video gemacht: ua-cam.com/video/ey3xPAHNO2g/v-deo.html
Ich hoffe das hilft dir weiter.
Hallo Kai, so ein Video habe ich schon immer gesucht. Super!!! Ich habe noch eine Frage zu dieser Zeile 'CSV importieren
With Tabelle1.QueryTables.Add(Connection:="TEXT;C:\Users\....csv", Destination:Tabelle1.Range("A6")). Hiermit kann ich nur diese Datei umwandeln. Wenn ich jetzt aber einen bestimmten Ordner auswähle, darin befinden sich verschieden csv Dateien, und irgendeine auswählen möchte, wie lautet hier der Befehl? Ich komme da nicht mehr weiter.
Der Hinweis kam schon mehrfach, daher der angepinnte Kommentar oben:
Die finale Codezeile muss also lauten:
With Tabelle1.QueryTables.Add(Connection:="TEXT;" & Dateipfad, Destination:=Tabelle1.Range("A6"))
Danke für die Rückmeldung! Gibt es auch eine Möglichkeit, dass ich mehrere csv Dateien, wenn möglich gleichzeitig, importiere?@@KaiWeissmann
Wie verhindert man, dass excel manche Werte in ein Datum umwandelt?
Hallo Kai, Dein Skript klappt bei mir nur, solange ich den Dateinamen fest übergebe. Wenn ich die Datei mit der Variablen Dateipfad übergebe, kommt die Meldung "Laufzeitfehler '1004' Excel kann die Textdatei für die Aktualisierung des externen Datenbereichs nicht finden". Brauche bitte Unterstützung.
Sorry, gerade erst den Reply auf @gerhardurban7563 gelesen, jetzt klappt es. Ich finde Deinen Kanal super!
Super das du die Lösung gefunden hast.
Alles Gute für dein Projekt.
Wie bekomme ich die "üäöÜÄÃ-ß" in Umlaute "üäöÜÄÖß" übersetzt?
Habe es schon gelöst....😉
Ich habe das gleiche Problem. Kannst du deine Lösung mit uns teilen?
@@davidgrh gerne
Sub Unicode2Westeuropa()
With ActiveSheet.UsedRange
.Replace "Ä", "Ä" 'UTF-8 dezimal: 195 132 | Unicode dezimal: 0196
.Replace "Ã-", "Ö" 'UTF-8 dezimal: 195 150 | Unicode dezimal: 0246
.Replace "Ãœ", "Ü" 'UTF-8 dezimal: 195 156 | Unicode dezimal: 0220
.Replace "ä", "ä" 'UTF-8 dezimal: 195 164 | Unicode dezimal: 0228
.Replace "ö", "ö" 'UTF-8 dezimal: 195 182 | Unicode dezimal: 0246
.Replace "ü", "ü" 'UTF-8 dezimal: 195 188 | Unicode dezimal: 0252
.Replace "ß", "ß" 'UTF-8 dezimal: 195 159 | Unicode dezimal: 0223
.Replace "€", "€" 'UTF-8 dezimal: 194 128 | Unicode dezimal: 0214
'nicht typisch deutsche Beispiele, hier auskommentiert
'.Replace "Ã…", "Å" 'UTF-8 dezimal: 195 133 | Unicode dezimal: 0197
'.Replace "£", "£" 'UTF-8 dezimal: 195 163 | Unicode dezimal: 0163
'.Replace "Â¥", "¥" 'UTF-8 dezimal: 195 165 | Unicode dezimal: 0165
'Weitere Ersetzungen nach Bedarf …
End With
End Sub
www.excel-ist-sexy.de/unicode-umwandeln/
Kennst du den Spruch: Das war Spitze?
Warum ich das in Zeiten von PowerQuery mit VBA machen sollte, erschließt sich mir irgendwie nicht.
Weil ich z.B. einen mit VBA automatisierten Prozess habe kann, wo ein einfaches .csv-Einlesen ein der Schritte darstellt.
Möchte man (so wie ich) die importierten Daten direkt im Code in eine intelligente Tabelle konvertieren, kann man die Verbindungen zu den externen Daten löschen und anschließend gleich die intelligente Tabelle erstellen:
'Löschen der Verbindung zu externen Daten
For Each con In MeinWorksheet.QueryTables
con.Delete
Next con
und dann erst die ListObject Methode (siehe Kai's Video dazu)...
Dann hat man im Ergebnis direkt eine von der CSV-Datei unabhängige Tabelle zum Weiterverarbeiten (basierend auf dem hier gezeigten Code von Kai)
Vor dem Reimport das Löschen der nun angelegten Tabelle nicht vergessen...
Ich hatte immer Laufzeitfehler 1004, wenn ich die ListObject-Methode direkt im Anschluss an Kais Code ausführen wollte. Auch eine Konvertierung aus der Excel-Oberfläche heraus war da nicht möglich.
Ob und wie es funktionieren könnte mit bestehender Verknüpfung (also so wie es der Power-Query-Editor standardmäßig macht) habe ich nicht weiter verfolgt, da ich die Daten von der Ursprungsdatei trennen wollte.
Viel Spaß
Vielen Dank für den Hinweis und den entsprechenden Code!