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

Marco/VB voor automatisch verbergen kolommen en rijen

Status
Niet open voor verdere reacties.

Hoek83

Nieuwe gebruiker
Lid geworden
9 okt 2020
Berichten
4
Hallo allemaal,

Ik ben al een tijd aan het zoeken en proberen, maar kom er helaas niet uit vandaar deze hulpvraag. Ik zoek een macro die op basis van een input cel (B1) een aantal kolommen en rijen verbergt, als de waarde wijzigt zouden er meer of minder kolommen verborgen moeten worden. Als bijlage heb ik een bestandje opgenomen die het hopelijk verduidelijkt. Met een input van 5 in cel B1 zouden dus de kolommen met nummers 6 t/m 10 (K:O) verborgen moeten worden. Voor de rijen op Blad 2 geldt hetzelfde principe.

Wie o wie kan mij helpen? In ieder geval alvast bedankt!
 

Bijlagen

Dat komt in de buurt alleen zou de range bepaald moeten worden door de input in B1. Dus al de input 5 is zouden de eerste 5 kolommen vanaf F zichtbaar moeten blijven en de kolommen K:O verborgen.
 
Pagadder, bedankt voor je reactie.

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Select Case Range("B1")
    Case 1
        Range("F:F").Columns.Hidden = False
        Range("G:O").Columns.Hidden = True
    Case 2
        Range("F:G").Columns.Hidden = False
        Range("H:O").Columns.Hidden = True
    Case 3
        Range("F:H").Columns.Hidden = False
        Range("I:O").Columns.Hidden = True
    Case 4
        Range("F:I").Columns.Hidden = False
        Range("J:O").Columns.Hidden = True
    Case 5
        Range("F:J").Columns.Hidden = False
        Range("K:O").Columns.Hidden = True
    Case 6
        Range("F:K").Columns.Hidden = False
        Range("L:O").Columns.Hidden = True
    Case 7
        Range("F:L").Columns.Hidden = False
        Range("M:O").Columns.Hidden = True
    Case 8
        Range("F:M").Columns.Hidden = False
        Range("N:O").Columns.Hidden = True
    Case 9
        Range("F:N").Columns.Hidden = False
        Range("O:O").Columns.Hidden = True
    Case 10
        Range("F:O").Columns.Hidden = False
End Select
End Sub

Zoiets lost het op alleen heb ik straks 200 kolommen en/of rijen die zichtbaar/verborgen moeten worden. Ik zoek dus eigenlijk iets dat op basis van de input de range aanpast.
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Target, Range("b1")) Is Nothing Then Exit Sub   'is B1 veranderd ?
   With Range("F1")                              'startpunt
      .Resize(, 10).EntireColumn.Hidden = False  '10 kolommen zichtbaar
      i = Range("B1").Value                      'gewenste aantal kolommen verbergen
      If WorksheetFunction.Median(1, 10, i) = i Then .Resize(, i).EntireColumn.Hidden = True   'alleen in het geval i tss 1 en 10 is, x kolommen verbergen
   End With
End Sub
versie 2
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Target, Range("b1")) Is Nothing Then Exit Sub   'is B1 veranderd ?
   i = Range("B1").Value                         'gewenste waarde
   For Each c In Range("F1:O1").Cells            'al die cellen aflopen
      c.EntireColumn.Hidden = (c.Value > i)      'kolom verbergen als waarde > i
   Next
End Sub
 
Laatst bewerkt:
Bedankt Cow18, versie 2 was precies wat ik nodig had!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan