Microsoft Excel

Herbers Excel/VBA-Archiv

Datenimport

Betrifft: Datenimport von: Thomas
Geschrieben am: 22.09.2014 12:59:11

Hallo!
Ich moechte zwei Excel Arbeitsmappen mit VBA zusammenfuegen. Dabei soll in die Mappe1 (ausgewaehlte) Daten aus der Mappe2 je Zeile Uebertragen werden. Ist das abgeschlossen, soll das gleiche mit der nächsten Zeile erfolgen u.s.w.

Beispiel:
- Zeile 112 ist die naechste freie Zeile der Mappe1 (freie Zeile muss erst automatisch gesucht werden!)
- Mappe2 Daten Zelle(A12) in Mappe1 Zelle (A112)
- Mappe2 Daten Zelle (A18) in Mappe1 Zelle (B112)
- usw.
- sind keine Daten mehr aus Mappe2 vorhanden, gehe in die naechste freie Zeile der Mappe1 (hier also Zeile 113)

Ich hoffe Ihr konntet folgen und koennt mir ein wenig weiter helfen!

Danke


  

Betrifft: AW: Datenimport von: fcs
Geschrieben am: 23.09.2014 11:17:15

Hallo Thomas,

100% konnte ich dir noch nicht folgen.
Hier mal ein Beispiel wie man es im Prinzip machen kann. Ich bin hier davon ausgegangen, dass die Mappe2 noch nicht geöffnet ist.

Gruß
Franz

Sub DatenImportieren_1()
  'Quelldatei ist noch schlossen
  Dim wkbQuelle As Workbook, wksQuelle As Worksheet, varDatei
  Dim wkbZiel As Workbook, wksZiel As Worksheet, ZeileZiel As Long
  
  Set wkbZiel = ActiveWorkbook
  Set wksZiel = wkbZiel.Worksheets("Tabelle1")
  
  With wksZiel
    'letzte benutzte Zeile in Spalte A
    ZeileZiel = .Cells(.Rows.Count, 1).End(xlUp).Row
  End With
  
  'Quelldatei schreibgeschützt öffnen / auswählen
  varDatei = Application.GetOpenFilename( _
      Filefilter:="Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", _
      Title:="Datenquelle öffnen")
  If varDatei = False Then Exit Sub
  Set wkbQuelle = Application.Workbooks.Open(Filename:=varDatei, ReadOnly:=True)
  Set wksQuelle = wkbQuelle.Worksheets(1)  'ggf. Name der Tabelle vorgeben
  
  'Daten übertragen
  ZeileZiel = ZeileZiel + 1
  wksZiel.Cells(ZeileZiel, 1).Value = wksQuelle.Cells(12, 1).Value 'A12
  wksZiel.Cells(ZeileZiel, 2).Value = wksQuelle.Cells(18, 1).Value 'A18
  'usw.
  
  'nächste frei Zeile
  ZeileZiel = ZeileZiel + 1
  'aber was nun? woher kommen die Daten für diese Zeile
  
  'Queldatei ohne speichern wieder schliessen
  wkbQuelle.Close savechanges:=False
End Sub