Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

VBA Variable within declaration

Pagina: 1
Acties:

  • KoenAlberts
  • Registratie: November 2008
  • Laatst online: 22-11 14:40
Hallo allemaal,

Ik heb een vraag, ik hoop dat een van jullie mij kan helpen. Ik ben bezig met een klein vba project binnen excel. Het probleem doet zich voor bij item(x) ik heb een aantal invulvelden gemaakt in een userform. Deze velden heten item1, item2, item3, item4 etc. Het is de bedoeling dat wanneer het variabel {SOLINE} wordt gevonden binnen range K2:K5, de waarde van item(x) (op het userform) cell.offset(0, 1) wordt. X wordt telkens met 1 verhoogt. Heeft een van jullie een oplossing of idee?

mbg Koen Alberts

Dim i

For i = 10 To 20 Step 10
x = Left(i, Len(i) - 1)
i = Format(i, "000000")
SOLINE = FormSONumber & i

For Each cell In ThisWorkbook.Sheets("SO").Range("K2:K5")
If cell = SOLINE Then
item(x) = cell.Offset(0, 1).Value
Next

Next

  • KoenAlberts
  • Registratie: November 2008
  • Laatst online: 22-11 14:40
Ik ben nu zo ver:


Private Sub FormSONumber_AfterUpdate()

Dim i
Dim item(5)

For i = 10 To 50 Step 10
x = Left(i, Len(i) - 1)
i = Format(i, "000000")
SOLINE = FormSONumber & i

For Each cell In ThisWorkbook.Sheets("SO").Range("K2:K5")
If cell = SOLINE Then
item(x) = cell.Offset(0, 1).Value
End If
Next

Next

item1.Value = item(1)
item2.Value = item(2)
item3.Value = item(3)
item4.Value = item(4)
item5.Value = item(5)

End Sub

Het vervelende is dat ik in de textbox objects in mijn userform geen "(" ")" tekens kan gebruiken, dus nu moet ik na m'n next statements de waarde achteraf aan mijn textboxes koppelen. Weet iemand dit te omzeilen.

  • KoenAlberts
  • Registratie: November 2008
  • Laatst online: 22-11 14:40
Ik heb het voor elkaar gekregen.
Iemand nog suggesties om deze code nog verder te versimpelen?

Private Sub FormSONumber_AfterUpdate()

Dim i

For i = 10 To 50 Step 10
x = Left(i, Len(i) - 1)
i = Format(i, "000000")
SOLINE = FormSONumber & i

For Each cell In ThisWorkbook.Sheets("SO").Range("SOAndLineNum")
If cell = SOLINE Then
Controls("item" & x).Value = cell.Offset(0, 1).Value
End If
Next

Next


End Sub