Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
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
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblatt ersetzen

Tabellenblatt ersetzen
31.05.2006 09:20:45
Robert
Ich muss in über 200 Dateien wovon es eine neuere version gibt, 1 Tabellenblatt aus Datei 1 nehmen und es in Datei 2 ersetzen. Gibt es da ein Trick das ich es nicht alles händisch machen muss?
Robert

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 09:33:45
Matthias G
Hallo Robert,
Drei Rückfragen:

  1. bleibt der Name des Tabellenblattes gleich?
  2. Sind es denn so viele Änderungen, dass das komplette Blatt getauscht werden muss? Evtl. genügt es ja, die Änderungen Makrogesteuert in jeder Mappe durchzuführen.
  3. Existieren auf den zu tauschenden Blatt Bezüge auf andere Tabellenblätter?

Gruß Matthias
AW: Tabellenblatt ersetzen
31.05.2006 09:48:32
Robert
zu 1: Ich habe den Namen von Datei 2 schon um die Projektnummer verkürzt um beide gleichzeitig zu öffnen.
zu 2: Es handelt sich um das Deckblatt der Listen, das nicht vorschriftmäßig estellt worden ist, es sollte schon das ganze Blatt ausgetausch werden.
Zu 3: Es sind von Acces erstellte Dateien, es gibt keine Zellbezuge.
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 10:42:54
Matthias G
Hallo Robert,
füge mal in die Mappe, die das neue Blatt enthält, ein Modul mit diesem Code ein:

Option Explicit
Const Blattname = "Tabelle2" 'hier wird die Dateiliste erstellt
Sub ErstelleDateiliste()
Const Pfad = "C:\Dokumente und Einstellungen\Matthias\Desktop\Jo\Blattwechsel"
Dim fn As String, z As Integer
Sheets(Blattname).Cells.ClearContents
fn = Dir(Pfad & "\*.xls")
Do While fn <> ""
z = z + 1
Sheets(Blattname).Cells(z, 1) = Pfad & "\" & fn
fn = Dir()
Loop
End Sub
Sub TauscheBlätter()
Const Tauschname = "Tabelle1" 'Name der zu tauschenden Blattes
Dim z As Range
Dim wb As Workbook
Set z = Sheets(Blattname).Cells(1, 1)
Do While z.Value <> ""
Set wb = Workbooks.Open(Filename:=z.Value)
Application.DisplayAlerts = False
wb.Sheets(Tauschname).Delete
Application.DisplayAlerts = True
ThisWorkbook.Sheets(Tauschname).Copy Before:=wb.Sheets(1)
wb.Close Savechanges:=True
Set z = z.Offset(1, 0)
Loop
End Sub

Die Prozedur ErstelleDateiliste() erstellt (in Tabelle2) die Liste der Dateien, deren Blatt auszutauschen ist. Die andere Prozedur tauscht die Blätter dann mit Hilfe dieser Liste aus.
Gruß Matthias
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 11:49:12
Robert
In meine Dateien gibt es kein Blatt "Tabelle2", desweiteren befinden sich die Dateien nicht im gleichen verzeichnis...
Die idee mit der Liste ist nicht schlecht... Optimal wäre also ein Tool wo ich Datei1 und Datei2 in eine Liste habe(inklusive Pfadangaben), und dann das Aus zu tauschende Blatt Angebe.
Es handelt sich um über 200 verschiedene Blätter! nicht um 1 das 200 mal eingfügt werden soll!
AW: Tabellenblatt ersetzen
31.05.2006 12:13:33
Matthias G
Hallo Robert,
In meine Dateien gibt es kein Blatt "Tabelle2",
in Tabelle2 wird eine Liste mit den Dateien erzeugt, in welchen das Blatt getauscht werden soll. Hat das Blatt nicht immer den gleichen Namen?
desweiteren befinden sich die Dateien nicht im gleichen verzeichnis...
Sondern?
Es handelt sich um über 200 verschiedene Blätter! nicht um 1 das 200 mal eingfügt werden soll!
Schade, wenn man immer erst nachfragen muss, um die wichtige Info zu erhalten.
Gruß Matthias
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 13:01:41
Robert
#In meine Dateien gibt es kein Blatt "Tabelle2",
in Tabelle2 wird eine Liste mit den Dateien erzeugt, in welchen das Blatt getauscht werden soll. Hat das Blatt nicht immer den gleichen Namen?#
Das funktioniert auch soweit, das war kein mangelanzeige ;), nur die feststellung das ich kein leeres blatt in meine neue Datei habe (auch keins das "Tabelle2" heisst) aber das ist schon gelöst :D
#desweiteren befinden sich die Dateien nicht im gleichen verzeichnis...
Sondern?#
alle neue Dateien: Lokale Festplatte:\Unterverzeichnis\*.xls
alte Dateien: Netzlaufwerk\Unterverzeichnis\Unterverzeichnis...\Unterverzeichnis1\1.xls
Netzlaufwerk\Unterverzeichnis\Unterverzeichnis...\Unterverzeichnis2\2.xls
unsw.
#Es handelt sich um über 200 verschiedene Blätter! nicht um 1 das 200 mal eingfügt werden soll!
Schade, wenn man immer erst nachfragen muss, um die wichtige Info zu erhalten.#
Enschuldigung, aber ich dachte mir das das klar war...... jetzt wird die geschicht wirklich kompliziert oder?
Gruß Robert
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 13:13:09
Matthias G
Hallo Robert,
jetzt wird die geschicht wirklich kompliziert oder?
In der Tat, jetzt blick' ich es nämlich gar nicht mehr.
Du hast soundsoviele Dateien, bei denen soundsoviele Blätter gegen andere aus (welcher??) Datei getauscht werden müssen. Oder aus mehreren Dateien? Die Blätter, die getauscht werden müssen heißen?
Zu viele Fragezeichen.
Verwirrt,
Matthias
AW: Tabellenblatt ersetzen
31.05.2006 13:34:06
Robert
Ok jetzt mal ausführig:
Datei Alt: Deckblatt+Inhaltsverzeichnis+Liste1+Liste2, liegt auf netzwerk, jeder Datei im eigenem Ordner.
Datei neu: Deckblatt+Inhaltsverzeichnis+Liste1+Liste2, liegt Lokal, alle Dateien in 1 Ordner.
In der Alte Datei muss das Deckblatt ausgetauscht werden mit das aus der neue Datei, beide Dateien besitzen bis auf die Projektnummer identische namen (0001002345_Dateiname.xls und Dateiname.xls)
Zu Fuß sieht es so aus:
Ich öffne die Alte Datei, lösch das Deckblatt. Öffne die Neue Datei, Kopiere das Deckblatt in die Alte Datei. Alte Datei abspeichern und schließen. Neue Datei schließen.
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 16:26:35
Robert
In meine Dateien gibt es kein Blatt "Tabelle2", desweiteren befinden sich die Dateien nicht im gleichen verzeichnis...
Die idee mit der Liste ist nicht schlecht... Optimal wäre also ein Tool wo ich Datei1 und Datei2 in eine Liste habe(inklusive Pfadangaben), und dann das Aus zu tauschende Blatt Angebe.
Es handelt sich um über 200 verschiedene Blätter! nicht um 1 das 200 mal eingfügt werden soll!
AW: Tabellenblatt ersetzen
31.05.2006 20:16:07
schauan
Hallo Robert,
wenn alles verschieden ist und auch keine Regel nach der man was zusammenfassen könnte dann macht Programmieren auch keinen Sinn weil das hier über das Forum länger dauert als wenn Du alles per Hand tust.
Oder Du zeichnest den code selbst auf, da steht dann auch irgendwo der Dateiname und der Blattname usw. Dann kopierst Du den code 200x und änderst die Namen ...
Grüße, Andre
Anzeige
AW: Tabellenblatt ersetzen
31.05.2006 21:32:22
Matthias G
Hallo Andre,
...weil das hier über das Forum länger dauert als wenn Du alles per Hand tust.
Da muss ich dir wohl zustimmen.
auch an Robert:
Es ließe sich schon machen, aber für deinen Level echt aufwendig zu vermitteln.
Die Kernfrage ist erstmal die:

  • Du hast eine Anzahl von Dateien in einem Verzeichnis mit Namen xyz.xls. Liste diese Dateien in einem Blatt in Spalte A auf. Finde in einem anderen Verzeichnis incl. Unterverzeichnisse den Pfad zur passenden Datei nnnnnn_xyz.xls, Also gleicher Name mit Ziffern und Unterstrich davor, und gebe den kompletten Dateipfad in Spalte B aus.

Wenn diese Liste existiert, ist es kein Problem mehr, das Blatt "Deckblatt" der einen Datei mit dem der anderen Datei zu ersetzen.
Mal sehen ob ich dazu komme, heute jedoch nicht mehr.
Gruß Matthias
Anzeige
AW: Tabellenblatt ersetzen
01.06.2006 08:38:49
Robert
Ja die Liste in Spalte A & B hatte ich gestern Fertig ;)
Habe in Excel dann die Dateinamen verglichen zwischen Spalte A und B, wenn der vergleich WAHR ist würde ich dann die Blätter tauschen wollen. Dieser vergleich muss ich jetzt erstmal ins Modul bringen. Dann werde ich mit Hilfe dein "Blatttauschvorschlags" den rest auch noch hin bekommen ;)
Wäre natürlich für Tipps offen...
Gruß Robert
P.S. Es ist jetzt das 3. mal das ich diese Aktion durchführe, und ist bestimmt nicht das letzte mal...
AW: Tabellenblatt ersetzen
01.06.2006 09:29:21
Matthias G
Hallo Robert,
ich hoffe, das klappt so:


Option Explicit
Const PfadLokal = "C:\Dokumente und Einstellungen\Matthias\Desktop\Jo\Robert\lokal"
Const PfadNetz = "C:\Dokumente und Einstellungen\Matthias\Desktop\Jo\Robert\netz"
Const Tauschname = "Tabelle1" 'Name der zu tauschenden Blattes
Sub ErstelleDateilisten()
Dim fn As String, z As Integer, i As Integer, found As Integer
Cells.ClearContents
z = 0
'lokale Liste
fn = Dir(PfadLokal & "\*.xls")
Do While fn <> ""
z = z + 1
Cells(z, 1) = fn
fn = Dir()
Loop
Columns(1).AutoFit
'Liste im Netzverzeichnis
z = 0
For z = 1 To Cells(Rows.Count, 1).End(xlUp).Row
With Application.FileSearch
.NewSearch
.LookIn = PfadNetz
.SearchSubFolders = True
.Filename = "*_" & Cells(z, 1)
found = .Execute()
Select Case found
Case 0
Cells(z, 2) = "\NICHT GEFUNDEN!"
Case 1
Cells(z, 2) = .FoundFiles.Item(1)
Case Else
Cells(z, 2) = "\" & " UNEINDEUTIG! " & found & " mal gefunden"
End Select
End With
Next z
Columns(2).AutoFit
End Sub
Sub TauscheBlätter()
Dim fileNEU As String, fileALT As String
Dim z As Long
Dim wbALT As Workbook, wbNEU As Workbook, sh As Worksheet
Set sh = ActiveSheet
For z = 1 To sh.Cells(Rows.Count, 1).End(xlUp).Row
fileNEU = PfadLokal & "\" & sh.Cells(z, 1)
fileALT = sh.Cells(z, 2)
If Left(fileALT, 1) = "\" Then
sh.Cells(z, 3) = "--ausgelassen--"
Else
sh.Cells(z, 3) = "Öffne Datei in Netz..."
Set wbALT = Workbooks.Open(Filename:=fileALT)
sh.Cells(z, 3) = "lösche Blatt..."
Application.DisplayAlerts = False
wbALT.Sheets(Tauschname).Delete
Application.DisplayAlerts = True
sh.Cells(z, 3) = "Öffne neue Datei..."
Set wbNEU = Workbooks.Open(Filename:=fileNEU)
sh.Cells(z, 3) = "Kopiere Blatt..."
wbNEU.Sheets(Tauschname).Copy Before:=wbALT.Sheets(1)
wbNEU.Close Savechanges:=False
sh.Cells(z, 3) = "Mappe im Netz speichern..."
wbALT.Close Savechanges:=True
sh.Cells(z, 3) = "OK"
End If
Next z
End Sub



Alles in ein Modul in neue Mappe, die Konstanten (PfadLokal, PfadNetz, Tauschname) anpassen und viel Erfolg!
Matthias
Anzeige
AW: Tabellenblatt ersetzen
01.06.2006 16:36:04
Robert
Die Listenerstellung ist 1A! Besser als meiner, aber auch kein wunder.....
Leider läuft der tausch nach der 1. Datei in ein fehler rein, ich weiss nicht weshalb....
Werde aber morgen wenn ich zeit habe nochmal suchen... Befürchte es könnte etwas mit den Pfad zu tun haben?
Gruß #Robert#
AW: Tabellenblatt ersetzen
01.06.2006 16:50:32
Matthias G
Hallo Robert,
hast du den Code 1:1 übernommen?
Welches Fehler tritt denn auf?
Gruß Matthias
AW: Tabellenblatt ersetzen
01.06.2006 17:11:05
Robert
Ja ist 1:1 übernommen, komisch ist das sie schon durchgelaufen ist, geht aber jetzt nicht mehr...
Dr. Watson schaut vorbei mit fehlerhafter speicherzugriff... Aber vorher meine ich zu sehen das der Pfad zum Datei nicht gefunden werden kann... :(
Robert
Anzeige
AW: Tabellenblatt ersetzen
01.06.2006 08:06:32
Robert
Ja wenn ich mir sicher wäre es würde nie mehr vorkommen das ich diesen vorgang machen muss, hast du recht, aber es ist jetzt schon das 3. mal! Ich dachte mir jetzt ist es zeit für eine kleine hilfe
Robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige