• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Kolommen verbergen met wisselknop

Status
Niet open voor verdere reacties.

TempoWillem

Gebruiker
Lid geworden
8 okt 2015
Berichten
39
Hoi kenners,

Ik wil in een werkblad een groot aantal kolommen verbergen met behulp van een wisselknop. Het gaat om de volgende kolommen:
Code:
Columns("D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T,V:V,X:X,Z:Z
    Columns("AB:AB,AD:AD,AF:AF,AH:AH,AJ:AJ,AL:AL,AN:AN,AP:AP,AR:AR,AT:AT,AV:AV,AX:AX,AZ:AZ")
    Columns("BB:BB,BD:BD,BF:BF,BH:BH,BJ:BJ,BL:BL,BN:BN,BP:BP,BR:BR,BT:BT,BV:BV,BX:BX,BZ:BZ")
    Columns("CB:CB,CD:CD,CF:CF,CH:CH,CJ:CJ,CL:CL,CN:CN,CP:CP,CR:CR,CT:CT,CV:CV,CX:CX,CZ:CZ")
    Columns("DB:DB,DE:DE")
Dit komt neer op steeds een kolom overslaan tussen D en DE

Na uitgebreid zoeken krijg ik de knop niet werkend. Welke code moet ik in de knop zetten om met een druk op die knop te wisselen tussen verborgen en niet-verborgen?

Heb helaas geen gelegenheid voor een voorbeeldbestandje, maar ik hoop dat mijn vraag toch duidelijk is.

Bij voorbaat dank!
 
Kijk of je het zo bedoel.
 

Bijlagen

  • ToggleButton.xlsm
    22 KB · Weergaven: 366
Laatst bewerkt:
Of zo:
Code:
Sub ToggleColumnVisibility()
    For i = 4 To 108 Step 2
        Cells(, i).EntireColumn.Hidden = Not Cells(, i).EntireColumn.Hidden
    Next i
End Sub
 
@Edmoor, die had ik ook zo in gedachte... Nadeel is wel dat het een "omkeer" functionaliteit is. Ofwel... Stel je voor dat alle voor ingestelde kolommen verborgen zijn. Vervolgens zet een gebruiker 1 van deze kolommen terug op zichtbaar. Als je code dan gaat draaien, zullen alle verborgen kolommen zichtbaar worden maar juist die ene die al zichbtaar was, verborgen worden.
 
Klopt helemaal. Dan kan je de wisselknop dus dit laten doen:

Verbergen:
Call ToggleColumnVisibility(True)

Zichtbaar maken:
Call ToggleColumnVisibility(False)

Code:
Sub ToggleColumnVisibility(OnOff as Boolean)
    For i = 4 To 108 Step 2
        Cells(, i).EntireColumn.Hidden = OnOff
    Next i
End Sub
 
Misschien wat duidelijker voor TS, je krijgt dan dit:
Code:
Private Sub ToggleButton1_Click()
    ToggleButton1.Caption = IIf(ToggleButton1, "Zichtbaar maken", "Verbergen")
    For i = 4 To 108 Step 2
        Cells(, i).EntireColumn.Hidden = ToggleButton1
    Next i
End Sub
 
Laatst bewerkt:
Alweer bedankt,edmoor!

Dit is precies de compacte oplossing die ik zocht. Het is soms lastig dat te benoemen wat je wilt in VBA als je niet goed thuis bent in de taal. Zo loop ik wel eens vaker tegen het probleem aan dat meerdere selecties teveel van het goede worden en de code fouten oplevert. Dit helpt weer anders te kijken naar mijn eigen vraagstukken, misschien leer ik het straks nog zonder steeds te vragen... ;)
Overigens ook dank aan EA, die mag ik natuurlijk niet vergeten.

In ieder geval top, wederom ben ik perfect geholpen!
 
Je had ook je probleem prima beschreven, dat helpt veel bij het verzinnen van een oplossing :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan