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

Worksheet importieren und austauschen

Worksheet importieren und austauschen
02.12.2003 23:14:21
OlliB
Hallo Forumsgemeinde,
hab da mal als VBA-Anfänger eine Frage. Möchte per Makro in einer Userform alle Tabellenblätter aus einer externen Sicherungsdatei importieren und gegen die vorhandenen (gleichnamigen) komplett ersetzen. Da die Tabellenblätter jedoch im Laufe der Zeit variieren können, kann ich sie jetzt nicht namentlich im Code festlegen. Den Import an sich bekomme ich auch hin, aber wie kann ich es erreichen, dass die Blätter nicht doppelt mit dem (2) eingefügt werden, sondern die vorhandenen Sheets ersetzt werden ? Kann mir da wer helfen ?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet importieren und austauschen
02.12.2003 23:50:38
K.Rola
Hallo,

lies einfach alle Blattnamen aus der externen Sicherungsdatei in ein
Array ein. Dann löschts du alle Blätter in der anderen Mappe, die den
selben Namen haben. Anschließend die entsprechenden Blätter importieren.

Gruß K.Rola
ähm.....
03.12.2003 00:30:30
OlliB
vielen Dank für die rasche Reaktion....liest sich auch interessant...aber ich bin noch Anfänger...ein Beispielcode für mich ? Wäre super nett
AW: ähm.....
03.12.2003 13:08:04
K.Rola
Hallo,

wenn du nicht klarkommst, einfach nochmal melden:

Option Explicit
Option Base 1

Sub Blattimport()
Dim arr(), scQuelle As Long, wbQuelle As Workbook, wbZiel As Workbook
Dim b As Long, wsTemp As Worksheet, scZiel As Long
Dim shQ As Long, shZ As Long
''Name der backup- Datei, muss geöffnet sein!
Set wbQuelle = Workbooks("TestQuelle.xls")
''Die Mappe, in die die Blätter importiert werden sollen und in der
''dieser Code ausgeführt wird.
Set wbZiel = ThisWorkbook
''Ein Dummyblatt einfügen, damit sichergestellt ist, dass die Mappe
''das min. erforderliche eine Blatt immer enthält.
Set wsTemp = wbZiel.Worksheets.Add
wsTemp.Name = SHNAME
scQuelle = wbQuelle.Sheets.Count
scZiel = wbZiel.Sheets.Count
''Blattnamen, die in Quelle und Ziel identisch sind, in ein Array lesen
For shQ = 1 To scQuelle
For shZ = 1 To scZiel
If wbQuelle.Sheets(shQ).Name = wbZiel.Sheets(shZ).Name Then
b = b + 1
ReDim Preserve arr(b)
arr(b) = wbZiel.Sheets(shZ).Name
End If
Next
Next
''Meldung und Bildschirmaktualisierung abschalten
Application.DisplayAlerts = False
Application.ScreenUpdating = False
''Die identischen Blätter in der Zieldatei löschen
For b = LBound(arr) To UBound(arr)
wbZiel.Sheets(arr(b)).Delete
Next
''Alle Blätter der Quelldatei in die Zieldatei kopieren
For shQ = scQuelle To 1 Step -1
wbQuelle.Sheets(shQ).Copy Before:=wbZiel.Sheets(1)
Next
''Das Dummyblatt löschen
wbZiel.Sheets(SHNAME).Delete
''Meldung und Bildschirmaktualisierung wieder einschalten
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Gruß K.Rola
Anzeige
;o)
03.12.2003 14:38:00
OlliB
Danke....riesiges Dankeschön..werde ich gleich testen.....und versuchen zu verstehen ;o)
DANKE ! Klappt einwandfrei....
03.12.2003 21:46:53
OlliB
Vielen, vielen Dank...klappt ohne wenn und aber....super...wünsche einen schönen Tag noch

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige