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

1 Knop op userform 2 x macro starten (Excel 2016)

Status
Niet open voor verdere reacties.

corvdh

Gebruiker
Lid geworden
29 aug 2010
Berichten
128
Ik heb op een userform een aantal knoppen staan, nu wil ik aan 1 knop 2 macro's koppelen.
Als ik op de knop klik moet macro 1 starten als ik nogmaals op de zelfde knop klik moet macro 2 starten en vervolgens weer van voor af aan.
Kan dit, of heb ik voor elke macro toch een aparte knop nodig?
 
Hoi,
Met zoiets
Code:
Sub Allemacros() 'zet deze onder uw knop 1
Macro1
Macro2
End Sub
 
Sub Macro1()
' uw code
End Sub
 
Sub Macro2()
' uw code
End Sub

Groet
 
Als je dit achter een commanbutton hangt in je Userform dan kom je al een heel eind:

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
 Sleutel = CommandButton1.Caption
   If Sleutel = "MACRO 1" Then GoTo wissel
       CommandButton1.BackColor = 33023
         CommandButton1.Caption = "MACRO 1"
          Run macro1
           Exit Sub
wissel:
   CommandButton1.Caption = "MACRO 2"
       CommandButton1.BackColor = 8454016
        CommandButton1.Caption = "MACRO 2"
          Run macro2
End Sub
 
Ik ben een tijdje met het voorbeeld van Cobbe bezig geweest en de code iets aangepast.

Code:
Private Sub AlgemeenKnop5_Click()
   'Application.ScreenUpdating = False
 Sleutel = AlgemeenKnop5.Caption
   If Sleutel = "Volledig scherm weergeven" Then GoTo wissel
       'AlgemeenKnop5.BackColor = 33023
         AlgemeenKnop5.Caption = "Volledig scherm weergeven"
          Run ("macro1")
           Exit Sub
wissel:
   AlgemeenKnop5.Caption = "MACRO 2"
       'AlgemeenKnop5.BackColor = 8454016
        AlgemeenKnop5.Caption = "Volledig scherm sluiten"
          Run ("macro2")
Wat er nu gebeurt nadat ik het userform geopend heb is als ik op de knop druk eerst de door mij oorspronkelijke knoptekst veranderd naar die uit deze macro, moet dan nog eens klikken om macro 1 uit te voeren en vervolgens start bij een volgende klik macro2.
Moet dus voor 2 macro's 3 keer klikken.
Dit gebeurt trouwens alleen als ik voor de eerste keer het userform open, eenmaal het userform open werkt het allemaal wel met 2 klikken.

Als dit nog aangepast kan worden dan zou het helemaal perfect zijn.
 
Zoals Leo (@Ginger) voorstelde is het een eitje.
Code:
Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then
  Call macro1
 Else
  Call macro2
End If
End Sub
 
 Sub macro1()
  MsgBox "macro1"
 End Sub

 Sub macro2()
  MsgBox "macro2"
 End Sub
 
Gebruik deze nog om de startpositie in te stellen:

Private Sub UserForm_Initialize()
AlgemeenKnop5.Caption = "Volledig scherm weergeven"
End Sub
 
Zoals in het illustratiebestand:

Breng alle code onder in de knop_change gebeurtenis(zie togglebutton1).

Als het gebruik van verschillende macro's echt onvermijdelijk is: zie de _change gebeurtenis van Togglebutton2
 

Bijlagen

Ik denk dat ik met de gegeven oplossingen uit dit topic wel vooruit kan.
Bedankt voor de hulp allemaal.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan