• 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.

VBA Kolommen verbergen

Status
Niet open voor verdere reacties.

Patrick2018

Nieuwe gebruiker
Lid geworden
8 dec 2018
Berichten
2
Goedenavond,

Ik ben bezig met een macro voor het verbergen van kolommen. Hierbij is de bedoeling dat als "B7" een waarde heeft van 0 tot 10 dat op basis van de waarde een aantal kolommen verbergen. Nu is het gelukt om ze te verbergen. Echter ik moet steeds eerst de 0 ingeven om alle kolommen weer zichtbaar te krijgen alvorens ik met bijvoorbeeld 5 een nieuw selectie kan doen. Ik kan dus niet eerst 9 selecteren en daarna 5. Dan moet ik steeds eerst een keer 0 ingeven. Hopelijk kan iemand me helpen. Onderstaande de code die ik heb gebruikt.

Private Sub Worksheet_selectionchange(ByVal Target As Range)
If Range("B7").Value = "0" Then Columns("C:K").Hidden = False
If Range("B7").Value = "1" Then Columns("C:K").Hidden = True
If Range("B7").Value = "2" Then Columns("D:K").Hidden = True
If Range("B7").Value = "3" Then Columns("E:K").Hidden = True
If Range("B7").Value = "4" Then Columns("f:K").Hidden = True
If Range("B7").Value = "5" Then Columns("G:K").Hidden = True
If Range("B7").Value = "6" Then Columns("H:K").Hidden = True
If Range("B7").Value = "7" Then Columns("I:K").Hidden = True
If Range("B7").Value = "8" Then Columns("J:K").Hidden = True
If Range("B7").Value = "9" Then Columns("K:K").Hidden = True
End Sub

Alvast bedankt.

Groeten

Patrick
 
Of doe het zo:
Code:
Private Sub Worksheet_change(ByVal Target As Range)
    cfr = Range("B7")
    If cfr > -1 And cfr < 10 Then
        Columns("C:K").Hidden = False
        If cfr > 0 Then Columns(Chr(66 + cfr) & ":K").Hidden = True
    End If
End Sub
 
Laatst bewerkt:
Bedankt voor de reactie. Het werkt top.

De volgende keer zal ik een bestand uploaden. Dat werkt inderdaad makkelijker.
 
Prima, da's altijd beter :)
Je hebt gezien dat een 0 in B7 alle kolommen zichtbaar maakt?
 
Code:
Private Sub Worksheet_change(ByVal Target As Range)
  Columns("C:K").Hidden = False
  If [b7] > 0 Then Columns(11).Offset(, -9 + [b7]).Resize(, 10 - [b7]).Hidden = True
End Sub
 
Hij is weer mooi :thumb:
 
Ik zou zeggen, test het eens :)
 
Ja, dat begreep ik wel :)
Maar het is geen formule maar een routine.
 
En wat als je je houdt aan de vraagstelling ?
 
Dan krijg ik een sticker ;)

Maar het gaat om het principe.
Het probleem dat je noemt is in de routine van snb nogal simpel te verhelpen.
Waar het mij om gaat is de denkwijze van snb m.b.t. de vraag van TS.
 
ik denk niet dat het voor de vraagsteller simpel zal te verhelpen zijn.
 
Dan zet je de oplossing hier neer.
Dat staat je tenslotte vrij en maakt de vraagsteller blij :)
Oeps, Sinterklaas is al voorbij ;)
 
Laatst bewerkt:
had als 1e regel verwacht dat je checkt waar de change doorgaat
Code:
  If Intersect(Target, Range("B7")) Is Nothing Then Exit Sub
Anders dacht ik dat het ingeven van een niet-integer ook een probleem had kunnen veroorzaken, maar blijkbaar is dat niet zo erg.
 
Dat is inderdaad geen probleem :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan