Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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

VBA: Worksheet wird nicht eingeblendet

VBA: Worksheet wird nicht eingeblendet
29.08.2014 11:07:23
Andre
Guten Morgen liebes Forum!
Folgendes Problem bringt mich um den Verstand:
In einer Arbeitsmappe existieren insgesamt 29 Worksheets. Die Arbeitsmappe wurde in dem Zustand gespeichert, dass nur das 1. Worksheet eingeblendet ist, die anderen 28 sind "VeryHidden". Wird die Arbeitsmappe geöffnet, werden die 28 ausgeblendeten teilweise (je nach Berechtigung) eingeblendet und zum Schluss das 1. Worksheet wieder ausgeblendet. So weit, so gut.
Alles funktioniert so weit ganz gut, jedoch wird mir beim Öffnen der Arbeitsmappe genau das 12. Worksheet nicht eingeblendet und ich kann mir nicht erklären, warum. Ich habe schon die Benennung überprüft, wobei unabhängig von der Benennung der Index ja immer noch 12 ist. Die Worksheets sind benannt von "Tabelle01(…) bis Tabelle29(…)"
Dim i As Byte
For i = 2 To 27
If i = 8 Or i = 9 Or i = 11 Or i = 16 Or i = 17 Then
i = i + 1
Else
Sheets(i).Visible = xlSheetVisible
End If
Next i
Ich bin für jeden Tip dankbar!
Im Voraus allen ein schönes Wochenende!
Gruß,
Andre

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Worksheet wird nicht eingeblendet
29.08.2014 11:13:09
yummi
Hallo Andre
i nimmt bei dir folgende WErte an:
2
3
4
5
6
7
8 wird zu 9
10
11 wird zu 12
13
14
15
16 wird zu 17
18
..
27
also wird 9 12 und 17 nie eingeblendet.
Eine Schleifenvariable innerhalb einer Schleife zu manipulieren ist sehr gefährlich
Gruß
yummi
PS: Benutz den debugger dann siehst du es

AW: VBA: Worksheet wird nicht eingeblendet
29.08.2014 11:44:10
Andre
Hallo Yummi!
Danke für deine erklärende Antwort, so verstehe ich es wohl etwas besser. Mit dem Debugger habe ich mich (kleinlaut) leider noch nicht beschäftigt, das werde ich nachholen. Dann habe ich mit meiner Variante wohl eher zufällig ein paar der Worksheets übersprungen, die ich auch überspringen wollte und dabei Kollateralschäden erzielt... Auf jeden Fall werde ich mir Funktionsweise von Debugger und Select Case nach Feierabend mal zu Gemüte führen.
Vielen Dank für die Mühe!
Gruß
Andre

Anzeige
AW: VBA: Worksheet wird nicht eingeblendet
29.08.2014 11:16:08
Rudi
Hallo,
das ist ganz schlechter Stil, innerhalb einer For-Next-Schleife die Laufvariable zu verändern.
Dim i As Byte
For i = 2 To 27
Select Case i
Case 8, 9, 11, 16, 17
'nix passiert
Case Else
Sheets(i).Visible = xlSheetVisible
End Select
Next i

Gruß
Rudi

AW: VBA: Worksheet wird nicht eingeblendet
29.08.2014 11:37:42
Andre
Hallo Rudi,
normalerweise habe ich mehr Stil, aber in VBA kämpfe ich um's nackte Überleben! Ich bewege mich erst seit kurzer Zeit in VBA und sehe den Wald vor lauter Bäumen nicht. Oft gibt es für das gleiche Problem unterschiedliche Lösungen. Warum meine Lösung ausgerechnet bei Nr. 12 den Geist aufgibt, weiß ich zwar immer noch nicht, aber deine Lösung funktioniert hervorragend und ist wohl auch geeigneter.
Danke für die Mühe, ich konnte mein Wissen wieder einmal erweitern!
Gruß,
Andre

Anzeige
AW: VBA: Worksheet wird nicht eingeblendet
29.08.2014 12:15:21
Rudi
Hallo,
Warum meine Lösung ausgerechnet bei Nr. 12 den Geist aufgibt, weiß ich zwar immer noch nicht,
wenn i = 11 erhöhst du i auf 12. Bei Next i wird i somit zu 13. In den Else-Zweig kommt also nie eine 12.
Gruß
Rudi

AW: VBA: Worksheet wird nicht eingeblendet
29.08.2014 13:57:35
Adis
Hallo
Wenn ich mir die For Next Schleife so ansehe hatte da jemand eine gute Idee, aber aus Unwissenheit einen dummen Fehler gemacht. Das passiert gerne bei Anfaengern. (mir auch) Nur Mut, aus solchen Fehlern lernt man programmieren!
Wenn ich den Gedanken richtig verstanden habe sollen die Blaetter 8, 9, 11, 16, 17 übersprungen werden. Das passiert auch ordnungsgemaess, wenn die naechste Zeile mit -i plus 1- einfach gelöscht wird! Die Bedingung ist ja erfüllt. Die Variable i wird nach der End İf Anweisung automatisch weiter gezaehlt. Erhöht man -i- vorher kommt der Zaehler durcheinander.
If i = 8 Or i = 9 Or i = 11 Or i = 16 Or i = 17 Then
i = i + 1 'diese Zeile einfach löschen. alter Praktiker Trick zum überspringen
Gruss Adis
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige