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

Bestehende Sheets automatisch ueberschreiben

Bestehende Sheets automatisch ueberschreiben
20.02.2006 09:31:39
Paul
Hallo,
das folgende Macro kopiert aus einem Ordner aus mehreren Dateien das Sheet Output und fuegt es in der Datei 2005.xls ein. Problem, wenn die Dateienanzahl sich aendert und ich das Macro oefter ausfuehre, dann kommt eine Fehlermeldung. Schon kopierte Sheets sind bereits umbenannt und in der Datei 2005.xls kopiert. Nochmal kopieren und benenen geht ja nicht, denn die Sheets gibt es ja bereits. Wie kann man das Macro so erweitern, dass bestehende Sheets mit gleichem Namen einfach uebershrieben werden. Hier das Macro:

Sub CopyOutput()
Set fso = CreateObject("Scripting.FileSystemObject")
WB = ThisWorkbook.Path
'Set f = fso.GetFolder(WB)
Set f = fso.GetFolder("C:\Documents and Settings\Paul\Desktop\Reports\2005\")
For Each Datei In f.Files
If Right(Datei, 4) = ".xls" Then
Workbooks.Open (Datei)
Sheets("Output").Select
Sheets("Output").Copy Before:=Workbooks("2005.xls").Sheets(1)
Workbooks(Datei.Name).Close
End If
Sheets("Output").Name = Workbooks("2005.xls").Sheets("Output").Cells(1, 1).Value
Next
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Bestehende Sheets automatisch ueberschreiben
20.02.2006 17:00:18
ChrisL
Hallo Paul
Quick and dirty, vielleicht so...
...
On Error Resume Next
Application.DisplayAlerts = False
If Right(Datei, 4) = ".xls" Then
Workbooks.Open (Datei)
Workbooks("2005.xls").Sheets("Output").Delete
Sheets("Output").Copy Before:=Workbooks("2005.xls").Sheets(1)
Workbooks(Datei.Name).Close
End If
Application.DisplayAlerts = True
D.h. Blatt wird immer gelöscht (ob vorhanden oder nicht) und Fehlermeldungen werden generell übergangen.
Gruss
Chris
AW: Bestehende Sheets automatisch ueberschreiben
20.02.2006 17:14:57
Paul
Hallo,
problem ist, dass ja die Sheets in 2005.xls ja nicht mehr output heisen, sondern Januar, Februar, etc. Eine Moeglichkeit wuerde bestehen indem ich dem Macro die Anweisung gebe, alle Sheets ausser das Sheet "Active" zu loeschen. Allerdings wie kann das im Macro eingebaut werden? Es musste erst mal diese Anweisung folgen und dann der normalen restlichen Ablauf ruchfuehren.
Paul
Anzeige
AW: Bestehende Sheets automatisch ueberschreiben
20.02.2006 18:01:09
ChrisL
Hallo Paul
Dass das Sheet umbenannt wird, habe ich übersehen. In Kurzform:
Workbooks("2005.xls").Worksheets(Workbooks("2005.xls").Sheets("Output").Cells(1, 1).Value).Delete
Sheets("Output").Name = Workbooks("2005.xls").Sheets("Output").Cells(1, 1).Value
Gruss
Chris
AW: Bestehende Sheets automatisch ueberschreiben
21.02.2006 08:41:33
Paul
Hallo,
danke, es funktioniert jetzt, wobei eine Frage haette ich noch. Bei jedem Sheet erscheint eine Abfrage, ob das Sheet wirklich geloescht werden soll. Kann man das nicht abschalten?
Paul
AW: Bestehende Sheets automatisch ueberschreiben
21.02.2006 09:03:35
Paul
Hallo nochmal,
so ganz funktioniert es doch nicht. Zum einen, wenn nur das Sheet Aktive drin ist, dann stoppt es mit einem Fehler, genauso wenn ich z.b. das Sheet Januar zusaetzlich habe, blockiert es auch. Nur wenn ich Januar und Febraur als Sheets dabei sind, dann lauft es, fragt aber ob die Sheets geloescht werden sollen (besser waere es wenn die Abfrage nicht kommen wuerde. Ich habe unter https://www.herber.de/bbs/user/31263.zip die Daten mit Unterordner geladen, mit Start werden 3 Macros ausgefuehrt, das Macro mit dem Kopieren heist CopyOutput. Vielleicht ist ein Fehler drin denn ich nicht sehen kann.
Gruesse Paul
Anzeige
AW: Bestehende Sheets automatisch ueberschreiben
21.02.2006 09:24:15
ChrisL
Hallo Paul
War auch nur die Kurzform. Du brauchst noch die Fehlerbehandlung (On Error Resume Next) und DisplayAlerts aus dem ersten Codebeispiel.
Gruss
Chris
AW: Bestehende Sheets automatisch ueberschreiben
21.02.2006 14:14:51
Paul
SUPER!
es lauft. Danke
Paul

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige