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

Rijen met bepaalde waarde in gekoppelde sheets met VBA verbergen

Status
Niet open voor verdere reacties.

Esducsafe

Gebruiker
Lid geworden
2 sep 2009
Berichten
185
Beste Helpers,
Het verbergen van Rijen (zie bijlage) indien ze leeg zijn werkt perfect met de Commandbuton en de programmacode. Maar de rijen op sheet 2 zijn niet leeg omdat de Rij gekoppeld is met sheet 1en dan werkt de programmacode (cellTypeBlanks?) niet. Wie weet hoe de programmacode aangepast moet worden?
Alvast bedankt.
mvg
Esko
 

Bijlagen

Een oplossing is de formule aan te passen waar de verwijzing een 0 aangeeft. Deze zou je kunnen veranderen in bijvoorbeeld (voor cel B5 op sheet BALANS):
Code:
=ALS(sheet1!B5="";"";sheet1!B5)

Als je per se dit in VBA wilt oplossen kan je dit als volgt aanpakken:
Code:
Private Sub CommandButton1_Click()

  If CommandButton1.Caption = "VBR" Then
    CommandButton1.Caption = "WTR"
    On Error Resume Next
      For i = 5 To 245
        If Sheets("balans").Cells(i,2).Value = 0 OR Sheets("balans").Cells(i,2).Value = "" Then
          Sheets("balans").Rows(i).EntireRow.Hidden = True
        End If
      Next i
  ElseIf CommandButton1.Caption = "WTR" Then
    CommandButton1.Caption = "VBR"
    On Error Resume Next
    Sheets("balans").Range("B5:B245").EntireRow.Hidden = False
    Sheets("balans").Range("A5:A245").EntireRow.Hidden = False
  End If

End Sub
 
Hei Mark,
Jouw bijdrage uitgewerkt in bijgevoegde bijlage. De ALS-formule maakt de Cel niet leeg en dan werkt de VBA verberg code dus niet. Jouw VBA oplossing geeft ook niet het gewenste resultaat. Scherm begint tijdens uitvoeren opdracht te flikkeren en komt helaas niet tot het gewenste resultaat. Erg jammer, maar toch bedankt. Ben benieuwd of een oplossing mogelijk is.
mvg
Esko



Een oplossing is de formule aan te passen waar de verwijzing een 0 aangeeft. Deze zou je kunnen veranderen in bijvoorbeeld (voor cel B5 op sheet BALANS):
Code:
=ALS(sheet1!B5="";"";sheet1!B5)

Als je per se dit in VBA wilt oplossen kan je dit als volgt aanpakken:
Code:
Private Sub CommandButton1_Click()

  If CommandButton1.Caption = "VBR" Then
    CommandButton1.Caption = "WTR"
    On Error Resume Next
      For i = 5 To 245
        If Sheets("balans").Cells(i,2).Value = 0 OR Sheets("balans").Cells(i,2).Value = "" Then
          Sheets("balans").Rows(i).EntireRow.Hidden = True
        End If
      Next i
  ElseIf CommandButton1.Caption = "WTR" Then
    CommandButton1.Caption = "VBR"
    On Error Resume Next
    Sheets("balans").Range("B5:B245").EntireRow.Hidden = False
    Sheets("balans").Range("A5:A245").EntireRow.Hidden = False
  End If

End Sub
 

Bijlagen

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
If CommandButton1.Caption = "VBR" Then
CommandButton1.Caption = "WTR"
On Error Resume Next
For i = 5 To 245
    If Sheets("balans").Cells(i, 2).Value = 0 Then Sheets("balans").Cells(i, 2).EntireRow.Hidden = True
Next i
With Sheets("balans")
    .[C5:C245].SpecialCells(xlCellTypeConstants).EntireRow.Hidden = False
    .[A5:A245].SpecialCells(xlCellTypeConstants, xlNumbers).Offset(-1, 0).EntireRow.Hidden = False
End With
ElseIf CommandButton1.Caption = "WTR" Then
CommandButton1.Caption = "VBR"
On Error Resume Next
With Sheets("balans")
    .[B5:B245].EntireRow.Hidden = False
    .[A5:A245].EntireRow.Hidden = False
End With
End If
Application.ScreenUpdating = True
End Sub
 
Beste Warme bakkertje Rudi,
Jouw bijdrage was zoals het een warme bakker betaamt behoorlijk warm. Oplossing werkt perfect. Hartelijk dank daarvoor.
met vriendelijke groet,
Esko
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan