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

verbergen van rijen als celwaarde niet gevuld is

Status
Niet open voor verdere reacties.

Danny83

Gebruiker
Lid geworden
23 dec 2008
Berichten
17
Hallo mensen,

Ik heb een volgend probleem. Ik wil graag overbodige rijen verbergen indien er in kolom A in een bepaalde reeks de celwaarde leeg (niet gevuld) is. In mijn voorbeeldbestandje heb ik geprobeerd dit duidelijk te maken.
Kan iemand mij helpen hier een VBA-tekst bij te schrijven? Alvast bedankt.

Groeten,

Danny
 

Bijlagen

Zoiets kan je makkelijk doen met een autofilter en daar heb je bijgevolg geen letter VBA-code voor nodig.

Wigi
 
Een autofilter is niet mogelijk omdat de reeks rijen een onderdeel uitmaakt van een soort invulsheet. De sheet bevat dus nog meer info die niets te maken heeft met deze rijen.

Ik kan de rijen wel handmatig verbergen, maar het zou wel handiger zijn als dit automatisch gestuurd wordt.

Dit is dus NIET dè oplossing voor mijn probleem...maar evengoed bedankt voor het meedenken...

Groet,

Danny
 
De juiste sheet

Hallo mensen,

Ik zet bij deze even de sheet in de bijlagen waar het allemaal om draait.

Als er in de range A7:A25 lege cellen voorkomen, moeten deze rijen verborgen worden.
Idem dito voor de range A46:A64.

range A7:A25 wordt gevuld door Blad1. In Blad1 is de bedoeling iedere keer nieuwe info te plakken, waardoor Blad2 ook veranderd.

Ik heb even met macro's zitten stoeien en dit moet het worden, maar dan automatisch:

Sub HideRows()
BeginRow1 = 7
EndRow1 = 25
BeginRow2 = 46
EndRow2 = 64
ChkCol = 1

For RowCnt = BeginRow1 To EndRow1
If Cells(RowCnt, ChkCol).Value = "" Then
Cells(RowCnt, ChkCol).EntireRow.Hidden = True
End If
Next RowCnt
For RowCnt = BeginRow2 To EndRow2
If Cells(RowCnt, ChkCol).Value = "" Then
Cells(RowCnt, ChkCol).EntireRow.Hidden = True
End If
Next RowCnt
End Sub

Kan iemand ervoor zorgen dat je deze macro automatisch wordt "geupdate" als blad1 wordt aangepast???? Alvast bedankt.
 

Bijlagen

Dat kan met een Worksheet_Change event, kijk op het forum in gelijkaardige topics want dit komt vaak voor.

Wigi
 
Ik heb vanalles geprobeerd, maar krijg de macro niet werkend... Is de macro zoals hierboven beschreven wel toepasselijk in een worksheet_change event??? Ik hoor het wel van een expert...

Dat kan met een Worksheet_Change event, kijk op het forum in gelijkaardige topics want dit komt vaak voor.

Wigi
 
Danny, plak onderstaande code achter Blad1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lRij As Long, yRij As Long
    For Each x In ActiveSheet.[B3:T3]
        For lRij = 7 To 25 Step 1
            With Sheets("Blad2")
                If .Cells(lRij, 1).Value = "" Then
                    .Cells(lRij, 1).EntireRow.Hidden = True
                Else
                    .Cells(lRij, 1).EntireRow.Hidden = False
                End If
            End With
        Next
        For yRij = 46 To 64 Step 1
            With Sheets("Blad2")
                If .Cells(yRij, 1).Value = "" Then
                    .Cells(yRij, 1).EntireRow.Hidden = True
                Else
                    .Cells(yRij, 1).EntireRow.Hidden = False
                End If
            End With
        Next
    Next
End Sub

Mvg

Rudi
 
Laatst bewerkt:
Perfect!!!

Hela,

Bedankt!!! Dit is precies wat ik zocht!! Perfect!

Groeten,

Danny

Danny, plak onderstaande code achter Blad1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lRij As Long, yRij As Long
    For Each x In ActiveSheet.[B3:T3]
        For lRij = 7 To 25 Step 1
            With Sheets("Blad2")
                If .Cells(lRij, 1).Value = "" Then
                    .Cells(lRij, 1).EntireRow.Hidden = True
                Else
                    .Cells(lRij, 1).EntireRow.Hidden = False
                End If
            End With
        Next
        For yRij = 46 To 64 Step 1
            With Sheets("Blad2")
                If .Cells(yRij, 1).Value = "" Then
                    .Cells(yRij, 1).EntireRow.Hidden = True
                Else
                    .Cells(yRij, 1).EntireRow.Hidden = False
                End If
            End With
        Next
    Next
End Sub

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan