PB de variables

Résolu
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006 - 27 mai 2005 à 21:06
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 28 mai 2005 à 05:47
Bonjour a tous



Dim maj As String

Dim chi As String



J'ai essayer de faire ca pour mes variables, mais le probleme c'est que
ca me met en erreur et je ne vois pas pourquoi quelqu'un peut m'aider?

18 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
28 mai 2005 à 05:47
Mouai... Ton problème est tout simple...



Mais laisse moi déjà te faire remarquer que ton code est plus que maladroit... Enfin, je passe la-dessus.

Voici ce que je te propose :



Dim maj As Byte

Dim chi As Byte

Dim nbrcar As String

Dim type_car As Integer

Dim code As String

Dim i As Byte



nbrcar = InputBox("Utiliser 4 ; 6 ou 8 caractère" & CrLf &
vbCrLf & vbCrLf & vbCrLf & vbCrLf & "entrez 4 ; 6 ou
8", "Selection du nombre de caractères")



If (nbrcar = "4") Then

code = ""

For i = 1 To 4 ' ou CByte(nbrcar)

maj = 0

chi = 0

Randomize

type_car = Int(2 * Rnd) + 1

Select Case type_car

Case 1

Randomize

maj = 65 + Int(26 * Rnd)

code = code & Chr(maj)

Case 2

Randomize

chi = 48 + Int(10 * Rnd)

code = code & Chr(chi)

End Select

Next

MsgBox "Le code généré est : " & code & " ", , "Générateur"

End If



Note que tu peux remplacer tes "vbCrLf" par des "vbNewLine"... c'est plus propre!

Sinon, il y a beaucoup de maladresses dans ton code que je n'ai pas modifiées...



Entre autre pour ton problème de "maj" qui n'est en rien une String
(maj = RND..). C'est donc normal que ça plante (encore que!!!).



Sinon, pour ton deuxième problème, à savoir, revenir sur un ligne, y'a
bien un technique qui est un peu obsolète et déconseillée malgré son
efficatité et sa simplicité apprente :



Ici:

...

Goto Ici



Ceci fera une boucle inifie... Il est préférable de structurer ton code
différemment afin d'éviter d'avoir affaire à cette technique en
utilisant, par exemple, les boucles DO/LOOP ou WHILE/WEND.





Sinon, une petite question à ceux qui touchent :

Dites moi les mecs, Option Explicite n'impose pas de typer ses déclarations ??????????





Enjoy



(Si une réponse vous convient, cliquez sur le bouton "Accepter la réponse" dans la barre en haut de chaque cadre de réponse...)
3
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
27 mai 2005 à 21:10
faudrais en montré un peu plus et tu es en vb 60 ou vb.net ???

ceci fonctionne pas
Dim maj As String
Dim chi As String
option explicit

ceci fonctionne
option explicit
Dim maj As String
Dim chi As String


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 21:22
Dim maj

Dim chi

Dim nbrcar

Dim type_car



nbrcar = InputBox ("......")



If (nbrcar=4) Then
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 21:24
c'est le debut de mon script.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 21:52
Option explicit



Dim maj As String

Dim chi As String

Dim nbrcar As String

Dim type_car As String



nbrcar = InputBox ("......")



If (nbrcar=4) Then


__________________
J'ai essayé ceci mai cela ne ùarche toujours pas
0
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007
27 mai 2005 à 21:53
T'aurais pas oublié de spécifier le type de la variable par hasard ?
Dim maj As String
au lieu de
Dim maj



-=[MaX_62]=-
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 22:06
C'est avce le type de variable que ca marche pas c'est ca mon probleme
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
27 mai 2005 à 22:16
script ??? tu es en vbs ???


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
aurelskull Messages postés 18 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 27 mai 2005
27 mai 2005 à 22:20
Met un peu plus long de ton code

pour moi deja tu compares un string avec un integer "(nbrcar=4)"

Moi j'aurai au moins mis le 4 entre ""

if nbcar = "4"
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
27 mai 2005 à 22:21
Bonsoir,

Je viens d'essayer ton code, j'ai ajouter une procédure à If (nbrcar =
4)Then, et cela marche très bien.L'erreur vient peut-être de ce qui
suis If.....Then, qu'as-tu mis exactement ??



jpleroisse
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 22:35
Dim maj

Dim chi

Dim nbrcar

Dim type_car



nbrcar = InputBox ("Utiliser 4 ; 6 ou 8
caractère"&vbCrLf&vbCrLf&vbCrLf&vbCrLf&vbCrLf&"entrez
4 ; 6 ou 8","Selection du nombre de caractères")



If (nbrcar=4) Then





For i = 1 To 4

maj = ""

chi = ""



Randomize





type_car = Int((2 - 1 + 1) * Rnd + 1)






Select Case type_car

Case 1

Randomize


maj = Int((90 - 65 + 1) * Rnd +
65)

code = code & Chr(maj)





Case
2

Randomize


chi = Int((57 - 48 + 1) * Rnd +
48)
code = code & Chr(chi)


End Select





Next
MsgBox "Le code généré est : "&code&" ",,"Générateur"



End If
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 22:37
Donc ca c mon code qui marche. Je voudrai juste rajouter le type de variable

mais sa plante des que je mets dim maj as string et ca me dit qu'une fin d'instruction est attendu après maj
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
27 mai 2005 à 22:45
Salut,

Tu ne dis toujours pas en quel langage tu prog (vbs, vb6, vb.net), vu ton code ça ne doit pas être du vb.net mais il reste une question :

Est-ce que l'expression "conversion implicite" te parle ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
aurelskull Messages postés 18 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 27 mai 2005
27 mai 2005 à 22:50
moi en vb6 j'ai fais marcher ton code

Option Explicit



Private Sub test()

Dim maj As String

Dim chi

Dim nbrcar

Dim type_car

Dim i

Dim code

nbrcar = InputBox("Utiliser 4 ; 6 ou 8 caractère" & vbCrLf &
vbCrLf & vbCrLf & vbCrLf & vbCrLf & "entrez 4 ; 6 ou
8", "Selection du nombre de caractères")

If (nbrcar = 4) Then

For i = 1 To 4

maj = ""

chi = ""

Randomize

type_car = Int((2 - 1 + 1) * Rnd + 1)

Select Case type_car

Case 1

Randomize


maj = Int((90 - 65 + 1) * Rnd + 65) #########""la c zarb

code = code & Chr(maj)

Case 2

Randomize

chi = Int((57 - 48 + 1) * Rnd + 48)

code = code & Chr(chi)

End Select

Next

MsgBox "Le code généré est : " & code & " ", , "Générateur"

End If

End Sub

tu veux declarer ta variable en temps que string et tu lui rentre directement des chiffres ?

passe par une convertion a mon avis diu genre cstr
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 22:54
Je suis en vbs
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 23:05
J'en profite pour vous demander comment peut t-on faire pour revenir a une ligne precedente?
0
12_darte_12 Messages postés 18 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 20 mars 2006
27 mai 2005 à 23:27
il n'y a plus personne pour m'aider? j'aimerai finir se soir
0
jonhwoods Messages postés 4 Date d'inscription mercredi 25 mai 2005 Statut Membre Dernière intervention 28 mai 2005
28 mai 2005 à 04:42
Dsl je connait pas vbs
0
Rejoignez-nous