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

code vereenvoudigen

Status
Niet open voor verdere reacties.

Eastw00d

Gebruiker
Lid geworden
3 mrt 2013
Berichten
118
ik heb een userform waarin op de volgende wijze tekstvakken laat vullen.

Code:
Private Sub UserForm_Initialize()
JanWk1.Value = Blad3.[B3]
JanWk2.Value = Blad3.[c3]
janWk3.Value = Blad3.[d3]
JanWk4.Value = Blad3.[e3]
JanWk5.Value = Blad3.[f3]
end sub

Nu moet ik op deze wijze 60 tekstvakken vullen. Is er geen methode om dit te vereenvoudigen?

Bij voorbaat dank
 
60 tekstvakken op een userform?
Volgens mij moet je dát vereenvoudigen.
 
Dat hangt ervan af.
Plaats eens een voorbeeld.
 
Bv.

Code:
Private Sub UserForm_Initialize()
c00 = "Jan Feb Mrt Apr Mei Jun Jul Aug Sep Okt Nov Dec"
  For j = 0 To 11
    For jj = 1 To 5
      Me.Controls(Split(c00)(j) & "Wk" & jj) = Cells(j + 3, jj + 1).Value
    Next jj
  Next j
End Sub
 
Ik zie de toegevoegde waarde van het gebruik van een userform niet. Je kunt net zo goed gelijk in de cel werken.
Mgoed. Ik kom op iets vergelijkbaars als VenA uit:
Code:
Private Sub UserForm_Initialize()
    Dim i As Long, j As Long
    
    For j = 1 To 12
        For i = 1 To 5
            Me(Application.GetCustomListContents(3)(j) & "Wk" & i) = Blad3.Cells(j + 2, i + 1)
        Next
    Next
End Sub
en
Code:
Private Sub CommandButton1_Click()
    Dim i As Long, j As Long
    
    For j = 1 To 12
        For i = 1 To 5
            Worksheets("Boodschappen").Cells(j + 2, i + 1) = CDbl(Me(Application.GetCustomListContents(3)(j) & "Wk" & i))
        Next
    Next
    Unload Me
End Sub
 
Laatst bewerkt:
Duidelijk.

Stel nu dat ik dit ook toe wil passen op een ander blad,
hoe is deze code opgebouwd?
(kan ik er ook iets van leren ipv klakkeloos knippen/plakken)
 
Dat kan je toch zien in de codes van Timshel?

Blad3 is de codename van het blad. De codename is de beste manier omdat die niet aan te passen is.
Worksheets("Boodschappen") is de naam van het blad. Dit kan je ook schrijven als Sheets("Boodschappen"). Als je naam van het blad wijzigt zal de code niet meer werken.
Je kan ook Sheets(2) gebruiken. Het is het tweede blad in het bestand. Verplaats je het blad dan werkt de code nog wel alleen klopt er niets meer van.

In miijn code zie je geen bladverwijzing omdat het formulier door de knop op het huidige blad wordt aangeroepen. (Activesheet)
 
Bedankt ik ga er mee aan de slag.

(Application.GetCustomListContents(3)(j) & "Wk" & i) wordt dan gebruikt voor het benoemen van de tekstbox?
 
Laatst bewerkt:
Volgens mij is dit forum bedoelt om een antwoord te geven op de vraag en niet om een handleiding te maken van alle deelelementen die in een mogelijke oplossing zitten.

Er zijn voldoende mogelijkheden om het eea zelf uit te zoeken.

Bv:
-Onderzoek de mogelijkheden van de VB Editor eens om code te analyseren;
-Google;
-een goed VBA boek;
-etc.

Daar leer je ook het meeste van.;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan