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

Meerdere controls combineren

Status
Niet open voor verdere reacties.

Jos the Boss

Gebruiker
Lid geworden
28 jul 2010
Berichten
57
Hallo,

Ik ben bezig met een scherm waarop, op enig moment 100 buttons verschijnen en die hebben allemaal een ander doel. Namelijk het openen van een bestand wat bij die button hoort.
Nu moet ik 100 maal nagenoeg dezelfde actie uitvoeren im even zoveel control opdrachten. Nu vraag ik mij af of er een mogelijkheid is om dit te groeperen.
Het gaat mij in dit geval om de CommandButton control. De uiteindelijke opdracht laat zich makkelijk met een variabele regelen. Als voorbeeld heb ik hier vier van de opdrachten gezet.

Private Sub CommandButton1_Click()
Workbooks.Open Filename:=Locatie & "1.xlsm"
Unload Me
End Sub
Private Sub CommandButton2_Click()
Workbooks.Open Filename:=Locatie & "2.xlsm"
Unload Me
End Sub
Private Sub CommandButton3_Click()
Workbooks.Open Filename:=Locatie & "3.xlsm"
Unload Me
End Sub
Private Sub CommandButton4_Click()
Workbooks.Open Filename:=Locatie & "4.xlsm"
Unload Me
End Sub

B.v.d.
Jos
 
Volgens mij ben je lang genoeg lid om te weten dat een voorbeeldbestand gewenst is.
 
In een klasse module.
Code:
Option Explicit


' Class module genaamd Klasse1


Public WithEvents ButtonGroup As CommandButton


Private Sub ButtonGroup_Click()
   Workbooks.Open Filename:=Locatie & Replace(ButtonGroup.Name, "CommandButton", "") & ".xlsm"
End Sub
In Thisworkbook.

Code:
Option Explicit
Dim Buttons() As New Klasse1


Private Sub Workbook_Open()
Dim Sh As Worksheet
    Dim Obj As OLEObject
    Dim ButtonCount As Integer
    Set Sh = Sheets("Blad1")
    Erase Buttons
        For Each Obj In Sh.OLEObjects
            If TypeName(Obj.Object) = "CommandButton" Then
                ButtonCount = ButtonCount + 1
                ReDim Preserve Buttons(1 To ButtonCount)
                Set Buttons(ButtonCount) = New Klasse1
                Set Buttons(ButtonCount).ButtonGroup = Obj.Object
            End If
     Next Obj
End Sub
 
In een klasse module.
Code:
Option Explicit


' Class module genaamd Klasse1


Public WithEvents ButtonGroup As CommandButton


Private Sub ButtonGroup_Click()
   Workbooks.Open Filename:=Locatie & Replace(ButtonGroup.Name, "CommandButton", "") & ".xlsm"
End Sub
In Thisworkbook.

Code:
Option Explicit
Dim Buttons() As New Klasse1


Private Sub Workbook_Open()
Dim Sh As Worksheet
    Dim Obj As OLEObject
    Dim ButtonCount As Integer
    Set Sh = Sheets("Blad1")
    Erase Buttons
        For Each Obj In Sh.OLEObjects
            If TypeName(Obj.Object) = "CommandButton" Then
                ButtonCount = ButtonCount + 1
                ReDim Preserve Buttons(1 To ButtonCount)
                Set Buttons(ButtonCount) = New Klasse1
                Set Buttons(ButtonCount).ButtonGroup = Obj.Object
            End If
     Next Obj
End Sub

Bedankt Harry,

Hier ben ik mee geholpen.

Groet,
Jos
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan