• 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 en rijen verbergen

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
478
Goedemorgen iedereen,

het is weer een tijdje geleden, ik heb weer een vraag.
In het tabblad Inteelt_berekenen is het bereik B17:L2063 groen gevuld. In dit bereik staat een stamboom voor maximum 10 generaties.
In B11 kan een merk geselecteerd worden.

Kan iemand helpen voor het volgende?
Een macro die het volgende doet
starten als de inhoud van C2 of C3 wijzigt
De kolommen B t.e.m. L zichtbaar maken.
De rijen 17 t.e.m. 2063 zichtbaar maken.
Als in de kolommen B, C, D, E, F, G, H ,I ,J , K of L in de rijen 17:2063 geen tekst staat dan deze kolom onzichtbaar maken.
Als in de rijen 17 t.e.m. 2063 in de kolommen B t.e.m. L geen tekst staat dan deze rij onzichtbaar maken.

Ik hoop dat iemand mij kan helpen,

Met vriendelijke groeten
Frans
 

Bijlagen

  • inteelt berekenen 060722.xlsm
    183,3 KB · Weergaven: 19
Beste,
ik heb geprobeerd en het lukt
maar werkt zo traag
hoe kan het sneller?


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
For Each r In Range("A17:A2063")
            If r.Value = 0 Then
            r.EntireRow.Hidden = True
            Else
            r.EntireRow.Hidden = False
            End If
            Next r
For Each k In Range("D16:L16")
            If k.Value = 0 Then
            k.EntireColumn.Hidden = True
            Else
            k.EntireColumn.Hidden = False
            End If
            Next k
Application.ScreenUpdating = True


End Sub
 

Bijlagen

  • inteelt berekenen 240722.xlsm
    189,8 KB · Weergaven: 26
hiermee gaat het heel snel
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Range("$A$16:$A$2063").AutoFilter Field:=1, Criteria1:=">0"
For Each k In Range("D16:L16")
            If k.Value = 0 Then
            k.EntireColumn.Hidden = True
            Else
            k.EntireColumn.Hidden = False
            End If
            Next k
Application.ScreenUpdating = True
End Sub
 
Of:
Code:
For Each k In Range("D16:L16")
  k.EntireColumn.Hidden = k.Value = 0
Next k
 
Eenmaal verbergen

Code:
Sub jec()
 Dim sq, i As Long
 Set sq = Cells(1, 9999)
 
 Application.ScreenUpdating = False
 
 With Range("A16").CurrentRegion
  .AutoFilter 1, ">0"
  .Columns.Hidden = False
   For i = 4 To .Columns.Count
     If .Cells(1, i) = 0 Then Set sq = Union(sq, .Cells(1, i))
   Next
 End With
 
 sq.Columns.Hidden = True
End Sub
 
Laatst bewerkt:
In Excel ingebouwd"

1-malig

Code:
Sub M_zet()
    Blad13.Columns(2).Resize(, 10).Group
End Sub

Code:
Sub M_snb()
    Blad13.Outline.ShowLevels , 1
    Blad13.Outline.ShowLevels , 2
End Sub
 
@snb, ik zie niet hoe deze voldoet aan de vraag
 
@Jec, dan kan je in 1 keer een aantal kolommen open of dichtklappen
 
Dat snap ik, alleen de vraag was om specifieke kolommen én rijen voorwaardelijk te verbergen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan