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

userform1.textbox1>=userform2.textbox42

  • Onderwerp starter Onderwerp starter gbvdh
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

gbvdh

Gebruiker
Lid geworden
14 feb 2007
Berichten
111
Goedendag,

Om een waarde van userform1 naar userform2 heb ik hier de volgende code gekregen defineer ze als:
Code:
Public c, d As Integer
vervolgend krijg ik de waarde in userform2 in een textbox en wil ik deze waarde vergelijken (groter dan of gelijk aan) met een waarde uit userform1.textbox42
Code:
TextBox1 = UserForm1.c

If TextBox1 >= UserForm1.TextBox42 Then
TextBox1.BackColor = vbGreen
Else
TextBox1.BackColor = vbRed
End If
Dit werkt soms prima, maar ook heel vaak niet, het blijkt namelijk dat als de waarde uit textbox1 groter is dan textbox42 dat de cel nog steeds rood wordt terwijl deze dan groen zou moeten worden. De ene keer werkt het wel, maar bij de volgende keer kan het helemaal mis lopen. Iemand enig idee hoe dit kan?
En dan heb ik nog een kleinigheidje, ik moet vrij veel van deze vergelijkingen maken en de textboxen daarmee inkleuren, ik heb dit zelf bedacht maar het kost vrij veel tijd om het te maken is er een kortere manier om hetzelfde resultaat te bereiken?

Barry
 
Wat zou dit

Code:
TextBox1 = UserForm1.c

moeten betekenen? :o

Tevens, als je dit gebruikt

Code:
Public c, d As Integer

is c geen Integer hoor. Het is een Variant. Je moet

Code:
Public c As Integer, d As Integer

het terugtypen.

Wigi
 
gbvdh,
Op 01/03/07 stelt ge ook een vraag in verband met
Code:
UserForm1.c
Code:
http://www.helpmij.nl/forum/showthread.php?t=285744
Deze laat ge onbeantwoord en open staan en vandaag stelt ge hier opnieuw een vraag over
Code:
UserForm1.c
Dit is niet netjes hé !
 
Laatst bewerkt:
Sorry voor de onduidelijkheid, heb ik even niet over nagedacht. De waarde die ik van form1 naar form2 wil krijgen wordt in form1 berekend als c dus als ik deze code in userform2 zet
Code:
TextBox1 = UserForm1.c
krijg ik de waarde van c in een textbox in userform2.
Als ik dit gebruik
Code:
Public c As Integer, d As Integer
worden al de waarden afgerond op gehele getallen en dat heb ik liever niet, kan ik dan
Code:
Public c As Variant, d As Variant
gebruiken, dan zijn de waarden namelijk wel op 2 decimalen afgerond.

Ik heb voor het gemak even een testbestandje gemaakt, hierin wordt de lijn uit excel uitgelezen en in userform2 wordt vervolgens gekeken of bijv. waarde c >= textbox9 uit userform1. Als ik voor de tijd in deze VBA 3 of 11 min in voeg gaat alles prima, maar als ik 23 of 31 min invoer gaat het volledig mis. (dit zijn de tijden die voor mij belangrijk zijn). Iemand enig idee waarom het bij 3 en 11 wel werkt en bij 23 en 31 niet?

Barry
 

Bijlagen

alberto10 ,

Inderdaad niet heel netjes van mij nee, heeft er enigszins mee te maken dat ik je laatste antwoord op die vraag nooit heb gezien beetje dom.
Ik heb hem dus nu net bekeken, maar met de declaratie Double zoals je voorstelde houd ik hierbij hetzelfde probleem als bij een declaratie als Variant (wat op zich prima lijkt te werken) en als Integer. En wel dat een waarde van bijvoorbeeld 121.36 niet groter wordt gevonden dan 94.3

Excuses voor de miscommunicatie
 
gbvdh,
Excuses hoeven echt niet voor mij. Iedereen is vrij in doen en laten wat hij wil.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan