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

Fehler bei "for each" mit "if" statement

Fehler bei "for each" mit "if" statement
14.03.2023 13:25:57
Cindy
Hi, das ist mein erster Beitrag :-)
In meiner Excel mit vielen Reitern gibt es manche Rieter, bei denen Spalten ausgeblendet sind. Diese sollen alle wieder eingeblendet werden.
Mein Code:
... (davor passieren noch andere Sachen, welche schon funktionieren)
'Makro zum Einblenden aller Spalten auf allen Blättern
Dim ws As Worksheet
For Each ws In sheets
If columns.hidden = true Then Columns.EntireColumn.Hidden = False
End If
Next ws
End Sub

Die Fehlermeldung lautet: "Fehler beim kompilieren: End If ohne If-Block"
Habe schon viel rumgegoogelt, aber komme nicht weiter.
Was übersehe ich denn?
Danke schon mal für Rat und Tat :-)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
lösche End If. owT
14.03.2023 13:28:12
Rudi
AW: Fehler bei "for each" mit "if" statement
14.03.2023 13:34:34
Anton
Hallo, For-Each-Schleifen werden nur mit „Next“ beendet, also müsstest du aus „Next ws“ einfach „Next“ machen.
Lediglich bei normalen For-Schleifen wird beim Next noch der Name des Zählers notiert.
Viele Grüße
Anton
Quatsch!
14.03.2023 13:37:30
Rudi
man kann jede For-Schleife nur mit Next abschließen. Und jede durch Next + Variable.
Gruß
Rudi
AW: Fehler bei "for each" mit "if" statement
14.03.2023 20:06:18
onur
Es lebe das Halbwissen !
AW: Fehler bei "for each" mit "if" statement
14.03.2023 13:35:22
Daniel
Hi
wenn du nach dem THEN in der gleichen Zeile weiterschreibst, dann bedeutet das, dass der komplette IF-Block in dieser Zeile abgebildet wird.
dann braucht man kein END IF
also entweder:
IF xxx THEN aaa
oder
IF xxx THEN
    aaa
END IF
das IF kannst du dir hier aber sparen. Wenn du auf Blättern, bei denen keine Spalten ausgeblendet sind, die Spalten wieder einblendest, dann passiert nichts schlimmes.
Außerdem gibt Columns.Hidden nur dann TRUE, wenn ALLE Spalten ausgeblendet sind.wenn nur teilweise Spalten ausgeblendet sind, bekommst du FALSE. Ist das so von dir beabsichtigt?
das nächste Problem ist, dass du dich hier immer nur auf das aktive Tabellenblatt beziehst und nicht auf das der Schleife.
Wenn du in der Schleife alle Blätter bearbetien willst, musst du das auch schreiben und die Schleifenvariable verwenden:
ws.Columns.Hidden = False
Gruß Daniel
Anzeige
AW: Fehler bei "for each" mit "if" statement
14.03.2023 16:00:18
GerdL
Hallo Cindy!
Dim ws As Worksheet
'ThisWorkbook ist die Datei mit diesem Code
For Each ws In ThisWorkbook.Worksheets
    ws.Cells.EntireColumn.Hidden = False
Next ws
Gruß Gerd
Noch etwas einfacher und nur ergänzend
14.03.2023 18:19:21
RPP63
Moin!
Statt des Umwegs
ws.Cells.EntireColumn.Hidden = False
reicht natürlich auch (nur ergänzend!):
ws.Columns.Hidden = False
Gruß Ralf

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige