Textbox sur VB6

Résolu
mazert Messages postés 6 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 10 mai 2009 - 6 oct. 2007 à 12:10
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 6 oct. 2007 à 14:59
Bonjour,

Je voudrai modifier/améliorer le code ci dessous (qui permet de changer de texxte à chaque fois que je clique sur un boutn).
Static a As Integer: If a 0 Then Text1 "Texte1": a = a + 1 Else: If a = 1 Then Text1 = "texte2": a = a + 1

je voudrai qu'une fois arriver au texte 2 qui tourne revienne au texte 1 etc ... (qu'il tourne en boucle). et si possible ne pas avoir le code en une seul ligne

Merci d'avance

10 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 oct. 2007 à 13:08
"et si possible ne pas avoir le code en une seul ligne"


Ben... ça fait mal aux yeux, non ? (aux notres ségalement)
Juste un peit tour dans ton aide en ligne suffira pour commencer par celà : ne pas mettre tout sur une seule ligne !
Reviens après ce geste élémentaire.... mais en en profitant pour t'expliquer clairement et avec concision sur ta manoeuvre.
Ceci, par exermple :
"je voudrai qu'une fois arriver au texte 2 qui tourne revienne au texte 1 etc ... (qu'il tourne en boucle)."
est probablement clair dans ton seul esprit... pas dans le mien !
3
mazert Messages postés 6 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 10 mai 2009
6 oct. 2007 à 13:16
En effet je n'étais pas assez clair, mais je viens de trouver la réponse à ma solution . Voici ce que je voulais obtenir :

static a as integer
if a =3 then a =0
text1=switch(a=0,"text1",a=1,"text2",a=2,"text3")
a=a+1
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 oct. 2007 à 13:25
Peut-etre quelque chose comme ça :

Static a As Integer

If a = 0 Then
    Text1 = "Texte1"
    a = a + 1
ElseIf a = 1 Then
    Text1 = "texte2"
    a = 0
End If

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 oct. 2007 à 13:32
Bon... (et un bonjour à toi, Casy)

Voilà qui devrait t'inspirer un peu (je l'espère vraiment) :

Private Sub Command1_Click()
  monmachin = Array("text1", "text2", "text3")
  For i = 0 To 20
    MsgBox monmachin(i Mod 3)
  Next
End Sub
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 oct. 2007 à 13:38
Salut
Pourquoi s'encombrer avec une variable Static 'a' ?

If Text1.Text = "Texte 1" Then
   Text1.Text = "Texte 2"
ElseIf Text1.Text = "Texte 2" Then
   Text1.Text = "Texte 3"
Else
   Text1.Text = "Texte 1"
End If

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2007 à 13:55
Chacun le sien:


a = Not a
If a Then
  Text1.Text = "Texte 2"
 Else: Text1.Text = "Texte 1"
End If

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2007 à 14:03
Jack, pour info:

a = Not a
If a Then

compilé devient
Not   a
je short ...

1 cycle pour l'ensemble.
Incomparable avec la version lire Edit et comparaison texte, on est parti pour 200 cycles minimum.

ciao...
BruNews, MVP VC++
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 oct. 2007 à 14:45
Coucou,

Vous avez lu jusqu'au bout ?

Moi, j'en compte 3 !
Voilà ce qu'a écrit Mazert plus haut :
"text1= switch(a= 0 ,"text1",a =1,"text2",a=2,"text3")"







PS : avec ma méthode, il pourrait en avoir autant qu'il voudrait (il suffirait de changer mod 3 par mod "ce qu'il faut".
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 oct. 2007 à 14:57
La preuve :

Private Sub Command1_Click()
  monmachin = Array("text1", "text2", "text3", "text4", "text5", "text6", _
  "text7", "Text8", "text9", "text10", "text11", "text12", "text13", "text14")
  For i = 0 To 100
    MsgBox monmachin(i Mod (UBound(monmachin) + 1))
  Next
End Sub

N'oubliez pas que CTRL + PAUSE vous permettra de quitter lorsque vous en aurez assez d'afficher en boucle ...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2007 à 14:59
ah oui des fois faudrait lire complet, fort exact.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous