Probleme de scripte

xantra Messages postés 56 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 2 septembre 2011 - 27 août 2006 à 19:50
xantra Messages postés 56 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 2 septembre 2011 - 28 août 2006 à 15:56
Bonjour,


Je me suis mis au Visual Basic de puis peu et j’aurai besoin
de votre aide car j’ai créé un code qui ne fonctionne pas comme je l’aimerai. Ce
code n’est d’aucune utilité, il me serre juste à apprendre le langage et je
voudrai par la suite l’ajouter a un programme que j’ai déjà créer.

Voici le code qui doit s’exécuter lorsqu’on appui sur
un bouton :


Private Sub Command1_Click()

Dim suite

Dim lenaes

Dim aes

Dim num

Dim lettre

Dim fiche

Dim valeur

suite = "ABCDEFabcdef1234567890"

aes = Text1.Text

lenaes = Len(aes)

lenaes = lenaes + 1

num = "1"

re:

If num = lenaes Then

GoTo fin

End If

lettre = Mid(aes, num, num)

valeur = InStr(1, suite, lettre)

If valeur = 0 Then

num = num + 1

GoTo re

Else

Let fiche = fiche + lettre

num = num + 1

GoTo re

End If

fin:

Label1.Caption = fiche

End Sub
Je pensai que en faisant ceci, si on écrit ‘’BN FDI3PO:DJ34RE’’
dans <st1:personname productid="la Text" w:st="on">la Text</st1:personname>1 et
que l’on clique sur Command1, alors il serait écrit ‘’FD3D34’’ dans label1,
hors la il m’écrit simplement ‘’BE’’. Je ne comprends pas où est le problème.
Peut être de la ligne ‘’Let fiche = fiche + lettre‘’ mais je n’en suit pas sur.

Merci d’avance

3 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 août 2006 à 09:31
Salut,
Qu est suppose faire ce petit bout de code exactement ?

Quelle logique suit tu?

@+, Julien
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 août 2006 à 09:39
Re,

Si tu cherche a extraire d'un chaine de caractere les caractere autorisés ici ABCDEFabcdef1234567890
Alors essaie le code suivant (si tu as des problème de compréhension n'hésite pas.)

'Essaie de typer le plus possible tes variables
Dim suite As String 
Dim aes As String 
Dim num As Integer 
Dim lettre As String 
Dim fiche As String 

suite =  "ABCDEFabcdef1234567890" 
aes = Text1.Text 
'Parcours toute la chaine de caractere=> caractere par caractere
For num = 1 To  Len (aes) 
    'Prend le caractere num de la chaine aes et le place dans lettre
    lettre  = Mid(aes, num, 1) 
    'On test si lettre est contenu dans suite si c'est le cas on le place a la suite de fiche
    If InStr(1, suite, lettre) Then fiche = fiche & lettre 
Next 

'une fois tous les caractere traités on place fiche dans le label1
Label1.Caption = fiche 
 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+, Julien
0
xantra Messages postés 56 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 2 septembre 2011
28 août 2006 à 15:56
Merci a toi, apres avoir relus mon scripte ligne par ligne hier soir
j'ai trouver mon erreur, je l'ai coriger et j'ai amélioré mon scripte.
l'erreur était ici : lettre = Mid(aes, num, num)

Mid ne va pas du caractère n°num jusqu'au caractère n°num dans aes mais
il commence au caractère n°num et il récupère un sertain nombre de
caractères. Donc il falait simplement mettre lettre = Mid(aes, num, 1).

Merci de votre soutient
0
Rejoignez-nous