Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Worksheets Array in neues Workbook kopieren (VBA)

Worksheets Array in neues Workbook kopieren (VBA)
05.07.2005 21:15:51
Daniel
Hey Profis,
Wie kann ich ein worksheet array in eine neue Datei kopieren? Die Tabellenblaetter werden in der Masterdatei ausgewaehlt und sollen dann per Knopfdruck in die neue Datei kopiert werden.
Mit einem worksheet() habe ich es nicht geschafft. Am einfachsten waere wohl einfach ein String aus den Namen der Worksheets zu erzeugen und dann
Worksheets(Array(String)).copy
zu verwenden. Allerdings bereiten mir die Anfuehrungszeichen Probleme, denn der Text muss ja "Tabelle1", "Tabelle2", "Tabelle3", ... sein. Folgender Code funktionier leider nicht:
For Each r In Worksheets("CS").Range("R4:R30")
If r.Value = True Then
s = "" & r.Offset(0, 1).Text & ""
If sa = "" Then
sa = s
Else:
sa = sa & ", " & s
End If
End If
Next r
Hat jemand eine Ahnung was ich falsch mache? Der Grund weshalb ich die Sheets als Array kopieren moechte ist dass das einzelne Kopieren der Sheets viel laenger braucht (habe ich getestet).
Bin dankbar fuer jede Hilfe.
Dan
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 21:29:21
Matthias
Hallo Dan,
Wenn sie schon ausgewählt sind:
ActiveWindow.SelectedSheets.Copy
Gruß Matthias
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 21:49:04
Daniel
Hallo Matthias,
Die Worksheets sind nicht direkt ausgewaehlt (also nicht selected). Der User gibt durch eine Checkbox an ob er/sie ein bestimmtes Worksheet in der neuen Datei haben moechte. Das "TRUE" im Code ueberprueft also lediglich ob die Checkbox angekreuzt ist.
Also, funktioniert dein Vorschlag leider nicht.
Anzeige
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 21:56:29
Matthias
Hallo Daniel,
und in der Spalte daneben steht der Tabellenname?
s = "" & r.Offset(0, 1).Text
Gruß Matthias
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 22:05:03
Daniel
Genau, in der Spalte daneben steht der Tabellenname.
s = "" & r.offset(0,1).text
funktioniert nicht weil dann der resultierende string folgendermasen aussieht:
"Tabelle1, Tabelle2, Tabelle3"
anstatt:
"Tabelle1", "Tabelle2", "Tabelle3"
Das ist eben mein Problem. Die Anfuehrungszeichen bereiten mir Probleme.
Nochmals Danke,
Daniel
Anzeige
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 22:07:45
Matthias
Hallo Daniel,
der "resultierende String" ist kein String, sondern ein Array. Das kann man nicht als String mit Komma nachbauen, da muss man schon ein Array befüllen:

Sub Test()
Dim r As Range, count As Integer, i%
Dim arr() As String
count = 0
For Each r In Worksheets("CS").Range("R4:R30")
If r.Value = True Then
count = count + 1
ReDim Preserve arr(1 To count)
arr(count) = r.Offset(0, 1).Text
End If
Next r
If count = 0 Then
MsgBox "Nichts ausgewählt"
Else
Sheets(arr).Copy
End If
End Sub

(nicht 100% getestet wg, fehlender Tabellenstruktur)
Gruß Matthias
Anzeige
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 22:41:34
Daniel
Danke Matthias, das war genau das was ich suchte. Ich hatte es mit w as worksheet() probiert aber es hatte nicht funktioniert.
Dein Vorschlag funktioniert glaube ich einwandfrei. Ich schreibe "glaube" weil ich nach dem .copy ein .saveas habe und ich beim speichern immer eine Fehlermeldung bekomme dass Excel nicht speichern kann weil nicht genuegend Resourcen uebrig sind. Allerdings scheint das speichern trotzdem zu funktionieren. Vielleicht sollte ich das Array nach dem kopieren loeschen? Wie koennte ich das machen (sorry hab noch nie mit arrays in VBA gearbeitet). Ich habe momentan einfach displayalerts auf falsch gesetzt, allerdings waere es natuerlich besser das Problem ganz zu beheben.
Vielen Dank,
Daniel
Anzeige
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 22:47:49
Matthias
Hallo Daniel,
das Array kann es kaum sein, es enthält ja nur die Namen der zu kopierenden Blätter und nicht die Blätter selbst.
Gruß Matthias
AW: Worksheets Array in neues Workbook kopieren (V
05.07.2005 22:54:52
Daniel
Ach ja, das stimmt! Naja, dann lass ich einfach application.displayalerts = false.
Danke nochmals,
Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige