Code vereenvoudigen met lus.

Status
Niet open voor verdere reacties.

Woffels

Gebruiker
Lid geworden
8 jan 2006
Berichten
251
Hallo,

Ik heb een aantal textboxen die ik wil vullen met een aantal ranges. Nu hebben de ranges en de textboxen dezelfde nummering. Dit moet ik 6 keer doen bij het laden van een form. Zoals je ziet zit er een logische nummering in (1 tot 6).
De code ziet er nu zo uit:

Code:
''Loadcel1
txtLoadcell1_NR.Value = Range(Methode & "_Loadcell1_NR").Value
txtLoadcell1_Serial.Value = Range(Methode & "_Loadcell1_Serial").Value
txtLoadcell1_Range.Value = Range(Methode & "_Loadcell1_Range").Value
txtLoadcell1_Type.Value = Range(Methode & "_Loadcell1_Type").Value
txtLoadcell1_Manufacturer.Value = Range(Methode & "_Loadcell1_Manufacturer").Value

''Loadcel2
txtLoadcell2_NR.Value = Range(Methode & "_Loadcell2_NR").Value
txtLoadcell2_Serial.Value = Range(Methode & "_Loadcell2_Serial").Value
txtLoadcell2_Range.Value = Range(Methode & "_Loadcell2_Range").Value
txtLoadcell2_Type.Value = Range(Methode & "_Loadcell2_Type").Value
txtLoadcell2_Manufacturer.Value = Range(Methode & "_Loadcell2_Manufacturer").Value

''Loadcel3
txtLoadcell3_NR.Value = Range(Methode & "_Loadcell3_NR").Value
txtLoadcell3_Serial.Value = Range(Methode & "_Loadcell3_Serial").Value
txtLoadcell3_Range.Value = Range(Methode & "_Loadcell3_Range").Value
txtLoadcell3_Type.Value = Range(Methode & "_Loadcell3_Type").Value
txtLoadcell3_Manufacturer.Value = Range(Methode & "_Loadcell3_Manufacturer").Value

''Loadcel4
txtLoadcell4_NR.Value = Range(Methode & "_Loadcell4_NR").Value
txtLoadcell4_Serial.Value = Range(Methode & "_Loadcell4_Serial").Value
txtLoadcell4_Range.Value = Range(Methode & "_Loadcell4_Range").Value
txtLoadcell4_Type.Value = Range(Methode & "_Loadcell4_Type").Value
txtLoadcell4_Manufacturer.Value = Range(Methode & "_Loadcell4_Manufacturer").Value

''Loadcel5
txtLoadcell5_NR.Value = Range(Methode & "_Loadcell5_NR").Value
txtLoadcell5_Serial.Value = Range(Methode & "_Loadcell5_Serial").Value
txtLoadcell5_Range.Value = Range(Methode & "_Loadcell5_Range").Value
txtLoadcell5_Type.Value = Range(Methode & "_Loadcell5_Type").Value
txtLoadcell5_Manufacturer.Value = Range(Methode & "_Loadcell5_Manufacturer").Value

''Loadcel6
txtLoadcell6_NR.Value = Range(Methode & "_Loadcell6_NR").Value
txtLoadcell6_Serial.Value = Range(Methode & "_Loadcell6_Serial").Value
txtLoadcell6_Range.Value = Range(Methode & "_Loadcell6_Range").Value
txtLoadcell6_Type.Value = Range(Methode & "_Loadcell6_Type").Value
txtLoadcell6_Manufacturer.Value = Range(Methode & "_Loadcell6_Manufacturer").Value

Is het niet mogelijk om met een lus (Do While) en een teller (1 tot 6) te werken zodat ik de code flink kan inkorten. Het komt namelijk nogal vaak voor in mijn project.
Hoe doe ik dat??
 
Waarschijnlijk zo

Code:
For j = 1 To 6
    Me.Controls("txtLoadcell" & j & "_NR.value") = Range(Methode & "_Loadcell" & j & "_NR").value
Next j
 
Zet eerst het gebied met de waarden die je wil inlezen in een array.
Vermijd overbodige benoemde gebieden

Code:
Private sub Userform_initialize()
  sn=cells(1).currentregion

  for j=1 to ubound(sn)
    for jj= 1 to 6
      Me("Textbox" & j & "_" & jj).text=sn(j,jj)
    next
  next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan