Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Tabelle einlesen per Makro

Forumthread: Tabelle einlesen per Makro

Tabelle einlesen per Makro
28.08.2014 12:25:04
Bernd
Ich würde mich gerne von einen diversen Verknüpfungen zwischen Exceldateien verabschieden und Quelldaten per Makro in die Zieldatei einlesen. Die Daten sollen als Werte eingelesen werden, idealerweise auch das Format.
Es sollte möglichst so ablaufen:
1. Registerblatt der Quelldatei, in der sich die relevanten Daten befinden, soll vorgegeben werden (im Code).
2. Registerblatt der Zieldatei, in welche die Daten "importiert" werden soll, soll vorgegeben werden (im Code).
3. Der relevanten Datenbereich sollen ebenfalls vorgegeben werden: z. B. Ich möchte aus der Quelldatei A / Registerblatt "Daten" / Spalte B bis E, Zeile 4 bis Zeile 100 nach Zieldatei B / Registerblatt "Import" / Spalte C-F, Zeile 2 bis Zeile 103, Daten importieren.
Schön wäre es, wenn man bei Start des Makros die Quelldatei über eine Art Datei-Explorer aus einer beliebigen Verzeichnisstruktrur auswählen könnte.
Anbei habe ich Musterdateien angehängt, wie das optisch aussehen sollte.
Quelldatei:
https://www.herber.de/bbs/user/92344.xlsx
Zieldatei:
https://www.herber.de/bbs/user/92346.xlsx
Besten Dank im Voraus für Hilfe!

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle einlesen per Makro
28.08.2014 15:54:51
fcs
Hallo Bernd,
nachfolgend ein entsprechendes Makro, das in ein allgemeines Modul der Zieldatei oder in deiner persönlichen Makroarbeitsmappe eingefügt werden muss. Beim Start des Makros muss die Zieldatei die aktive Datei sein.
Gruß
Franz
Sub DatenImportieren()
Dim wkbQuelle As Workbook, wksQuelle As Worksheet, varQuelle As Variant
Dim wkbZiel As Workbook, wksZiel As Worksheet
On Error GoTo Fehler
Set wkbZiel = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte die Datei mit den Quelldaten auswählen"
Application.ScreenUpdating = False
If .Show = -1 Then
varQuelle = .SelectedItems(1)
Set wkbQuelle = Application.Workbooks.Open(varQuelle, ReadOnly:=True)
Set wksQuelle = wkbQuelle.Worksheets("Daten")
Set wksZiel = wkbZiel.Worksheets("Import")
With wksZiel.Range("C2:F103")
.ClearContents
.ClearFormats
End With
wksQuelle.Range("B4:E100").Copy
With wksZiel.Range("C2")
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
wkbQuelle.Close savechanges:=False
Set wkbQuelle = Nothing
End If
End With
Fehler:
Application.ScreenUpdating = True
With Err
Select Case .Number
Case 0 'alles OK
Case 9
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Tabelle ist in Datei nicht vorhanden", vbOKOnly, "Fehlerprüfung"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, _
vbOKOnly, "Fehlerprüfung"
End Select
End With
If Not wkbQuelle Is Nothing Then wkbQuelle.Close savechanges:=False
End Sub

Anzeige
AW: Tabelle einlesen per Makro /Danke!
28.08.2014 16:36:55
Bernd
Hallo Franz!
Scheint perfekt zu funktionieren! Vielen Dank !
Bernd

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige