Synthaxe

Résolu
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007 - 19 mars 2007 à 11:15
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 19 mars 2007 à 17:36
bonjour c juste pour la synthaxe.
J'aimerai faire une boucle :
faire message box "il manque des données"
tant que textbox1 pas vide et textbox2 pas vide et optionbutton1ouOptionbutton2 cochés. Comment on fait pour ecrire la partie en gras?
sous vba word

24 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 mars 2007 à 11:30
Salut,
Le problème si tu fais une boucle, c'est que l'utilisateur n'aura peu être pas le temps de remplir les condition pour en sortir, et sera donc constament obliger d'acquitter la Msgbox /
Sinon la syntaxe est la suivante. (je trouve que tu aurais pu la trouver toit même mais bon)
While (Text1.Text <> "") And (Text2.Text <> "") And ((Option1.Value = True) Or (Option2.Value = True))
   Call MsgBox("Il manque des données")
Wend, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 11:28
Si par "pas vide" tu entends "différents de "" ", alors ca donnerait ca:

while(textbox1 <>"" and  textbox2 <>"" and (optionbutton1 = -1 or optionbutton2= -1)
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 11:31
Excuse, j'ai oublié les propriété des controles:
while(textbox1.value <>"" and  textbox2.value  <>"" and (optionbutton1.value  -1 or optionbutton2.value  -1)
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 11:33
Je suis pas certain, mais il me semble que pour tester " textbox.text" il faut que le textbox soit en focus non ?
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 mars 2007 à 11:35
Re,
Non non, pas besoin qu'un contrôle est le focus pour tester le contenu (heureusement pour nous d'ailleurs )
Mais reste le problème de la boucle et des messages incessant.
@+: Ju£i?n
Pensez: Réponse acceptée
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 mars 2007 à 11:35
Salut, Nicko11 je pense pas non .Text et .Value c'est un peu kifkif!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 11:44
En tout ca, moi, j'ai voulu faire un formulaire ou je devais tester tous les champs avant de sauvegarder et je devais passer par des tests intermédiare car sinon, VB me disait,

Impossible de faire référence à une propriété si le controle n'est pas activé
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 mars 2007 à 12:04
Salut, Nicko11
Je jurerais presque que tu avais mis ton code dans un événement de chargement (load, par exemple), alors que rien n'assure qu'est déjà chargé le contrôle auquel il est fait référence...
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 12:17
La facon donc tu dis ca laisse a penser que je pense avoir forcement raison.

Pas du tout, mais c'est un question que je me pose (pourquoi cela fait ca?). Je voudrais pas poluer le forum de fixou81 (meme si ca fait perpete qu'on a repondu et que lui ne le fait pas), mais pour te repondre, non ce n'était pas dans un load mais lors d'un appel a une procedure dans un evenement change.

Alors peut etre que cela est normal mais en meme temps je ne verrai pas comment faire pour tester tous les champs avec .text si je peux pas faire ca dans cet evenement.

Pour finir, je viens d'essayé dans tout un tas d'evenement et ca ne marche toujours pas.

Alors, je suis curieux de savoir si c'est normal ou si je viens d'un monde parallele.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 mars 2007 à 13:05
Qu'est-ce qui ne "marche pas", Nicko11 ?

En général on montre le code qui ne "marche pas "en précisant l'événement utilisé, les contrôles utilisés et le but recherché  !

Montre donc !
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 mars 2007 à 13:28
Re, en tout cas chez moi ce genre de chose fonctionne:

Private Sub CommandButton1_Click()
MsgBox TextBox1.Text
End Sub


Private Sub TextBox2_Change()
MsgBox TextBox1.Text
End Sub

Après comme le dis jmfmarques faut voir précisément le code que tu as et dans quel évènement?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 14:17
Je pensais que le cas était pourtant bien clair, mais s'il faut du code,ok allons y, (avec le commentaire de l'epoque)

imaginons 2 textboxs  Correction  et Analyse et Test un chaine de caracteres:

Private Sub Correction_Change()


        'On utilise la propriété TEXT du champ pour avoir la derniere mise à jour de ce dernier
        'Car avec la propriété VALUE, on n'obtient que la précédente valeur
        'Le problème est que l'on ne peut pas tester tous les champs directement en une instruction
        'Car le champ testé doit entre actif (en focus)
        'Donc on passe par tout un tas de tests pour être sur que tous les champs ont bien été remplis
   
