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

Spalten ausblenden

Spalten ausblenden
12.02.2013 20:14:51
Rainer
Hallo,
mit folgendem Code habe ich hinsichtlich einer Auswahl noch meine Probleme:
Sub Auswahl()
Dim lngZeile As Long
Dim iCol As Integer
For lngZeile = 1 To Range("E" & Rows.Count).End(xlUp).Row
If Range("E" & lngZeile) = WAHR Then
For iCol = 6 To 99
If Cells(lngZeile, iCol).Value = "nein" Then
Columns(iCol).Hidden = True
Columns(iCol + 1).Hidden = True
End If
Next iCol
End If
Next
End Sub

Ziel soll sein, dass durch Kontrollkästchen bezogen auf Spalte E automatisch zwei zusammengehörige Spalten nicht mehr angezeigt werden, wenn in der ersten Spalte dieser Zeile ein "Nein" steht.
Mit dem Code oben wird mir alles ausgeblendet.
Da es am besten mit Beispiel geht Beispieltabelle hier:
https://www.herber.de/bbs/user/83875.xls
Das erste Kontrollkästchen habe ich als Beispiel angelegt.
Der Button Auswahl soll nicht verwendet werden.
Dient nur als Test für den gewünschten Code.

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

Betreff
Datum
Anwender
Anzeige
AW: Spalten ausblenden
12.02.2013 20:40:28
littletramp
Hallo Rainer
Füge deinem Modul als erste Zeile folgenden Text ein:
Option Explicit
Danach führst du den Code aus, und der Debugger wird dir zeigen, wo der Fehler liegt :-))
Hier die Lösung, falls du es nicht selbst herausfindest: Ersetze das Wort WAHR durch True.
Damit dir solche Fehler nicht wieder passieren, empfehle ich dir in den Optionen (Menu Extras | Optionen) "Variablendeklaration erforderlich" zu aktivieren.
Gruss
Markus (littletramp.ch)

AW: Spalten ausblenden
12.02.2013 22:35:36
Rainer
Hallo Markus,
vielen Dank für Deine Mithilfe. Klappt wie gewünscht.
Allerdings habe ich mit dem Rückgängig machen (deaktivieren des Kontrollkästchens) noch ein Problem.
Dim lngZeile As Long
Dim iCol As Integer
For lngZeile = 1 To Range("E" & Rows.Count).End(xlUp).Row
If Range("E" & lngZeile) = True Then
For iCol = 6 To 99
If Cells(lngZeile, iCol).Value = "nein" Then
Columns(iCol).Hidden = True
Columns(iCol + 1).Hidden = True
Else
Columns(iCol).Hidden = False
Columns(iCol + 1).Hidden = False
End If
iCol = iCol + 1 'nur jede zweite Spalte prüfen
Next iCol
End If
Next
End Sub
Dachte es zu lösen, wenn ich iCol = iCol + 1 einfüge damit nur jede zweite Spalte nach dem Wert überprüft wird.
Wo habe ich hier meinen Gedankenfehler?
https://www.herber.de/bbs/user/83880.xls
Gruß Rainer
P.S.: Probleme mit dem Einstellen des Code's, deshalb mal ohne Formatierung

Anzeige
For iCol = 6 To 99 step 2
12.02.2013 23:18:22
Matthias
Hallo
Probier mal
For iCol = 6 To 99 step 2
habe ich aber nicht getestet.
und iCol = iCol + 1 lässt Du weg
Gruß Matthias

AW: For iCol = 6 To 99 step 2
13.02.2013 09:53:51
Rainer
Hallo Matthias,
das Problem lag woanders.
Musste die Zelien nach Else wegnehmen, da damit logischerweise die vorherigen Spalten wieder eingeblendet wurden.
Ist nun wie folgt gelöst:
Dim lngZeile As Long
Dim iCol As Integer
Columns("F:Z").Hidden = False
For lngZeile = 1 To Range("E" & Rows.Count).End(xlUp).Row
If Range("E" & lngZeile) = True Then
For iCol = 6 To 24
If Cells(lngZeile, iCol).Value = "nein" Then
Columns(iCol).Hidden = True
Columns(iCol + 1).Hidden = True
End If
iCol = iCol + 1 'nur jede zweite Spalte prüfen
Next iCol
End If
Next
End Sub

Habe Deine Variante mit "Step" dann auch gleich getestet und funktioniert auch.
Nun muss ich mir lediglich noch überlegen wie ich die Kontrollkästchen per VBA erzeuge.
Habe zwar schon einen Code, dieser verknüpft allerdings nicht gleich auch den VBA-Code.
Bekomme ich aber bestimmt noch raus.
Danke und Gruß
Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige