[VBA] Hoe twee variabele vergelijken in een loop?

Pagina: 1
Acties:
  • 213 views sinds 30-01-2008
  • Reageer

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Dim Keuze1 as Integer
Dim Keuze2 as Integer
Dim Keuze3 as Integer
Dim Keuze4 as Integer
Dim Positie1 as Integer
Dim Positie2 as Integer
Dim Positie3 as Integer
Dim Positie4 as Integer

For i = 1 To 4
If "Keuze" & i = "Positie" & i Then
Cells(1, 1) = "YES, het werkt!"
End If
Next i
Ik heb dit stukje tekst, als Keuze1 en Positie1 dezelfde waarde hebben. Waarom kom er dan niet Yes te staan??

of ben ik hier aan het kijken of het woord Keuze1 gelijk is aan het woord Positie1???

Ik heb het ook al geprobeerd met haakjes, en zonder " tekens. Maar dat leverd nog steeds niks op.


Iemand die mij kan helpen??

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Eigelijk weet ik wel zeker dat ik de woorden aan het vergelijken ben. Maar hoe maak ik de variabelenaam uit een vast stuk + een cijfer van de loop???

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • Narf109
  • Registratie: Juli 2001
  • Laatst online: 09:56
ik gebruik geen VBA maar VB dus ik weet niet of dit werkt in vba
code:
1
2
3
4
5
6
Dim Keuze(1 to 4) as Integer
Dim Positie(1 to 4) as integer

for x = 1 to 4
    if Keuze(x) = Positie(x) then Cells(1, 1) = "YES, het werkt!"
next x

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Op dinsdag 25 september 2001 23:51 schreef Narf het volgende:
ik gebruik geen VBA maar VB dus ik weet niet of dit werkt in vba
code:
1
2
3
4
5
6
Dim Keuze(1 to 4) as Integer
Dim Positie(1 to 4) as integer

for x = 1 to 4
    if Keuze(x) = Positie(x) then Cells(1, 1) = "YES, het werkt!"
next x
Nee, werkt niet. Hij denk nu dat ik een matrix aan het maken ben :|(

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 07:51

Crazy D

I think we should take a look.

Maar het idee van arrays is zo gek nog niet :)

Anders krijg je een berg if-jes, en of je daar nou zo blij van wordt ;)
Je kan even kijken of VBA de Eval functie kent... VBscript kent 'm wel, maja da's ook weer iets anders dan VBA :)

Exact expert nodig?


  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Op dinsdag 25 september 2001 23:51 schreef Narf het volgende:
ik gebruik geen VBA maar VB dus ik weet niet of dit werkt in vba
code:
1
2
3
4
5
6
Dim Keuze(1 to 4) as Integer
Dim Positie(1 to 4) as integer

for x = 1 to 4
    if Keuze(x) = Positie(x) then Cells(1, 1) = "YES, het werkt!"
next x
Ok het werkt wel als ik ze ook declareer met Dim Keuze(1 to 4). Maar hoe kan ik dan alleen de waarde van keuze2 opvragen?
Want de oplossing zit wel in een matrix geloof ik.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

Als ik dit:

Sub rotzooi()

Dim Keuze1 As Integer
Dim Keuze2 As Integer
Dim Keuze3 As Integer
Dim Keuze4 As Integer
Dim Positie1 As Integer
Dim Positie2 As Integer
Dim Positie3 As Integer
Dim Positie4 As Integer

For i = 1 To 4
If Keuze & i = Positie & i Then
MsgBox ("YES, het werkt!")
End If
Next i

End Sub

fffff in excel in VBA plak, werkt dit wel degelijk en krijg ik 4 * de msgbox dat het werkt.

cells(1,1) kent ie volgens mij niet, wel (a1 bijvoorbeeld) cells.item(1,"a") (.value of.text etc.......)

  • itsme
  • Registratie: Februari 2000
  • Niet online
Een integer is toch ook een nummerieke waarde, een string is een woord, toch?

"If God wanted us to have unlimited free energy He would have put a giant fusion reactor in the sky"


  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Op woensdag 26 september 2001 00:20 schreef jaro het volgende:
Als ik dit:

Sub rotzooi()

Dim Keuze1 As Integer
Dim Keuze2 As Integer
Dim Keuze3 As Integer
Dim Keuze4 As Integer
Dim Positie1 As Integer
Dim Positie2 As Integer
Dim Positie3 As Integer
Dim Positie4 As Integer

For i = 1 To 4
If Keuze & i = Positie & i Then
MsgBox ("YES, het werkt!")
End If
Next i

End Sub

fffff in excel in VBA plak, werkt dit wel degelijk en krijg ik 4 * de msgbox dat het werkt.

cells(1,1) kent ie volgens mij niet, wel (a1 bijvoorbeeld) cells.item(1,"a") (.value of.text etc.......)
Shit, je hebt wel gelijk met de code. Krijg inderdaad wel 4 msgbox-jes. Maar waarom werkt het dan niet in mijn programma :?

p.s. maar cells(1,1)="Blaat" werkt wel in VBA, maar goed.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Sub macro1()

Dim Keuze1 As Integer
Dim Keuze2 As Integer
Dim Keuze3 As Integer
Dim Keuze4 As Integer
Dim Positie1 As Integer
Dim Positie2 As Integer
Dim Positie3 As Integer
Dim Positie4 As Integer

Keuze1 = 1
Positie1 = 2
For i = 1 To 4
If Keuze & i = Positie & i Then
Cells(i, 2) = ("YES, het werkt!")
End If
Next i

End Sub
Nu is het dus zo dat keuze1 en positie2 NIET gelijk aan elkaar zijn, maar toch 4 msgboxen

dit klopt niet

[edit]
en dit komt omdat hij nu gewoon 1 en 1 vergelijkt en 2 en 2 vergelijkt, enz.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

hmmz vba heeft toch gewoon eval()?

If eval(Keuze & i) = eval(Positie & i) Then

probeer die eens?

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Ok, ik heb het opgelost! Door alle variabelen te declareren met (1 to 4) en iedere keer als ik een individuele moet hebben, opvragen met keuze(3) = .......


Iedereen bedankt!

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • Narf109
  • Registratie: Juli 2001
  • Laatst online: 09:56
Op woensdag 26 september 2001 00:57 schreef Hu9o het volgende:

Iedereen bedankt!
Graag gedaan... ;)

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 09:55

Hu9o

Schokkend

Topicstarter
Op woensdag 26 september 2001 01:19 schreef Narf het volgende:

[..]

Graag gedaan... ;)
En Narf in het bijzonder *D

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<

Pagina: 1