If (Correction.Text <> "") Then
    Test_Correction = True
Else
    Test_Correction = False
End If


Call Save_Condition


End Sub

Ex: si je mets en suite Test = analyse.text dans cette procedure, ca me met le message d'erreur sité précédemment
Donc je fais appelle à save_condition qui regroupe tous les tests des différents champs.
J'ai meme essayer dans la procedure save_condition, mais toujours pas.
 
Donc, dans mon cas, .text ne peut etre utiliser que dans lorsqu'il est en focus. Pour y remedier j'ai meme fais 

analyse.setfocus
test = analyse.text, et la tout fonctionne

De plus, j'ai pu voir que ca le faisait sur VBA VB6, et que .value donnait l'ancienne valeur du champ en focus et que .text donnait la nouvelle. Je veux bien admettre que ca peut vous paraitre bizarre mais ca fait 2 ans que je code de temps en temps en VB et que ca m'a toujours fait ca.

PS :Drice tu as parfaitement compris avec ton deuxieme exemple sauf que je teste si la textbox est <> "" et je mets pas ca dans un evenement click d'un bouton. Je crois pas que ca joue mais apres tout, je comprend pas pourquoi ca fonctionnerait pas.
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 mars 2007 à 14:30
Même sans le focus ça marche, tout du moins si j'ai bien compris tu as des problèmes avec ce genre de chose! Normalement tout ça marche! Mais après si chez toi non, je vois pas d'où le problème peut venir.

Private Sub TextBox2_Change()


If TextBox1.Text <> "" Then
MsgBox TextBox1.Text
End If


Call Test


End Sub


Sub Test()


If TextBox1.Text <> "" Then
TextBox2.SetFocus
MsgBox TextBox1.Text
End If


End Sub

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 14:32
Dricke06, j'ai essayé de mettre la msgbox que tu as mis dans la l'evenement change et ca ne fonctionne pas. Si je mets la textbox concerne ok mais sinon, il ne dis toujours la meme chose, je repete: impossible de definir ou de faire référence a cette propriété si le controle n'est pas actif.

Alors c'est qu'il y a une autre probleme car si ca marche pour toi, ca doit etre de mon coté que ca bug. Or, je vois pas d'où cela peut provenir.
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 mars 2007 à 14:33
Ben j'utilise VBA excel 2003, si tu as une autre version, peut être que ça viens de ça, sinon je vois pas.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 mars 2007 à 14:34
Hé bé !
Je dois dire qu'ici rien n'est plus clair !


Veux-tu s'il te plait nous dire :


ce qu'est test_correction chez toi ? (on ne le voit pas et ce devrait être une variable booléenne que tu n'utilise pas dans le code que tu nous montres  !...)

Test, nous dis-tu, est une variable de type string (c'est ce que je déduis de la lecture de ce que tu écris). et tu lui affecte apparemment la valeur du texte d'une textbox nommée analyse.


 


et nous ne voyons absolument pas, dans le code que tu nous "exposes", le lien entre toutes ces choses !!!


C'est dingue !


 


Que veux -tu enfin faire ? On le fera pour toi en 2 coups de cueillères à pot et celà vaudra mieux, apparemment (mais tâche au moins de définir le contexte de façon précise, hein...)


 
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 14:37
Donc exemple de code est parfait pour montrer mon probleme mais j'ai fais ca dans 2 entreprises ou j'ai travailler et sur VB6 et VBA et ca fonctionne pas. Donc la, je ne sais pas quoi dire.
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 mars 2007 à 14:41
De plus l'aide fournit par VBA, confirme ce que je disais tout à l'heure entre .Text et .Value, donc à part une version différente d'excel, où est le problème?



Text, propriété





Remarques





Pour un contrôle TextBox, la valeur que vous attribuez à la propriété Text s'applique également à la propriété Value
.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
19 mars 2007 à 14:42
Tu as quelle version d'excel?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
19 mars 2007 à 14:44
Désolé jmfmarques, mais drikce06 lui a bien compris le probleme qui est tres simple, donc en gros,

Private Sub textbox1_Change()


   
msgbox textbox2.Text   'marche pas

msgbox textbox1.value   'nickel ancienne valeur

msgbox textbox1.text 'nickel nouvelle valeur




msgbox textbox2.setfocus
msgbox textbox2.Text 'nickel

End Sub
0
Rejoignez-nous