reneemettrie
Terugkerende gebruiker
- Lid geworden
- 1 aug 2006
- Berichten
- 1.281
Iemand wil in Excel 2003 één macro maken die vanuit verschillende knoppen wordt aangeroepen. Naargelang de aanroepende knop moet de macro een andere actie verrichten.
Ik heb dat gesimuleerd met op verschillende sheets een aantal benoemde gebieden te maken, “België”, “NL”, “Frankrijk”.
Ik maak dan met de Control toolbox 3 knoppen met als Caption “België”, “NL”,”Frankrijk”
In een gewone module zet ik het volgende:
Aan de knoppen koppel ik de volgende code:
Maar nu is mijn vraag: kan dat eleganter?
Heb je die variabele “land” nodig?
Of kan je in de afdrukmacro de variabele” land” wijzigen in iets dat neerkomt op AanroependeKnop.Caption? (dus zoiets als de PreviousControl.acption in Access VBA) en dan die afdrukmacro aanroepen vanuit alle 3 die knoppen?
In VB6 kan je een array van knoppen maken die allemaal hetzelfde doen, ik veronderstel dat dit in VBA niet kan?
Hoop dat het duidelijk geformuleerd is…
Ik heb dat gesimuleerd met op verschillende sheets een aantal benoemde gebieden te maken, “België”, “NL”, “Frankrijk”.
Ik maak dan met de Control toolbox 3 knoppen met als Caption “België”, “NL”,”Frankrijk”
In een gewone module zet ik het volgende:
Code:
Option Explicit
Public land As String
Public Sub druk_af()
Dim tabel As Range
Set tabel = Range(land)
tabel.PrintOut preview:=True
End Sub
Aan de knoppen koppel ik de volgende code:
Code:
Private Sub cmd_België_Click()
land = cmd_België.Caption
druk_af
End Sub
Private Sub cmd_Frankrijk_Click()
land = cmd_Frankrijk.Caption
druk_af
End Sub
Private Sub cmd_Nl_Click()
land = cmd_Nl.Caption
druk_af
End Sub
Maar nu is mijn vraag: kan dat eleganter?
Heb je die variabele “land” nodig?
Of kan je in de afdrukmacro de variabele” land” wijzigen in iets dat neerkomt op AanroependeKnop.Caption? (dus zoiets als de PreviousControl.acption in Access VBA) en dan die afdrukmacro aanroepen vanuit alle 3 die knoppen?
In VB6 kan je een array van knoppen maken die allemaal hetzelfde doen, ik veronderstel dat dit in VBA niet kan?
Hoop dat het duidelijk geformuleerd is…