Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
632to636
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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.
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

354 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige