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

Exceldaten in eine Tabelle übertragen

Exceldaten in eine Tabelle übertragen
01.08.2013 07:42:10
Detlef
Hallo zusammen,
ich brauche eure Hilfe, denn ich bekomme es leider nicht hin.
Ich habe eine Exceltabelle, wo in Spalte B1 ein ID-Code steht. Das gleiche für D1, F1, H1, J1, etc.
Nun habe ich für jeden ID-Code eine separate CSV-Datei mit Werten drin. Der Dateiname ist immer der "ID-Code.csv"
Jetzt will ich per Button erreichen, dass er alle ID-Codes aus meiner Tabelle mit den vorhandenen Dateien vergleicht und wenn diese Dateien vorhanden sind dann soll er jeweils immer die komplette Spalte B in meine Exceltabelle unter dem ID-Code reinkopieren. Z.b. Ab B2 oder D2 etc. Geht sowas? Ich bekomm das leider alleine nicht hin.
Als Beispiel meine Tabellen:
https://www.herber.de/bbs/user/86657.zip
Bei der Programmierung ist es wichtig, dass die ID-Codes auch mal 12 oder 15 oder 22 Zeichen haben kann und sind nicht immer identisch lang.
Die 3 csv Dateien sind die Dateien die in meine Tabelle rüberkopiert werden sollen, aber nur wenn die ID-Codes identisch sind.
Vielen Dank schonmal an alle die mir helfen wollen und können!
LG
Detlef

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exceldaten in eine Tabelle übertragen
01.08.2013 08:09:00
Detlef
Noch zur Ergänzung:
Die CSV-Dateien werden im Unterordner "Exporte" liegen!

AW: Exceldaten in eine Tabelle übertragen
02.08.2013 07:17:14
Detlef
Keiner eine idee?

AW: Exceldaten in eine Tabelle übertragen
02.08.2013 10:51:35
Z1mtstern

Sub Übertragen()
spalte = 1
Do While Workbooks("Mappe1.xlsm").Worksheets("Tabelle1").Cells(1, spalte).Text  ""
IDCode = Workbooks("Mappe1.xlsm").Worksheets("Tabelle1").Cells(1, spalte).Text
Workbooks.Open ("C:\Deinpfad\...\Exporte\" & IDCode & ".csv")
zeile = 1
Do While Workbooks(IDCode & ".csv").Worksheets("Mappe1").Cells(zeile, 1)  ""
Workbooks("Mappe1.xlsm").Worksheets("Tabelle1").Cells(zeile + 1, spalte) = Workbooks(IDCode & ". _
csv").Worksheets("Mappe1").Cells(zeile, 1).Text
zeile = zeile + 1
Loop
Workbooks(IDCode & ".csv").Close
spalte = spalte + 1
Loop
End Sub
Das Makro geht soweit. Du musst dann nur noch sicherstellen, dass du die richtigen Namen einträgst und die Inhalte auch in den richtigen Zeilen stehen.

Anzeige
AW: Exceldaten in eine Tabelle übertragen
02.08.2013 11:15:48
Detlef
Danke für die Hilfe.
Allerdings wird in deinem Code leider nichts von der CSV-Datei in meine Tabelle kopiert.
Kann es sein das du iwas vergessen hast?

AW: Exceldaten in eine Tabelle übertragen
02.08.2013 11:20:43
Detlef
Sorry hatte mich vertan - es funktioniert aber nur bei dem ersten IDCode
Und er soll aus der csv-Datei nur die Spalte B:B komplett übertragen
Nochmal:
Die Zählpunkte stehen immer un B1 - D1 - F1- H1 usw. (immer eine splate frei)
Kriegen wir das auch noch hin?

AW: Exceldaten in eine Tabelle übertragen
02.08.2013 11:24:38
Detlef
Und falls er den ID-Code als CSV nicht findet soll er zum nächsten gehen und nicht abbrechen

AW: Exceldaten in eine Tabelle übertragen
02.08.2013 11:40:20
Frank88
Hallo Detlef,
mit dem folgenden Code wird getestet, ob eine CSV dieses Namens im Unterordner ist.
Sub test()
For i = 2 To 8 Step 2   'startet in 2.Spalte, alle 2
IDNr = Sheets(1).Cells(1, i).Value
Pfad = ThisWorkbook.Path & "\Exporte"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.getfolder(Pfad)
Set fl = f.Files
For Each Datei In fl
If Datei.Name = IDNr & ".csv" Then
MsgBox "Hier muss dann der Code hin" & Chr(32) & _
" zum Kopieren der Daten"
End If
Next
Next
End Sub

Die musst Du dann nur noch öffnen, Daten kopieren, schliessen, fertig.
Die Anzahl der Spalten mit IDs entspricht hier Deiner Beispielmappe (4), ggf anpassen.
Grüsse, Frank

Anzeige
AW: Exceldaten in eine Tabelle übertragen
02.08.2013 12:09:37
Detlef
Danke!!
Aber welchen Code meinst du denn zum kopieren?

AW: Exceldaten in eine Tabelle übertragen
02.08.2013 13:05:58
Frank88
Ja, entweder nutzt Du die entsprechenden Zeilen von Z1mtstern (https://www.herber.de/forum/messages/1325400.html) oder Du nutzt Deine eigene Konstruktion.
'VBA bescheiden' würde ich so interpretieren: Hab schon was gemacht, funktioniert aber nicht.
In Deinem Fall sieht's eher aus wie: Keine Ahnung, macht ihr doch mal.
Manchmal klappt das ja auch.
Grüsse, Frank

AW: Exceldaten in eine Tabelle übertragen
05.08.2013 07:50:39
Detlef
Das ist richtig, ich weiß gerade nicht weiter :-/

AW: Exceldaten in eine Tabelle übertragen
05.08.2013 08:58:58
Detlef
Ich habe jetzt diesen Code:

Sub CSV-Import()
Dim strPfad As String      'Pfad in dem die CSV-Dateien liegen
Dim strCSV As String       'Dateiname = ID-Code
Dim strCSVCont() As String   'Inhalt der CSV-Datei
Dim Spalte As Long         'Spaltennummer
'Pfad festlegen
strPfad = ThisWorkbook.Path & "\"
'Schleife über alle Spalten
For Spalte = 2 To Cells(1, Columns.Count).End(xlToLeft).Column Step 2
strCSV = Cells(1, Spalte).Value & ".csv"        'ID-Code auslesen
If Dir(strPfad & strCSV)  "" Then             'Datei existiert
'komplette CSV-Datei in die Spalte ab Zeile 2 kopieren:
strCSVCont = Split(ReadFile(strPfad & strCSV), vbLf)
With Range(Cells(2, Spalte), Cells(UBound(strCSVCont) + 1, Spalte))
.Value = strCSVCont
.Replace vbCr, "", xlPart
End With
End If
Next
End Sub
Public Function ReadFile(ByVal strFileName As String) As String
Dim intHandle As Integer
intHandle = FreeFile
Open strFileName For Input As #intHandle
ReadFile = Input(LOF(intHandle), #intHandle)
Close #intHandle
End Function
Allerdings weiß ich jetzt nicht weiter, denn er kopiert aus der CSV-Datei Spalte A und B raus, aber ich wollte nur Spalte B:B rauskopiert haben und weiß nicht wo der Fehler liegt.
Zweiter und letzter Fehler ist, dass er immer nur die erste Zeile rauskopiert und diese dann runterkopiert. D.h. ich habe in meiner Tabelle, wo er die CSV-Daten reinkopiert, +100 gleiche Zeilen, da er immer die gleichen Daten kopiert. D.h. in über 100 Zeilen steht die erste Zeile der CSV-Datei.
Weiß jemand warum?
LG
Detlef
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige