Hallo Freunde,
ich bin gerade dabei ein Button zu programmieren der bei Knopfdruck eine Excel datei einliest und ein zuvor gewähltes Tabellenblat in meine Datei kopiert.
Die Definition des Tabellenblattes welches er kopieren soll steht in "B2" meiner Tabelle ( die mit dem Button ).
Er soll dann die Tabelle in meine Zieldatei kopieren . Das blatt hierfür lautet "import"
Ich schaffe es niccht den Blattnamen zu definieren. Es kommt immer Laufzeitfehler an.
So sieht mein code aus:
Sub Import_mit_Dialog()
Dim Quelle As Object, Ziel As Object
Dim Datei As String
On Error GoTo Fehler
'Dialog "Datei öffnen" anzeigen
Datei = Application.GetOpenFilename("Excel-Dateien(*.xlsx),*xlsx")
'Abbrechen falls keine Datei ausgewählt
If Datei = "Falsch" Then
MsgBox "keine Datei ausgewählt", , "Abbruch"
Exit Sub
End If
'MsgBox "Ausgewählte Datei: " & Datei, , ""
'Ausgewählte Datei öffnen
Workbooks.Open Filename:=Datei
'** Auslesen der gewählten Tabelle
'** Angenommen die Blatt-Auswahl "Airbus" und "Bombadier" stehen in Zelle B10
'** Wichtig: die Auswahl muss genauso lauten, wie die Tabellenblätter von denen kopiert werden soll
Set Ziel = ThisWorkbook.Worksheets("import")
blatt = Ziel.Range("B2").Value
Set Quelle = ActiveWorkbook.Worksheets(blatt) '<-- gewähltes Blatt wird definiert als Quelle, alles andere wie gehabt
'kopieren und einfügen
Quelle.UsedRange.Copy Ziel.Cells(1, 1)
ActiveWorkbook.Close Application.DisplayAlerts = True
MsgBox "Import abgeschlossen!"
'Speicher freigeben
Set Quelle = Nothing
Set Ziel = Nothing
Exit Sub
Fehler:
Set Quelle = Nothing
Set Ziel = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub
Muss ich die Zelle B2 in ein bestimmtes format bringen?
Die Eingabe in B2 stimmt zu 100% überein mit dem Blattnamen aus der Quelldatei di er kopieren soll.
Sobald ich den begriff "blatt" herausnehme und einen festen Blatnamen eintrage im Code, funktioniert es.
Ich möchte aber gerne das man zuvor in Zelle B2 den Namen der Tabelle eingibt die man aus der Quelldatei kopieren möchte.
Ich bin am verzweifeln