Active-X Combox change ==> macro starten

Status
Niet open voor verdere reacties.

Peekhamer

Gebruiker
Lid geworden
2 okt 2012
Berichten
146
afhankelijk van keuze die je maakt via activeX Combobox wil ik sheets laten verbergen of zichtbaar maken.
De box is gekoppeld met cel W5. Indien gelijk aan W4 dan sheets verbergen.

Het wil maar niet lukken en ik snap niet waarom. Heb het gevoel dat ik er dichtbij zit...
Je kunt via activeX combobox geen macro koppelen aan de lijst...

(Ik heb de activeX versie nodig vanwege het kunnen aanpassen van font en lijnen etc.)

Code:
Private Sub Worksheet_Change(ByVal target As Range)

If target.Address <> "$W$5" Then Exit Sub

Dim a As String
a = Range("W5").Value
Else: Select Case (audit)

    Case a = Range("W4").Value
        WorkSheets("test1").Visible = False
        Worksheets("test2").Visible = False
    Case Else
        Worksheets("test1").Visible = True
        Worksheets("test2").Visible = True
    End Select

End Sub
Heb het gevoel dat dit ook moet kunnen met hidden = not.hidden, klopt dat?
En ben ook al bezig geweest met Combobox_Change maar dat lukte ook niet

Kan iemand me een duwtje in de goede richting geven?
 
Jij kan ons al een duwtje geven door een voorbeeldbestand te plaatsen zodat wij niet alles moeten nabouwen.
 
Code:
Private Sub ComboBox1_Change()
    Application.ScreenUpdating = False
    Worksheets("looncontrole").Visible = ComboBox1.Value <> Range("W4").Value
    Worksheets("steekproef").Visible = ComboBox1.Value <> Range("W4").Value
    Application.ScreenUpdating = True
End Sub

In de bladmodule van de sheet met de CB.
 
Zo simpel he, als je het ziet...

bedankt!! Weer wat geleerd.
Opgelost
 
Zo simpel he, als je de oplossing dan ziet.

Bedankt, weer wat geleerd!
Opgelost.
 
Hoezo simpel ?

Code:
Private Sub ComboBox1_Change()
  sheets(array("looncontrole","steekproef")).Visible = ComboBox1.Value <> sheets("sheet1").Range("W4").Value
End Sub
 
@ snb
Ik had 'm ook eerst zo geprobeerd maar dan kreeg ik de foutmelding 'subscript valt buiten bereik'.
Zet je ze apart dan werkt het feilloos ?????
 
Er is iets vreemds mee:
De eerste keer kun je beide werkbladen hiermee op onzichtbaar zetten, daarna krijg je alleen maar foutmeldingen. (zowel bij True, False, -1, 0 als 2).
Blijkbaar werkt de array-methode alleen voor zichtbare werkbladen.
 
Laatst bewerkt:
Ik heb de oplossing inmiddels verwerkt en 'works like a charm'. Moest alleen nog wat code verbouwen die de verborgen tabbladen wil selecteren en er vervolgens iets mee doet. Blad is verborgen dus hij geeft foutmelding.

Code:
Sheets("Begeleidingsformulier").Range("D7").Select
(cel staat op deze wijze klaar voor gebruiker, macro doet er verder niets meer mee.)

Als ik probeer om deze code uit te voeren krijg ik een foutmelding 'Methode Select van klasse Range mislukt'. Via sheet.select en vervolgens cel.select werkt het wel.. kan dat niet in een keer dan? Heb het ook met Activate geprobeerd maar krijg dan dezelfde melding.. Het is niet heel belangrijk maar ik leer graag :rolleyes:
 
Vermijd 'Select' en 'Activate' in VBA.

je kunt direct naar zo'n cel met

lezen:
Code:
msgbox Sheets("Begeleidingsformulier").Range("D7").Value

schrijven:
Code:
Sheets("Begeleidingsformulier").Range("D7")= "opnieuw"
 
OK maar om je 'cursor' daar direct neer te zetten gaat niet. Ik wil hem alleen "klaarzetten" voor gebruik.
Kan ik iets met "activecell.address ofzo?? eens even kijken....
 
Zonder select toch selecteren
Code:
Application.Goto Sheets("Begeleidingsformulier").Range("D7") 'of .Cells(7, 4)
 
Ook dat werkt niet maar het is niet zo belangrijk.. dus bedankt voor de moeite, ik zet m opgelost!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan