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

VBA erstes Tabellenblatt in WB einfügen

VBA erstes Tabellenblatt in WB einfügen
13.03.2023 16:10:16
Martina
Hallo an Alle :-)
Ich bin neu hier und brauche bitte eure Hilfe!
Um die Arbeit zu vereinfachen, muss ich aus mehreren ausgewählten Excel Dateien immer das erste Tabellenblatt (welches in allen Dateien gleich heißt, nämlich "Stundenaufstellung") kopieren und in eine Arbeitsmappe einfügen. Die Tabellenblätter sollen den Namen "Stundenaufstellung" nicht behalten, sondern den Namen der Datei, aus der ich das Tabellenblatt kopiert habe, erhalten. In den meisten Fällen sind dann somit 5 Tabellenblätter vorhanden, danach soll man gefragt werden ob die Datei gespeichert werden soll.
Bitte um Info wie das Makro funktionieren würde, da ich bei folgendem Makro aus dem Internet immer alle Tabellenblätter kopiert bekomme und immer die Meldung kommt, dass der Dateiname schon vorhanden ist.... :-(

Dim wbQuelle As Workbook
Dim sh As Worksheet
Dim arrDateien As Variant
Dim cntDatei As Long
arrDateien = Application.GetOpenFilename(filefilter:="Excel-Dateien(*.xlsx*),*.xlsx*", MultiSelect:=True)
If IsArray(arrDateien) Then
    For cntDatei = 1 To UBound(arrDateien)
Set wbQuelle = Workbooks.Open(Filename:=arrDateien(cntDatei), UpdateLinks:=False, ReadOnly:=True)
    
    For Each sh In wbQuelle.Worksheets
         Sheets.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Next sh
    wbQuelle.Close savechanges:=False
    Next cntDatei
End If


Vielen lieben Dank im Voraus :-)
LG

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA erstes Tabellenblatt in WB einfügen
13.03.2023 16:43:16
Rudi
Hallo,
versuch's mal:
Sub aaa()
  Dim wbQuelle As Workbook
  Dim sh As Worksheet
  Dim arrDateien As Variant
  Dim cntDatei As Long
  
  arrDateien = Application.GetOpenFilename(filefilter:="Excel-Dateien(*.xlsx*),*.xlsx*", MultiSelect:=True)
  
  If IsArray(arrDateien) Then
    For cntDatei = 1 To UBound(arrDateien)
      Set wbQuelle = Workbooks.Open(Filename:=arrDateien(cntDatei), UpdateLinks:=False, ReadOnly:=True)
      wbQuelle.Worksheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
      ActiveSheet.Name = Left(wbQuelle.Name, Len(wbQuelle.Name) - 5)
      wbQuelle.Close savechanges:=False
    Next cntDatei
  End If
End Sub
Gruß
Rudi
Anzeige
AW: VBA erstes Tabellenblatt in WB einfügen
13.03.2023 17:00:48
Yal
Hallo Martina,
VBA ist kein Chinesisch. Versuche den Code auf Deutsch laut zu lesen. Du wirst merken, dass Du viel davon verstehen wirst und sogar entdecken, was nicht passt.
Zum Beispiel: im Code höre ich: "für jedes Blatt (Variable sh) in der Quell-Datei ". Nein, falsch, nicht für jedes, sondern nur für die erste, also hier ist zu googeln: vba excel erstes Blatt
In den Ergebnis, bevorzüge learn.microsoft.com, weil kein Werbung, immer gleich strukturiert und meistens mit einfachen Beispiel(e).
Am Ende könnte es so aussehen:
Sub irgendwas()
Dim wQ As Workbook
Dim arrDateien As Variant
Dim D
    arrDateien = Application.GetOpenFilename(filefilter:="Excel-Dateien(*.xlsx*),*.xlsx*", MultiSelect:=True)
    
    If IsArray(arrDateien) Then
        For Each D In arrDateien
            Set wQ = Workbooks.Open(Filename:=D, UpdateLinks:=False, ReadOnly:=True)
            wQ.Worksheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = D
            wQ.Close savechanges:=False
        Next
    End If
End Sub
VG
Yal
Anzeige
AW: VBA erstes Tabellenblatt in WB einfügen
13.03.2023 17:06:28
Yal
...beim laut Lesen wirst Du auch entdecken, was in dem Code von Rudi anders gemacht wird (bei der Umbenennung) und wo er recht hat ;-)
VG
Yal
AW: VBA erstes Tabellenblatt in WB einfügen
13.03.2023 17:43:21
Martina
Danke Euch beiden, hat geklappt!
Ja, ich bin noch am Lernen. Für mich ist es noch nicht so einfach :-)

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige