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

Vereenvoudigen VBA in Excel

Status
Niet open voor verdere reacties.

Jos the Boss

Gebruiker
Lid geworden
28 jul 2010
Berichten
57
Met een for next kan ik ervoor zorgen dat de range in een regel past.

Helaas kan ik niet vinden of dit ook mogelijk is met, in dit geval, een CommandButton. Hierdoor moet ik veel VB opnemen en wordt een script al snel onleesbaar.
Weet iemand of het wel mogelijk is om een dergelijke lus constructie te gebruiken?

FOR X = 1 to 18
Cmd1.Caption = Sheets("Gegevens").Range("A" & X).Value
Next

Cmd2.Caption = Sheets("Gegevens").Range("A2").Value
Cmd3.Caption = Sheets("Gegevens").Range("A3").Value
Cmd4.Caption = Sheets("Gegevens").Range("A4").Value
Cmd5.Caption = Sheets("Gegevens").Range("A5").Value
Cmd6.Caption = Sheets("Gegevens").Range("A6").Value
Cmd7.Caption = Sheets("Gegevens").Range("A7").Value
Cmd8.Caption = Sheets("Gegevens").Range("A8").Value
Cmd9.Caption = Sheets("Gegevens").Range("A9").Value
CMD10.Caption = Sheets("Gegevens").Range("A10").Value
Cmd11.Caption = Sheets("Gegevens").Range("A11").Value
Cmd12.Caption = Sheets("Gegevens").Range("A12").Value
Cmd13.Caption = Sheets("Gegevens").Range("A13").Value
Cmd14.Caption = Sheets("Gegevens").Range("A14").Value
Cmd15.Caption = Sheets("Gegevens").Range("A15").Value
Cmd16.Caption = Sheets("Gegevens").Range("A16").Value
Cmd17.Caption = Sheets("Gegevens").Range("A17").Value
Cmd18.Caption = Sheets("Gegevens").Range("A18").Value

Alvast bedankt voor het meedenken.
 
Heb je het dan over buttons in een werkblad of in een Userform?
 
Dat kan op deze manier:

Code:
Private Sub CommandButton1_Click()
    Dim i As Integer
    For i = 2 To 18
        Me.Controls("Cmd" & i).Caption = Sheets("Gegevens").Range("A" & i)
    Next
End Sub

Deze gaat er vanuit dat de buttons direct in het Userform staan en niet in een andere container van het Userform. Tevens moet de range A2 t/m A18 in het werkblad Gegevens allemaal gevuld zijn. Als daar afwijkingen in zijn zul je aan fout afhandeling moeten doen.
 
Laatst bewerkt:
Mij lijkt dit voor de hand liggender:

Code:
Private Userform_initialize()
    sn=Sheets("Gegevens").cells(1).resize(18)

    For j = 1 To 18
        Me("Cmd" & j).Caption = sn(j,1)
    Next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan