Code uitvoeren middels button

Status
Niet open voor verdere reacties.

janus1janus1

Gebruiker
Lid geworden
7 apr 2005
Berichten
103
Hallo

Ik heb een vrij groot aantal button verspreid over een aantal werkbladen. Aan die knoppen heb ik macro's toegekend.
Nu zijn de macro's redelijk groot en, op een paar variabelen na, identiek aan elkaar.
Is het mogelijk om de code zo aan te passen dat ik de naam van de button als variabele kan gebruiken.
Ik heb geprobeerd:
Code:
If ActiveSheet.Shapes("Button 120").Select = True Then ..........
maar dit werkt niet.
Kan iemand mij daar mee helpen?
bij voorbaat dank

Janus
 
Laatst bewerkt door een moderator:
Je zou eens kunnen kijken naar
Code:
strControlName = Screen.ActiveControl.Name
strControlName bevat nu de naam van het laatste control dat focus had

Maar als al je macro's bijna hetzelfde doen zou je ze eigenlijk moeten gaan herschrijven naar een sub of functie

Neem als voorbeeld even 2 routines die een waarde aan een variabele "Variabele" toekennen

Code:
Private sub Macro1
  Variabele =1 
End Sub

Code:
Private sub Macro2
  Variabele =2
End Sub

Je zou dit nu als één routine kunnen schrijven
Code:
Private Sub KenToe(i as integer)
   Variabele=i
end sub

En vervolgens dus de routine oproepen vanuit de twee eerdere routines
Code:
Private sub Macro1
  KenToe 1
End Sub

Private sub Macro2
  kenToe 2
End Sub


Ik hoop dat je hier iets mee kan
 
Dank voor je reactie.

Als ik echter jouw code probeer:
Code:
strControlName = Screen.ActiveControl.Name
dan krijg ik een foutmelding "object vereist"

Het nummer van de button zou bepalend moeten zijn voor de variabele. Is er wellicht een andere oplossing of heb ik iets fout gedaan met jouw voorstel.

vrgr
Janus
 
Laatst bewerkt door een moderator:
Sorry, mijn fout, Excel VBA kent het object screen niet, Access VBA wel.
Ik zal even voor je kijken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan