Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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

Daten importieren

Daten importieren
18.05.2016 11:45:06
Jens
Hallo,
ich bräuchte eine Hilfe zum Importieren von daten aus CVS-Dateien in eine Stammdatei.
Stammdatei:
https://www.herber.de/bbs/user/105616.xlsx
BSP einer CVS_Datei:
https://www.herber.de/bbs/user/105617.xlsx
(Leider kann ich die Datei nicht als CSV Datei hochladen. Bitte erneuert abspeichern in CSV-Format.
Was die Datei machen soll steht in der Stammdatei.
Hoffe mir kann wer helfen.
Ich weis nicht wie ich das realisieren soll.
Besten Dank im Voraus

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle cvs öffnen
18.05.2016 12:12:09
Fennek
Hallo Jens,
hier nur eine Teilantwort, um nach einander alls csv-Dateien zu öffnen. Schaffst du das mit dem Kopieren?

sub csv_einlesen()
dim WBZ as workbook 'Ziel
dim WBQ as workbook 'Quelle
set wbz = thisworkbook
sPath = "c:\temp\" ' 
(aus dem Gedächtnis)
mfg

AW: Alle cvs öffnen
18.05.2016 12:17:18
Jens
Hallo,
danke.
Eigentlich würde es reichen die einzelnen Datei über ein Windows menü auswählen zu können.
Mit dem Einlesen kann ich mir definitiv nicht helfen.

AW: Daten importieren
18.05.2016 13:23:34
Zwenn
Hallo Jens,
leider habe ich ein paar Verständnisprobleme zu drei Punkten Deiner Beschreibung, was das Makro machen soll:
1.
Desweiterem soll in der Spalte Dateiname der Dateiname des Datensatzes eingefügt werden und dazu ein Hyperlink generiert werden.
Es soll der Dateiname der CSV Datei, aus der der Datensatz importiert wurde in Spalte A, als Hyperlink auf die CSV eingefügt werden?
2.
Wenn die CVS-Datei importiert ist, soll die CVS-Datei am Ende der Datei mit der Endund-IMPORT versehen werden.
Möchtest Du den Dateinamen der CSV Datei um die Zeichenkette Endund-IMPORT erweitern oder soll das am Ende in die CSV Datei geschrieben werden? Oder habe ich das ganz falsch verstanden? Wenn das in die Datei soll, dann machst Du sie damit quasi "kaputt", weil die Zeichenkette keinen vollständigen Datensatz ergibt und ja auch nicht zu den Daten gehört. Wofür brauchst Du diese Zeichenkette?
3.
Dateisätze die schon in dieser Stammdatei vorhanden sind, wenn nicht aus den CSV_Datein importiert.
Bereits importierte Datensätze, egal aus welcher CSV Datei sollen nicht noch einmal importiert werden?
Deine Stammdatei enthält kein Makro, sondern nur einen funktionslosen Button auf dem ersten Arbeitsblatt. Sollte dass so sein? Falls nicht, lade bitte eine XLSM Datei hoch, die das Makro beinhaltet. Wenn Du noch nix dazu programmiert hast, ist es auch nicht schlimm.
Du kannst zwar keine Datei mit der Endung .csv hochladen, aber du kannst .txt Dateien hochladen. Benenne bitte die Endung Deiner Beispieldatei einfach in .txt um und stelle sie hier noch einmal zur Verfügung. In der Excel Datei, die Du hochgeladen hast fehlen die Einschlusszeichen um die Zahlen und es ist auch nicht mehr zu erkennen, welches Trennzeichen für die Datenfelder in der Originaldatei verwendet wird.
Viele Grüße,
Zwenn

Anzeige
AW: Daten importieren
18.05.2016 13:35:00
Jens
zu 1)
Genau der Dateiname der CVS-Datei als Link.
zu 2)
Mit der Dateinamenerweiterung möchte ich nur die Möglichkeit schaffen anhand des Dateiname feststellen zu können, ob die Datei bereits eingelesen wurde.
Vor dem Einlesen Z.b 1.cvs
nach dem Einlesen dann 1_Import.cvs
Noch eine Anmerkung: Der Dateiname unter 1 sollte der Dateiname der Datei nach dem Einlesen sein. sprich z.b 1_Import.cvs
zu 3)
Genau. Falls ein Datensatz in voller Länge schon vorhanden ist, und man z.b den Datensatz nochmals einlesen möchte, sollte das nicht gehen. Es soll dadurch nur vermieden werden, dass nicht Datensätze ausversehen doppelt eingelesen werden.
Ja die Datei enthält noch keinen Code, weil ich nicht weis wie ich das lösen soll.
Der Aufbau der .CSV Datei ist genau so wie die der Beispiel Datei die ich als xlsx Datei hochgeladen haben.
In jeder Zelle steht ein Wert.
Wenn ich die BSP Datei runterladen die ich aber als XLSX-Datei hochladen musste, ist der Aufbau aber richtig so wie in der CSV-Datei.

Anzeige
AW: Daten importieren
18.05.2016 13:39:35
Jens
Sry es muss natürlich immer CSV Datei heissen nicht CVS.

AW: Daten importieren
18.05.2016 13:52:41
Zwenn
Wenn Du Deine CSV Datei öffnest, dann steht pro Zeile ja ein Datensatz drin. Jeder Datensatz besteht aus Datenfeldern. Jedes Datenfeld ist vom nächsten durch ein bestimmtes Zeichen getrennt.
Welches Zeichen das in deinen Original CSV Dateien ist, kann ich aber in der Excel Datei nicht mehr sehen. Weiterhin ist in der CSV Datei jedes Datenfeld in Anführungszeichen eingeschlossen. In der Excel Datei fehlen diese Anführungszeichen bei allen Zahlenwerten.
Bitte einfach einmal Deine Beispiel CSV Datei als .txt Datei hier bereit stellen, damit Fehlerquellen gleich ausgeschlossen werden, die mit den CSV Dateien einher gehen und diese Datei direkt zum Testen verwendet werden kann. :-)

Anzeige
AW: Daten importieren
18.05.2016 13:53:25
Zwenn
Haben uns überschnitten :-)

AW: Daten importieren
19.05.2016 10:10:03
Jens
Hallo Zwenn,
Funktioniert das Ganze, oder gibt es hier Probleme mit der .txt-Datei bzw. der CSV-Datei zum Einlesen?
Gruß

Probiere mal...
19.05.2016 16:34:12
Michael
Hi Jens,
ich mische mich mal ein, weil die Kollegen sprachlos zu sein scheinen.
Datei anbei: https://www.herber.de/bbs/user/105671.xlsm
Du kannst je eine der beiden Zeilen auskommentieren, je nach dem, ob Du die "" haben willst oder nicht:
c(i, j) = b(j) 'ODER
c(i, j) = Replace(b(j), """", "")
- im unteren Fall sind dann aber ALLE weg, das könnte man zur Not verfeinern...
Das Prüfen auf Doppelte erscheint mir beim Import zu aufwendig; ich habe das mit einer Extra-Sub auf einem getrennten Button realisiert, die Du aber auch ganz am Ende des Imports aufrufen könntest.
Schöne Grüße,
Michael

Anzeige
AW: Daten importieren
19.05.2016 17:35:58
Zwenn
Hallo Jens,
sorry für das Schweigen seit gestern. Mir ist etwas dazwischen gekommen, weshalb ich mich leider bisher nicht weiter um Dein Makro kümmern konnte. Ich schaue nochmal drauf, wenn ich zu Hause bin. Die CSV Datei hat zwar nur eine Zeile, aber ich sehe darin alles, was ich wissen wollte. Das die Zahlenwerte schon in der CSV nicht mit Einschlusszeichen versehen sind hat mich zwar überrascht, ist aber kein Problem.
Michael hat ja auch schon was gebastelt, was Dir vielleicht schon weiterhilft. Das muss ich mir nachher auch erstmal in Ruhe ansehen. Es kann sein, dass ich Dir erst übermorgen eine Lösung präsentieren kann, weil meine Zeit bis dahin leider etwas knapp ist.
Viele Grüße,
Zwenn

Anzeige
AW: Daten importieren
20.05.2016 07:56:11
Jens
hallo Michael,
Danke für die Datei.
Funktioniert super.
Genau so wollte ich es haben.
Aber der Hyperlink wäre noch super.
Undzwar soll noch dem Eintragen des Dateinames auf eine andere Datei ein Hyperlink gesetzt werden.
Wenn z.b die Datei 1.csv heisst und nach dem importieren dann 1._IMPORT.csv dann soll der hyperlink auf die Datei 1.pdf erzeugt werden.
Sprich beim klick auf 1._IMPORT.csv (Name der Datei in der Zelle) geht die 1.pdf Datei auf. Diese liegt in gleichen Ordner wie 1.csv.
Kannst du das noch einbauen?
Da zweite wenn die Daten importiert werden, kann ich irgendwie keine summe in den spalten T un U bilden.
Die Formel stimmt zwar, aber erst wenn ich in einen Zellen mit dem Mauszeiger gehe und dann Enterdrücke, erst dann wird der Wert bei der Summe berücksichtigt und das ist mit allen Zellen in T und U so.
Weist du warum?
Kann man das noch anpassen?
Gruß und vielen vielen Dank.

Anzeige
AW: Daten importieren
20.05.2016 17:20:00
Jens
Super.
Genau so ist es perfekt.
Mir ist noch gerade eine Kleinigkeit aufgefallen.
Wenn man nun eine Datei importiert, die aber schon komplett importiert ist, werden die Daten nicht in die Datei übernommen.
Aber die eingelesen Datei wird nochmals um IMPORT im Dateinamen erweitert.
Das müsste nicht sein.
Eigentlich erst wenn, ein Datensatz der Datei eingefügt wird bzw. nach dem bereinigen übrig bleibt, dann sollte die Datei im Import versehen werden.
Kann man das noch anpassen?
Dann wäre ganz rund.
Vielen Dank schon mal für die Mühe.

Anzeige
AW: Daten importieren
21.05.2016 13:48:33
Michael
Hallo Jens,
es ist mir zu aufwendig, beim Import jeden einzelnen Datensatz zu prüfen, ob er bereits vorhanden ist, und gerade darum habe ich mich gedrückt.
Die "billige" Version ist, nach dem Import und der Entfernung von Doppelten noch einmal die unterste Zeile zu ermitteln, und erst nach Prüfung, ob sie mit dem vorherigen Wert übereinstimmt (dann wurde nichts importiert), die .csv umzubenennen.
So habe ich's jetzt eingebaut: https://www.herber.de/bbs/user/105710.xlsm
Schöne Grüße,
Michael

AW: Daten importieren
21.05.2016 16:27:28
jens
Hallo,
danke habe ich verstanden.
Kann es ein Problem mit dem Code jetzt geben wenn ich nach dem ausführen des Code. Die Spalte b sortieren lasse?
Weil du sagst es wird eine Prüfung der letzten Zeile ausgeführt.
Müsste egal sein oder, weil du prüfst ja nur ob jetzt zusätzliche Zeilen dazu gekommen sind. Falls das der Fall ist, dann wird die Datei umbenannt ansonsten dann nicht. Somit müsste die Sortierfunktion darauf keinen Einfluss haben oder?
Das einzige was nun noch anders ist als zu Vorgängerversion, dass sobald eine Datei Importiert wird, wird die Datei umbenannt, aber der Dateiname der in der Exceldatei dann aufgelistet ist, ist nicht der Name der Datei nach dem Import.
z.b. 1.csv vor dem Import
nach dem Import heisst die Datei 1_IMPORT.csv, was so weit auch passt.
Aber in der Exceldatei ist der Dateiname der Datei als 1.csv gelistet, die es aber nicht mehr gibt.
Kann man das wieder anpassen, das es wieder so ist wie in der vorherigen Version. Dann ist es optimal.
Vielen Dank.

Anzeige
AW: Daten importieren
21.05.2016 18:18:58
Michael
Hm, hm,
das ist dann doch wieder tricky: ich weiß ja erst hinterher, ob die Datei umbenannt wird oder nicht...
Verflixt, der Teufel steckt immer im Detail - Du kannst ja nichts dafür...
Die nächsten paar Tage habe ich leider keine Zeit, mich drum zu kümmern.
Wahrscheinlich ist es am einfachsten, Du verwendest (zumindest bis auf weiteres) die vorletzte Version, die IMMER umbenennt, und rufst schlicht keine Datei auf, die bereits importiert wurde: genau deshalb willst Du ja _IMPORT angehängt haben, damit Du es schon am Dateinamen siehst.
Sorry & schöne Grüße,
Michael

Anzeige
Alternative Lösung
22.05.2016 20:47:57
Zwenn
Hallo Ihr zwei,
Du hast zwar schon eine Lösung präsentiert Michael, aber ich poste trotzdem noch, was ich ausgearbeitet habe. Da ich das erst heute zuende gemacht habe, hatte ich natürlich schon die Infos zu den erweiterten Wünschen von Dir Jens. Das habe ich soweit mal alles mit eingebaut.
Hier viel dazu zu erklären spare ich mir mal. Ich glaube im Makro gibts mehr Kommentare als Programmcode ;-) Wobei ich die ganzen Kontrollstrukturen nicht im Detail kommentiert habe. Die Daten werden komplett in Arrays gehalten und es landet nur im Stammblatt, was auch rein soll.
Unter anderem nehme ich eine Prüfung der Kopfzeile vor, um eventuell andere Spaltenanordnungen in künftigen CSV-Dateien nicht falsch zu importieren. Ich hoffe Deine Beispieldatei war eine original CSV-Datei, ansonsten könnte es mit diesem Feature Probleme geben, falls Deine CSV-Dateien ein sogenanntes Byte Order Mark am Anfang enthalten. Das kann man beheben, wenn man weiß, welches es ist.
https://de.wikipedia.org/wiki/Byte_Order_Mark
Die Dateiumbenennungen werden vorgenommen. Allerdings wird eine Datei im Moment nicht mit der Erweiterung "_IMPORT" versehen, wenn sie noch nie importiert wurde, aber nur Datensätze enthält, die schon im Datenbestand des Stammblattes vorhanden sind. Da ich nicht weiß, ob es diesen Fall geben kann, habe ich das nicht eingebaut. Kann man aber machen.
Hier meine Lösung: https://www.herber.de/bbs/user/105725.xlsm
Viele Grüße,
Zwenn
Viele Grüße,
Zwenn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige