MEUCORACAO
Messages postés35Date d'inscriptionjeudi 30 juin 2011StatutMembreDernière intervention23 octobre 2018
-
5 sept. 2013 à 08:46
MEUCORACAO
Messages postés35Date d'inscriptionjeudi 30 juin 2011StatutMembreDernière intervention23 octobre 2018
-
6 sept. 2013 à 07:03
Bonjour,
Je me tourne vers vous car j'ai un petit problème qui me déroute totalement. Dans mon programme je test une variable avec une autre. Si elle est égale alors Programme1 sinon programme 2 (cf prog ci-dessous).
If i = Nbr_Reactif Then
Set Opt = UserForm7.Controls.Add("Forms.Label.1")
With Opt
.Name = "Flèche" & i
.Caption = "è"
.AutoSize = True
.WordWrap = False
.Move x, 25
.Font.Name = "Wingdings"
.Font.Size = 14
.BackStyle = 0
End With
x = x + 10
Else
Set Opt = UserForm7.Controls.Add("Forms.Label.1")
With Opt
.Name = "Plus" & i
.Caption = "+"
.AutoSize = True
.WordWrap = False
.Move x, 25
.Font.Name = "Times"
.Font.Size = 14
.BackStyle = 0
End With
x = x + 10
End If
Au début, je me suis dit que je m'étais trompé dans l'écriture donc j'ai mis un point d'arrêt sur le if et au moment où les deux variables sont égales i=2 et Nbr_Reactif="2", cela est considérer comme si elles étaient différentes.
Je me suis donc dit que le problème venait des guillemets qui sont présentes chez l'une mais pas l'autre des variables. Je me suis dit que le problème vient de la déclaration. Le problème est que ce sont des integers toutes les deux, Nbr_Reactif en Public et i en dim.
Avez-vous une idée d'où cela pourrait venir?
Je vous remercie par avance pour votre aide.
MEUCORACAO
Messages postés35Date d'inscriptionjeudi 30 juin 2011StatutMembreDernière intervention23 octobre 2018 5 sept. 2013 à 08:48
Le fichier est assez compliqué pour que je puisse vous le mettre ou expliquer chaque détail. Je ne comprends pas pourquoi Nbr-Reactif étant déclaré en Integer possède ses valeurs entre "" lors de l'exécution du soft. Merci encore
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 5 sept. 2013 à 09:12
Bonjour,
- Où et comment as-tu déclaré Nbr_Reactif ?
- Depuis où et avec quel code as-tu initialisé Nbr_Reactif ?
- Nbr_Reactif a-t-il (vérifie) pu être déclaré également ailleurs ? (car si oui : confusion possible)
Il arrive par ailleurs enfin que des réactions inattendues soient le résultat de "passages par tremplin" (un label, par exemple)
Ma variable Nbr_Reactif (déclarée qu'une seule fois) est déclarée via un userform où le choix se fait avec un spinbutton. Le programme est très long mais ça fonctionne très très bien dans les boucles for (for i = 0 to Nbr_Reactif) mais dans cette boucle if, cela ne marche pas.
Je viens de regarder mon programme et ma variable Nbr_Reactif est définie comme la valeur d'une textbox réglée avec le fameux spinbutton. Cela conclut-il que ma variable est un string (d'où les guillemets)??
A votre avis, d'où cela peut-il venir? Si vous souhaitez plus de renseignements, n'hésitez surtout pas.
Merci de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
bonjour Meucoracao
Ce n'est pasune question de Public ou privé !
C'est une question de type de variable
Dim chaine as String = "2" est une variable chaine de caractères de type String
Dim nombre as integer = 2 est une variable numérique de type Integer
Tu ne peux pas faire If chaine = nombre car le type n'est pas le même
jordane45
Messages postés38142Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention20 avril 2024344 5 sept. 2013 à 17:47
D'où l'interet de poster sur le forum le code de déclaration de tes variables et le code que tu utilises ensuite (et pas seulement un morceau de code "allégé").
Comme je te l'ai dis avant, ça permet de voir d'éventuelles erreurs.
En plus, ta variable est peut être récupérée dans un textbox et non directement depuis le SpinControl non ?
Ou tu l'as utilisée à un autre endroit et lui a affecté une valeur de type String sans t'en rendre compte..
Au passage, même si ce n'est pas obligatoire, c'est en tout cas très fortement conseillé, il faut mettre la déclaration des variables OBLIGATOIRE dans ton code..
il suffit d'écrire « Option Explicit » dans la partie déclarations de votre code (tout en haut de la page de code).