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

VB Macro (verbergen, zichtbaar maken)

Status
Niet open voor verdere reacties.

johanpruts

Nieuwe gebruiker
Lid geworden
19 apr 2010
Berichten
4
Goedemiddag,

Ik ben een offerteprogramma aan het maken. Nu wil ik graag dat als er een module niet geoffeert hoeft te worden dat de regels bij het aanklikken van een checkbox verdwijnen.
Dus eigenlijk, op worksheet Rekenblad staat een chekbox gekoppeld aan onderstaande macro, als deze wordt aangeklikt dan moet op worksheet Offerte een aantal regels worden verborgen of zichtbaar worden gemaakt.
Deze macro had ik gemaakt (opgenomen), alleen die werkt niet goed en geeft de melding dat het bij "Range" niet goed gaat.

Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Sheets("Offerte").Select
Rows("15:23").Select
Selection.EntireRow.Hidden = True
Range("A24").Select
Sheets("Rekenblad").Select
Range("A1").Select
End If
CheckBox1.Value = False
Sheets("Offerte").Select
Rows("15:23").Select
Selection.EntireRow.Hidden = False
Range("A24").Select
Sheets("Rekenblad").Select
Range("A1").Select
End Sub

Wie kan zo zien wat er fout gaat?
 
Laatst bewerkt door een moderator:
Bevindt die checkbox zich op het blad "Rekenblad" ?
 
Als je in de ontwerpmodus met de rechtermuisknop op de checkbox klikt, en je kiest dan
"programmacode weergeven", dan is dat de plaats waar je macro hoort te staan.
Op het eind van je macro selecteer je op het blad Offerte cel A24 en vervolgens selcteer je op het blad Rekenblad cel A1. Het is een van de twee, maar niet allebei, dat is zinloos.
Ik kan niet zien hoe jouw bladen er uitzien, maar probeer dit:
Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
With Sheets("Offerte")
.Activate
.Rows("15:23").Hidden = True
.Range("A24").Select
End With
Else
Sheets("Offerte").Rows("15:23").Hidden = False
Range("A1").Select
End If
End Sub
 
Als je in de ontwerpmodus met de rechtermuisknop op de checkbox klikt, en je kiest dan
"programmacode weergeven", dan is dat de plaats waar je macro hoort te staan.
Op het eind van je macro selecteer je op het blad Offerte cel A24 en vervolgens selcteer je op het blad Rekenblad cel A1. Het is een van de twee, maar niet allebei, dat is zinloos.
Ik kan niet zien hoe jouw bladen er uitzien, maar probeer dit:
Code:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
With Sheets("Offerte")
.Activate
.Rows("15:23").Hidden = True
.Range("A24").Select
End With
Else
Sheets("Offerte").Rows("15:23").Hidden = False
Range("A1").Select
End If
End Sub


Nou helemaal SUPER, hij gaat alleen niet beide keren terug naar de sheet Offerte cel A1.
Kan zo snel niet zien hoe die nu verwerkt zit in de macro.
Is het
Code:
 Range("A1").Select
 
Nou helemaal SUPER, hij gaat alleen niet beide keren terug naar de sheet Offerte cel A1.
Uit je macro was niet op te maken dat dat de bedoeling was.
Probeer dit:
Code:
Private Sub CheckBox1_Click()
With Sheets("Offerte")
.Activate
.Range("A1").Select
If CheckBox1.Value = True Then
.Rows("15:23").Hidden = True
Else
Sheets("Offerte").Rows("15:23").Hidden = False
End If
End With
End Sub
 
Of, iets korter:
Code:
Private Sub CheckBox1_Click()
With Sheets("Offerte")
.Activate
Sheets("Offerte").Rows("15:23").Hidden = False
.Range("A1").Select
If CheckBox1.Value = True Then
.Rows("15:23").Hidden = True
End If
End With
End Sub
 
Hij kan nog korter
Code:
Private Sub CheckBox1_Click()
    Sheets("Offerte").Rows("15:23").Hidden = IIf(CheckBox1, True, False)
    Application.Goto [Offerte!A1]
End Sub
 
Helemaal goed, ik heb hem aan de praat! Ode aan ieder die antwoorde, was er al een kleine drie dagen mee bezig :S
 
of
Code:
Private Sub CheckBox1_Click()
  [Offerte!15:23].entirerow.Hidden = CheckBox1
  Application.Goto [Offerte!A1]
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan