kolommen automatisch verbergen via VB

Status
Niet open voor verdere reacties.

Arno1969

Gebruiker
Lid geworden
24 apr 2017
Berichten
15
Beste lezer

Dit is de eerste keer dat ik een vraag stel op deze site, meestal kom ik er na wat proberen zelf wel uit. Echter de vraag die mij nu gesteld is gaat mijn petje te boven (ook nadat ik e.e.a. heb gelezen op deze site).

Vraag : in het bijgevoegde bestand moeten alle kolommen verborgen worden waarbij in de cellen D8:AR600 geen waarde is ingevuld

concreet : in rij 9 staat in kolom I een begindatum (22-4) en in kolom U een einddatum (6-5) alle tussenliggende kolommen (mits op de andere regels niets zou zijn ingevuld) zouden automatisch verborgen moeten worden wanneer ik de VB-code wordt uitgevoerd (deze code ga ik vervolgens weer linken aan een button zodat e.e.a. wordt versimpeld voor de eindgebruiker).

Ik heb het bestand toegevoegd om e.e.a. te verduidelijken.

Bij voorbaat dank aan degene die de oplossing weet.
 

Bijlagen

  • Communicatiekalender test (97-2003).xls
    1,2 MB · Weergaven: 31
Hoi Arno, welkom op het forum.
Komt dit in de buurt?
Ik ga niet alles overlopen,aan u de eer:)
D8:AR600 is een beetje warrig verhaal.
Code:
Sub dotchieverberg()
Dim CEdot As Range
Dim ROdot As Range
Dim COdot As Long
Application.ScreenUpdating = False
For COdot = 4 To 44 Step 1
   Set CEdot = Range("A8").Offset(0, COdot)
   If Len(CEdot.Value) = 0 Then
      Set ROdot = CEdot.End(xlDown)
      If ROdot.Row = Rows.Count And Len(ROdot.Value) = 0 Then
         Columns(CEdot.Column).Hidden = True
      End If
   End If
Next
Application.ScreenUpdating = True
End Sub
 

Bijlagen

  • Communicatiekalender test (97-2003)-1.xlsb
    638,7 KB · Weergaven: 36
Met een iets ander idee. De code staat onder de knop.

Code:
Private Sub CommandButton1_Click()
Dim u As Range
If CommandButton1.Caption = "Zichtbaar maken" Then
  Cells.Columns.Hidden = 0
  CommandButton1.Caption = "verbergen"
 Else
  With Cells(5, 2).CurrentRegion
    For Each cl In .Cells(1, 3).Resize(, .Columns.Count - 2)
      If Application.Count(cl.Offset(2).Resize(.Rows.Count - 2)) = 0 Then
        If u Is Nothing Then Set u = cl Else Set u = Union(u, cl)
      End If
    Next cl
  End With
  If Not u Is Nothing Then u.Columns.Hidden = True
  CommandButton1.Caption = "Zichtbaar maken"
End If
End Sub
 

Bijlagen

  • Communicatiekalender test (97-2003)-1.xls
    1,2 MB · Weergaven: 43
Dank voor de snelle reactie, het doet precies datgene wat ik wilde.
 
Het werk perfect, 1 vraagje nog. Ik heb de syntaxis gelezen maar wat doet deze nu precies ?:

Else
With Cells(5, 2).CurrentRegion
For Each cl In .Cells(1, 3).Resize(, .Columns.Count - 2)
If Application.Count(cl.Offset(2).Resize(.Rows.Count - 2)) = 0 Then
If u Is Nothing Then Set u = cl Else Set u = Union(u, cl)
End If
Next cl
End With
If Not u Is Nothing Then u.Columns.Hidden = True

groeten

Arno
 
is dit ook toepasbaar op rijen ?

beste VenA,
mag dat hier of moet ik een apart vraagstelling maken?
in mijn bestand staan rijen met in de eerste cel van de eerste kolom het woordje "exit" (zonder aanhalingstekens). daarachter staan o.a. ook bedragen die in de berekeningen wel steeds meegenomen dienen te worden. Ik heb al diverse knoppen in mijn bestand. Kan ik dan button1 vervangen met b.v. button3 ?

Regels beginnend met exit moeten dus bij gelegenheid uit beeld verdwijnen en wanneer gewenst weer teruggebracht worden.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan