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

Opgelost Rijen zonder inhoud verbergen

  • Onderwerp starter Onderwerp starter GeSwi
  • Startdatum Startdatum
Dit topic is als opgelost gemarkeerd

GeSwi

Gebruiker
Lid geworden
18 mrt 2025
Berichten
18
Hallo allen,

Ik heb een Excel met daarin een totaaloverzicht van cellen uit andere bladen.
Wanneer de cellen niet gevuld zijn (formules staan er wel in, betreft aantal, tijd en €..) zou ik graag de rij onzichtbaar maken/verbergen in het overzicht.

Het Excel heb ik beveiligd met een macro zodat anderen er niet zo maar formules e.d. uit kunnen gooien/ wijzigen d.m.v. het blokkeren van de cellen (op het betreffende overzichtsblad). Anders zou ik natuurlijk handmatig die rijen kunnen verbergen maar dat gaat nu niet.

Is dit mogelijk en zo ja hoe?

Zie bijgaand bestand ter voorbeeld.

Alvast bedankt voor jullie hulp!
 

Bijlagen

Zet een filter op het verzamelblad en filter vervolgens in kolom A het jaartal 1900 weg.

zie bijlage.

NB: in je bijlage zit geen macro!
 

Bijlagen

Zet een filter op het verzamelblad en filter vervolgens in kolom A het jaartal 1900 weg.

zie bijlage.

NB: in je bijlage zit geen macro!

Doe ik het goed als ik zeg dat als de macro erop staat (beveiligd werkblad) de filter niet werkt?
Dus dat hij enkel de rij die ik, voordat ik de macro inschakelde, gefilterd had en niet de rijen laat zien die later gevuld zijn met macro erop?
 
Geen idee wat je nou precies bedoelt.
Autofilter toestaan of niet toestaan bij beveiligen.
 
Ah ja, ik heb die autofilter er niet bij staan.

Ik heb deze macro voor de beveiliging.
Hoe voeg ik de macro voor de autofilter toe?

Sub BeveiligAlles()
Dim ws As Worksheet
Dim ps As String
ps = InputBox("@2025", vbOKCancel)
For Each ws In ActiveWorkbook.Worksheets
ws.Protect Password:=ps
Next ws
End Sub
 
Plaats je bestand, inclusief de macro
 
Of probeer dit:
Code:
Sub BeveiligAlles()
    Dim ws As Worksheet
    Dim ps As String
    ps = InputBox("@2025", vbOKCancel)
    For Each ws In ActiveWorkbook.Worksheets
        ws.Protect Password:=ps, DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    Next ws
End Sub
 
Of probeer dit:
Code:
Sub BeveiligAlles()
    Dim ws As Worksheet
    Dim ps As String
    ps = InputBox("@2025", vbOKCancel)
    For Each ws In ActiveWorkbook.Worksheets
        ws.Protect Password:=ps, DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
    Next ws
End Sub
Thanks !

Even voor mijn duidelijkheid.. :)
Zou met deze code de filter moeten werken in het overzichtsblad of zouden hier automatisch rijen toegevoegd/ verwijderd moeten worden bij het aanpassen van de datum in een ander tabblad?
 
Aan de antwoorden van de helpers blijkt dat jouw uitleg niet duidelijk is.

Plaats een goed gelijkend voorbeeldbestand en leg duidelijk uit wat jouw wensen zijn.
 
Mijn excuses als ik niet duidelijk ben..
Ik probeer het zo goed mogelijk uit te leggen.. :)

Bijgaand bestand heeft een macro die bovenstaand door edmoor is aangegeven (met filter op datum 2025).

Mijn wens is, dat de rijen in het werkblad "export" verborgen worden als er niets ingevuld is in de cellen op het blad waar de rij naar verwijst. En dat ze uiteraard zichtbaar worden als er wel iets ingevuld wordt.
De macro van het beveiligd werkblad is altijd actief als er in het blad gewerkt wordt, vandaar dat het fantastisch zou zijn als het automatisch zichtbaar / verborgen kan worden.
 

Bijlagen

Probeer dit maar eens, in ThisWorkbook
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If ActiveSheet.Name <> "export" Then
    If Target.Address(0, 0) = "D7" Then
        With Sheets("export")
            .Unprotect "1234" 'wachtwoord zelf aanpassen
           
             i = .Cells(.Rows.Count, 1).End(xlUp).Row
            .Range("A1:A" & i).AutoFilter
            .Range("A1:A" & i).AutoFilter 1, "<> 0"
           
            .Protect "1234" 'wachtwoord zelf aanpassen
        End With
    End If
End If

End Sub
 
@ad

- onderzoek wat Byval Sh As Object betekent
- onderzoek wat currentregion of usedrange betekent
 
Probeer dit maar eens, in ThisWorkbook
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If ActiveSheet.Name <> "export" Then
    If Target.Address(0, 0) = "D7" Then
        With Sheets("export")
            .Unprotect "1234" 'wachtwoord zelf aanpassen
          
             i = .Cells(.Rows.Count, 1).End(xlUp).Row
            .Range("A1:A" & i).AutoFilter
            .Range("A1:A" & i).AutoFilter 1, "<> 0"
          
            .Protect "1234" 'wachtwoord zelf aanpassen
        End With
    End If
End If

End Sub
Dit werkt! Top!!
Super bedankt!!
 
@snb ,
bedoel je zo ?
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Sh.Name <> "export" Then
    If Target.Address(0, 0) = "D7" Then
        With Sheets("export")
            .Unprotect "1234" 'wachtwoord zelf aanpassen
            
             i = .Cells(.Rows.Count, 1).End(xlUp).Row
            .Cells(1, 1).CurrentRegion.AutoFilter
            .Cells(1, 1).CurrentRegion.AutoFilter 1, "<> 0"
            
            .Protect "1234" 'wachtwoord zelf aanpassen
        End With
    End If
End If

End Sub
 
Inderdaad.

Nu kan de variabele i ook nog verdwijnen.
 
Terug
Bovenaan Onderaan