Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
Inhaltsverzeichnis

Blätter auswählen mit VBA klappt nicht

Blätter auswählen mit VBA klappt nicht
Elmar
Hallo, Ihr Weisen, Klugen und Schlauen...
Ich habe 5 Blätter SAZ1, SAZ2, ... SAZ5 und 5 Blätter GA1, GA2, ... GA5 und noch einige weitere Blätter
Die sind je nach Kunde unterschiedlich mit Daten gefüllt, z.B. einmal SAZ1 Und GA1
mal SAZ1 2 3 und GA1 2 ...
Hier im Makro werden SAZ1 2 3 und GA1 2 3 ausgewählt fürs Drucken.
Sub DruckenBlätterMarkieren3S3G()
Sheets(Array("SAZ1", "SAZ2", "SAZ3", "GA1", "GA2", "GA3", "Ang_Zf", "SE", "MEB S", "SEB", " _
GE", "MEB G", "GEB")).Select
Sheets("SAZ1").Activate
ActiveWindow.SelectedSheets.PrintPreview
End Sub

Das klappt ja auch alles.
nachdem ich aber jetzt nicht für jede mögliche Kombi einen eigenen Makro mit Button haben will, sondern einen Makro für alles, habe ich diesen Makro geschrieben:
Sub Markieren()
For I = 1 To 5
Sheets("SAZ" + LTrim(I)).Select
If Range("B6")  0 Then MarkierenArray = MarkierenArray + Chr(34) + "SAZ" + LTrim(I) +  _
Chr(34) + ", "
Next I
For I = 1 To 5
Sheets("GA" + LTrim(I)).Select
If Range("B6")  0 Then MarkierenArray = MarkierenArray + Chr(34) + "GA" + LTrim(I) +  _
Chr(34) + ", "
Next I
MarkierenArray = MarkierenArray + Chr(34) + "SE" + Chr(34) + ", "
MarkierenArray = MarkierenArray + Chr(34) + "MEB S" + Chr(34) + ", "
MarkierenArray = MarkierenArray + Chr(34) + "SEB" + Chr(34) + ", "
MarkierenArray = MarkierenArray + Chr(34) + "GE" + Chr(34) + ", "
MarkierenArray = MarkierenArray + Chr(34) + "MEB G" + Chr(34) + ", "
MarkierenArray = MarkierenArray + Chr(34) + "GEB" + Chr(34)
MsgBox (MarkierenArray) ' Nur für Testzwecke, ob der String stimmt
Sheets(Array(MarkierenArray)).Select
End Sub

Warum bringt Excel da den Laufzeitfehler 9 - Index ausserhalb des Bereichs?
Muss ich da den String anders deklarieren?
Der String ist doch so, wie er im anderen Makro steht...
Beispiedatei ist hochgeladen:
https://www.herber.de/bbs/user/70552.xls
Vielen Dank fürs Lesen, Eindenken und die hilfreiche Antwort!
lG Elmar

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Blätter auswählen mit VBA klappt nicht
12.07.2010 22:00:15
Ramses
Hallo
Strings werden so zusammengebaut
Sheets("SAZ" & LTrim(I)).Select
Gruss Rainer
AW: Blätter auswählen mit VBA klappt nicht
12.07.2010 22:21:28
Elmar
danke für die Antwort, hat mir aber leider noch nicht weitergeholfen...
Ich habs so umgeformt:
Sub Markieren()
For I = 1 To 5
Sheets("SAZ" & LTrim(I)).Select
If Range("B6")  0 Then MarkierenArray = MarkierenArray & Chr(34) & "SAZ" & LTrim(I) &  _
Chr(34) & ", "
Next I
For I = 1 To 5
Sheets("GA" & LTrim(I)).Select
If Range("B6")  0 Then MarkierenArray = MarkierenArray & Chr(34) & "GA" & LTrim(I) &  _
Chr(34) & ", "
Next I
MarkierenArray = MarkierenArray & Chr(34) & "SE" & Chr(34) & ", "
MarkierenArray = MarkierenArray & Chr(34) & "MEB S" & Chr(34) & ", "
MarkierenArray = MarkierenArray & Chr(34) & "SEB" & Chr(34) & ", "
MarkierenArray = MarkierenArray & Chr(34) & "GE" & Chr(34) & ", "
MarkierenArray = MarkierenArray & Chr(34) & "MEB G" & Chr(34) & ", "
MarkierenArray = MarkierenArray & Chr(34) & "GEB" & Chr(34)
MsgBox (MarkierenArray)
Sheets(MarkierenArray).Select
End Sub

Der Fehler taucht ja erst beim letzten Befehl auf, vorher habe ich noch keinen Unterschied wahrgenommen ob
Sheets("SAZ" & LTrim(I)).Select oder Sheets("SAZ" + LTrim(I)).Select
Danke fürs Weiterhelfen
lG Elamr
Anzeige
AW: Blätter auswählen mit VBA klappt nicht
12.07.2010 22:56:37
Ramses
Hallo
"..Der Fehler taucht ja erst beim letzten Befehl auf,..."
Und woher sollen wir das wissen ? Hast du ja nicht gesagt.
Ein Array zum Auswählen von Sheets wird nicht mit Chr(34) und "," erstellt.
Das kann nicht funktionieren
Hier ein Beispiel aus meinem Fundus wie ein Array aufgebaut wird, mit dem man mehrere Sheets selectieren kann
Es gibt sicher noch andere Varianten, aber zum Verständnis des grundsätzlichen Aufbau des Array sicher brauchbar
Sub Group_Selected_Sheets_in_Array_for_Printout()
'(C) von PM aus dem Spotlight Forum
'Definieren von Worksheets die gruppiert werde
'ohne das sie fortlaufend aneinander liegen
Dim vWorksheet As Worksheet
Dim vWorksheetsToSelect() As String
Dim vWorksheetsToDeselect(2) As String
Dim i As Byte
Dim ii As Byte
Dim vFound As Boolean
vWorksheetsToDeselect(0) = "Fix1"
vWorksheetsToDeselect(1) = "Fix2"
vWorksheetsToDeselect(2) = "Fix3"
ii = 0
For Each vWorksheet In Worksheets
vFound = False
For i = 0 To UBound(vWorksheetsToDeselect)
If vWorksheet.name = vWorksheetsToDeselect(i) Then
vFound = True
Exit For
End If
Next i
If Not vFound Then
ReDim Preserve vWorksheetsToSelect(ii)
vWorksheetsToSelect(ii) = vWorksheet.name
ii = ii + 1
End If
Next vWorksheet
Sheets(vWorksheetsToSelect).Select
End Sub
Eine andere Alternative, wenn es nur um das gruppieren geht, wäre folgende Variante
Sub Group_Sheets()
'by Ramses
Dim i As Integer
For i = 1 To Sheets.Count
If Left(Sheets(i).Name, 3) = "SAZ" Then
If Sheets(i).Range("B6")  0 Then
Sheets(i).Select False
End If
End If
If Left(Sheets(i).Name, 2) = "GA" Then
If Sheets(i).Range("B6")  0 Then
Sheets(i).Select False
End If
End If
Select Case Sheets(i).Name
Case "SE", "MEB S", "SEB", "GE", "MEB G", "GEB"
Sheets(i).Select False
End Select
Next Sh
End Sub
Gruss Rainer
Anzeige
AW: Blätter auswählen mit VBA klappt nicht
12.07.2010 23:52:57
Elmar
ich weiss, ich weiss, das war eine Deiner leichteren Übungen...
sowas kannst Du sicherlich aus dem Handgelenk schütteln, Rainer...
Ich schenk Dir mal noch die erste Empfindung, die ich hatte, als ich Deinen Namen unter meinem Beitrag gelesen habe... Die war ungefähr so:
"Oh, der ägyptische Excel-Gott persönlich nimmt sich meines Problems an... Welche Ehre...."
Du hast diesen Deinem Namen in mir aber wieder mal alle Ehre gemacht. Gratulazione!
Funktioniert alles hervorragend!
(und für die, dies nachmachen müssen / wollen das Next sh in der vorl. Zeile muss Next i heissen)
Anzeige

282 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige