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

Mehrere Tabellenblätter selektieren

Mehrere Tabellenblätter selektieren
19.08.2004 09:00:44
Andreas
Hallo zusammen,
Habe folgendes Problem:
Vor dem Drucken einer Exceldatei sollen die selektierten Blattnamen in eine Variable eingelesen werden und, nach dem Ausführen diverser Operationen, wieder selektiert werden, damit auch alle selektierten Blätter gedruckt werden.
Der Code sieht ungefähr so aus:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim sh As Worksheet
Dim Zaehler As Long
Dim Markiert As Variant
Zaehler = 0
Markiert = """"
For Each sh In ActiveWorkbook.Windows(1).SelectedSheets
Zaehler = Zaehler + 1
If Zaehler = 1 Then
Markiert = Markiert + sh.Name + """"
Else
Markiert = Markiert + "," + " " + """" + sh.Name + """"
End If
Next
-------------------------------------------------------------------
zwischen oberem und unterem Code werden diverse Arbeiten ausgeführt
-------------------------------------------------------------------
Sheets(Array(Markiert)).Select
Und genau in der obigen letzten Codezeile kommt der Debugger und meint, der Index sei ausserhalb des zulässigen Bereiches.
Weiss jemand wieso?
Die Variable "Markiert" enthält nach der Zuweisung der Blattnamen folgenden String:
"Blatt1", "Blatt2", "Blatt3"
mfg, Andreas

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

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Tabellenblätter selektieren
harry
hi andreas,
das kann so nicht funken. ein "Blatt1" liegt immer ausserhalb des gültigen index, da es nicht vorhanden ist, es heisst doch sicher Blatt1, oder?
ausserdem kann ich in deinem code kein array entdecken.
liebe grüße,
harry
AW: Mehrere Tabellenblätter selektieren
19.08.2004 10:42:55
Andreas
Die Namen der Tabellenblätter lauten natürlich anders, ich habe dies nur als Beispiel gebraucht.
Der Code sollte so aussehen (3 Blätter zusammen selektieren), damit mich der Debugger nicht belästigt:
Sheets(Array("Blatt1", "Blatt2", "Blatt3")).Select
Die Werte "Blatt1", "Blatt2", "Blatt3" befinden sich nun aber in der Variablen "Markiert".
Wenn ich aber diese Variable in den Code integriere, erscheint der Debugger:
Sheets(Array(Markiert)).Select
Wie integriere ich diese Variable in obigen Code?
mfg, Andreas
Anzeige
AW: Mehrere Tabellenblätter selektieren
harry
meinte auch nicht den tatsächlichen namen, sondern die anführungszeichen. glaube nicht, dass du den codeteil Array("Blatt1", "Blatt2", "Blatt3") durch eine variable mit string ersetzen kannst. glaube, dass du die blätter mit
Dim Markiert() As Variant
ReDim Markiert(ActiveWindow.SelectedSheets.Count)
For Each sh In ActiveWindow.SelectedSheets
Zaehler = Zaehler + 1
Markiert(Zaehler) = sh.Name
Next
in ein array einlesen musst. beim markieren der blätter tüftle ich jetzt auch, funkt irgendwie noch nicht
AW: Mehrere Tabellenblätter selektieren
19.08.2004 12:07:45
Andreas
Danke für den Tipp, erscheint mir logisch.
Wie gebe ich in einer msgbox den Inhalt der Variablen "Markiert" aus?
Ich möchte den Inhalt überprüfen.
Folgendes funktioniert nicht:
MsgBox "Markierte Blätter = " & Markiert()
Das Markieren der Blätter am Schluss funkt hier auch noch nicht.
mfg, Andreas
Anzeige
AW: Mehrere Tabellenblätter selektieren
harry
die namen kannst du mit einer schleife abrufen. man kann auch die blätter der reihe nach auswählen:
For i = 1 To Zaehler
Sheets(Array(Markiert(Zaehler))).Select
Next i
nur die mehrfachauswahl krieg ich noch nicht hin, aber ich arbeite dran. falls du es selbst findest, gib bitte bescheid, bevor ich vor verzweiflung depressionen bekomm :-)
AW: Mehrere Tabellenblätter selektieren
19.08.2004 13:19:07
Andreas
OK, habe bis jetzt leider noch nichts gefunden.
Das wäre mir aber gar nicht recht, wenn Du wegen meinem Problem auch noch Depressionen bekommst ;-)
mfg, Andreas
AW: Mehrere Tabellenblätter selektieren
19.08.2004 15:37:58
Andreas
Habs aufgegeben, eine vernünftige Lösung zu finden.
Der Code sieht jetzt so aus:
Dim sh As Worksheet
Dim Zaehler As Long
Zaehler = 0
Dim Markiert() As Variant
ReDim Markiert(ActiveWindow.SelectedSheets.Count)
Dim Blattzahl As Long
Blattzahl = ActiveWindow.SelectedSheets.Count
For Each sh In ActiveWindow.SelectedSheets
Zaehler = Zaehler + 1
Markiert(Zaehler) = sh.Name
Next
Diverse Operationen, Code ausgeschnitten....
If Blattzahl = 1 Then
Sheets(Markiert(1)).Select
End If
If Blattzahl = 2 Then
Sheets(Array(Markiert(1), Markiert(2))).Select
End If
If Blattzahl = 3 Then
Sheets(Array(Markiert(1), Markiert(2), Markiert(3))).Select
End If
Da die Anzahl Blätter in meiner Mappe bis zu 12 betragen kann, geht der Code weiter bis 12.
Ist ein wenig sehr umständlich, aber es funzt wenigstens.
mfg, Andreas
Anzeige
AW: Mehrere Tabellenblätter selektieren
harry
bin auch nicht weitergekommen, im array wird zwar alles richtig abgespeichert, aber die auswahl der mappen funkt nicht.
bis zum nächsten mal,
harry

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige