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

Ein Tabellenblatt in 300 Excel Dateien

Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 12:43:47
speednetz
Hallo,
ich brauche mal euer Hilfe.
Ich habe in einem Ordner Stunden eine Formulardatei "Stundenblatt .xlsm" In dem ein neues Tabellenblatt mit dem Namen "Prüfen" erstellt habe. Dieses beinhaltet Formeln Makros u. Berechnungen.
Der Ordner Stunden beinhaltet über 250 Dateien, die alle Verschiedene Namen haben.
Dieses Tabellenblatt "Prüfen" soll nun in alle Dateien.
Hierfür bräuchte ich ein Makro was dieses Tabellenblatt "Prüfen" automatisch in alle anderen Dateien in diesem Ordner kopiert.
Ich habe im Netz nach geschaut und diese Makro gefunden, was wahrscheinlich dieses erfüllt. Habe es getestet aber leider bleibt es
an folgender Position stehen
With Application.FileSearch
Hier noch das ganze Makro
Public Sub Blatt_kopieren()
Dim WS_kopie As Worksheet
Dim i As Integer
Dim WB As Workbook
Set WS_kopie = ThisWorkbook.Sheets("Prüfen")
With Application.FileSearch
.NewSearch
.LookIn = "G:\Stunden"      '  0 Then
For i = 1 To .FoundFiles.count
If .FoundFiles(i)  ThisWorkbook.FullName Then
Set WB = Workbooks.Open(Filename:=.FoundFiles(i))
WS_kopie.Copy after:=WB.Sheets(WB.Sheets.count)
WB.ChangeLink Name:=ThisWorkbook.Name, NewName:=WB.Name, Type:=xlExcelLinks
WB.Close savechanges:=True
End If
Next i
Else
MsgBox "Es wurden keine Exceldateien gefunden.", vbCritical, "Achtung"
End If
End With
End Sub

Ich kenne mich damit überhaupt nicht aus und bin auf eure Hilfe angewiesen. Wär super wenn ihr mich unterstützen könntet.
Danke im Voraus.
speednetz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 13:24:07
Nepumuk
Hallo,
FileSearch gibt es schon seit Excel 2007 nicht mehr. Teste mal:
Option Explicit
Public Sub Blatt_kopieren()
Const FOLDER_PATH As String = "G:\Stunden\"
Dim WS_kopie As Worksheet
Dim WB As Workbook
Dim strFilename As String
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
Set WS_kopie = ThisWorkbook.Worksheets("Prüfen")
strFilename = Dir$(FOLDER_PATH & "*.xlsm")
Do Until strFilename = vbNullString
If strFilename  ThisWorkbook.Name Then
Set WB = Workbooks.Open(Filename:=FOLDER_PATH & strFilename)
WS_kopie.Copy After:=WB.Sheets(WB.Sheets.Count)
WB.ChangeLink Name:=ThisWorkbook.Name, _
NewName:=WB.Name, Type:=xlExcelLinks
WB.Close SaveChanges:=True
Set WB = Nothing
End If
strFilename = Dir$
Loop
Set WS_kopie = Nothing
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 13:41:51
speednetz
Hallo Nepumuk
Erst mal Danke, dass du mir hilfst.
Ich habe dein Makro ein gebaut leider läuft es noch nicht ganz rund. Es bleibt an folgender Stelle stehen.
WB.ChangeLink Name:=ThisWorkbook.Name, _
NewName:=WB.Name, Type:=xlExcelLinks
und schreibt den Fehler
Die Methode " ChangeLink für das Objekt Workbook ist fehlgeschlagen.
Kannst du hier noch mal schauen.
Gruß speednetz
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 14:08:59
Nepumuk
Hallo,
der geänderte Verweis muss auf eine Tabelle in der Mappe zeigen die es auch gibt.
Gruß
Nepumuk
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 14:09:15
Günther
Moin,
ich kann mir gut vorstellen, dass du mit deiner xl-Version per Power Query (Daten | Abrufen und transformieren) besser klar kommst. Zum einlesen kompletter Verzeichnisse gibt es zwischenzeitlich reichlich Anleitungen im Netz.
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 14:55:45
speednetz
Hallo Nepumuk
Ich habe Diese zwei Zeilen mal geblockt und sie da es hat funktioniert.
Hierfür erst mal Danke
an alle
Nun noch mal eine Frage vielleicht kannst du mir auch hier helfen.
Kann man das Makro auch so ändern, das man nur Tabelle3 aus dem VBA Projekt da, wo die Makros stehen kopieren werden und in die 250 Dateien wieder einfügen werden kann in die gleich Tabelle3?
Vielleicht einfacher ausgedrückt alle Makros aus VBA Tabelle3 in alle
250 Dateien in die gleiche VBA Tabelle3.
Ich hoffe, es ist verständlich.
Ich habe im Original einige Makros geändert und zwei hinzugefügt.
Vielleicht gibt es ja eine Lösung.
Danke schon mal im Voraus
speednetz
Anzeige
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 15:16:23
Nepumuk
Hallo,
teste mal:
Option Explicit
Public Sub Code_kopieren()
Const FOLDER_PATH As String = "G:\Stunden\"
Dim strCode As String
Dim WB As Workbook
Dim strFilename As String
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
With ThisWorkbook.VBProject.VBComponents("Tabelle3").CodeModule
strCode = .Lines(StartLine:=1, Count:=.CountOfLines)
End With
strFilename = Dir$(FOLDER_PATH & "*.xlsm")
Do Until strFilename = vbNullString
If strFilename  ThisWorkbook.Name Then
Set WB = Workbooks.Open(Filename:=FOLDER_PATH & strFilename)
With WB.VBProject.VBComponents("Tabelle3").CodeModule
Call .DeleteLines(StartLine:=1, Count:=.CountOfLines)
Call .InsertLines(Line:=1, String:=strCode)
End With
WB.Close SaveChanges:=True
Set WB = Nothing
End If
strFilename = Dir$
Loop
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Ein Tabellenblatt in 300 Excel Dateien
10.04.2021 17:08:55
speednetz
Hallo Nepumuk
Ich habe dein Makro ausprobiert und es hat super funktioniert.
Danke noch mal für die schnelle Hilfe
Gruß
speednetz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige