Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1576to1580
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
CommandButton: Tabellenblätter einfügen
24.08.2017 14:54:46
Joline
Hallo ihr Lieben,
mir stellt sich folgende Frage, ich möchte mit Hilfe eines CommandButtons eine Arbeitsmappe auslesen, die Arbeitsmappe besteht aus mehreren Tabellenblättern, die auch wieder auf verschiedenen Tabellenblättern eingefügt werden sollen.
Ich habe eine Datei mit 4 auszulesenden Tabellenblättern und möchte die in die ersten 4 Tabellenblätter meiner Ziel-Arbeitsmappe einfügen.
Mein Ansatz ist folgender, das erste Tabellenblatt einzulesen ist auch kein Problem, nur die restlichen kann ich nicht einlesen.
Private Sub CommandButton1_Click()
Dim pfadQuelle As Variant
Dim pfadZiel As String
Dim nameQuelle As String
Dim nameZiel As String
Dim limit As Integer
Application.ScreenUpdating = False
pfadQuelle = Application.GetOpenFilename(Title:="Bitte eine Datei auswählen", FileFilter:="  _
_
Excel,*.xls?", MultiSelect:=True)
If TypeName(pfadQuelle) = "Boolean" Then
GoTo Fehler
End If
nameZiel = ActiveWorkbook.Name
'MsgBox nameZiel
If UBound(pfadQuelle) > 1 Then
limit = 1
MsgBox "Es wurden mehr als 1 Datein ausgewählt!"
Else
limit = UBound(pfadQuelle)
End If
Dim index As Integer
For index = 1 To limit
Workbooks.Open (pfadQuelle(index))
nameQuelle = ActiveWorkbook.Name
'MsgBox nameQuelle
Workbooks(nameQuelle).Sheets(1).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(index).Range("A1")
Workbooks(nameQuelle).Sheets(2).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(index).Range("A1")
Workbooks(nameQuelle).Sheets(4).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(index).Range("A1")
Workbooks(nameQuelle).Sheets(5).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(index).Range("A1")
Workbooks(nameQuelle).Close SaveChanges:=False
Next index
MsgBox "Einlesen Abgeschlossen"
Exit Sub
Fehler:
MsgBox "Daten wurden nicht eingelesen!"
Application.ScreenUpdating = True
End Sub

Es wäre toll,wenn mir jemand helfen könnte!
Vielen Dank und liebe Grüße
Joline

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CommandButton: Tabellenblätter einfügen
24.08.2017 16:00:32
Piet
Hallo Joline
ohne auf den Öffnungs Dialog einzugehen kann es m.E. mit For Next nicht klappen. Du überschreibst immer wieder schon kopierte :Werte. Probier mal den unteren Code einzubauen. (auf die schnelle geschrieben )
mfg Piet
     Workbooks.Open pfadQuelle
nameQuelle = ActiveWorkbook.Name
'MsgBox nameQuelle
Workbooks(nameQuelle).Sheets(1).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(1).Range("A1")
Workbooks(nameQuelle).Sheets(2).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(2).Range("A1")
Workbooks(nameQuelle).Sheets(4).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(3).Range("A1")
Workbooks(nameQuelle).Sheets(5).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(4).Range("A1")
Workbooks(nameQuelle).Close SaveChanges:=False
MsgBox "Einlesen Abgeschlossen"
Exit Sub

Anzeige
AW: CommandButton: Tabellenblätter einfügen
24.08.2017 16:03:12
ChrisL
Hi Joline
Die Variable "index" steht für die ausgewählte Datei (1-n bei Mehrfachauswahl) und nicht für das Blatt.
Ich weiss jetzt nicht wohin du kopieren möchtest, aber z.B.
        Workbooks(nameQuelle).Sheets(1).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(1).Range("A1")
Workbooks(nameQuelle).Sheets(2).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(2).Range("A1")
Workbooks(nameQuelle).Sheets(4).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(3).Range("A1")
Workbooks(nameQuelle).Sheets(5).Range("A1:AR63").Copy _
Destination:=Workbooks(nameZiel).Sheets(4).Range("A1")
Warum erlaubst du MultiSelect:=True (Mehrfachauswahl), wenn du dann doch nur eine Datei auswertest?
cu
Chris
Anzeige
AW: CommandButton: Tabellenblätter einfügen
25.08.2017 07:41:19
Joline
Guten Morgen,
Chris, vielen Dank für den Code er läuft! Auf die Sache mit dem "index" hätte ich auch kommen können, hach irgendwann wird man einfach Betriebsblind!
Die Formulierung MultiSelect:=true kommt aus einer anderen Vorlage, danke für den Tipp das muss dann wohl auch noch angepasst werden.
Piet, bei dir bekomme ich den Laufzeitfehler 13: Typen Unverträglichkeit, da der andere Code aber läuft habe ich nicht weiter gesucht.
Vielen Dank euch beiden!

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige