Utiliser données d'une boite de dialogue

  • Initiateur de la discussion Ber Nar
  • Date de début
B

Ber Nar

Guest
Rebonjour à tous !

J'ai une boite de dialogue avec 4 données à saisir.
Ces 4 données doivent être ensuite utilisées dans une procédure.

Faut-il obligatoirement que ces 4 chiffres doivent être reportés dans des cellules pour pouvoir être ensuite utilisés ?

Ber Nar.
 
J

jon

Guest
bonjour


soit 4 textboxes dans ton formulaire type userform.
et un bouton ok

dans le bouton ok tu peux écrire
call mamacro(textbox1,textbox2,textbox3,textbox4)


où mamacro est une procédure figurant dans un module standard

sub mamacro(str1,str2,str3,str4)
msgbox str1 & vbcr & str2 & vbcr & str3 & vbcr & str4
end sub

bye
 
B

Ber Nar

Guest
Pourquoi mamacro(textbox1,textbox2,textbox3,textbox4) est devenue mamacro(str1,str2,str3,str4) ?

Que veux dire 'str' et 'vbcr' ?

La macro qui doit s'exécuter est déjà créée. Dois-je lui modifier son nom ?

Désolé pour cette demande de précisions mais je suis plus que débutant en VBA.

Ber Nar.
 
J

jon

Guest
bonjour

MaMacro est une procédure Sub qui peut être appelée d'une autre procédure, et qui a obligatoirement besoin des 4 variables str1,str2,str3,str4.

NB : Pour les définir optionnelles, il faut rajouter le mot "Optional" => optional str

MaMacro affiche ces 4 variables dans une boîte de dialogue ou "Message Box". Pour cela elle met bout à bout ces variables à l'aide de l'opérateur "&" en effectuant un retour chariot pour retourner à la ligne entre chaque variable. Le retour chariot est possible de plusieurs manières : vbCr,vbCrLf (qui ont d'autres équivalences).

La macro est appelée par l'instruction suivante :
call mamacro(textbox1,textbox2,textbox3,textbox4)
=> la variable str1 à la valeur de la textbox1 (champ de saisie texte)
=> la variable str2 à la valeur de la textbox2 (champ de saisie texte)
....
 

Pièces jointes

  • xld_bednar_010503.xls
    23 KB · Affichages: 81
@

@+Thierry

Guest
Salut Ber Nar, STéphane et le Forum

Oui Jon est un garçon très direct, il va droit au but et il comme toujours il est ultra efficace ! :)

En fait quand tu appliques strictement à la lettre ce qu'il t'a donné comme exemple tu devrais avoir une MsgBox avec un saut à la ligne entre chaque données précédemment entrées dans les TextBox.

Pour un débutant c'est assez déconcertant je dois l'admettre.

Quand tu appelles un macro avec en indiquant des données entre les parenthèses, tu renseignes d'avance certaines info "à passer" à la macro... ce peut être des variables, des arrays ou encore des expressions.

Pour répondre clairement à tes interrogations :

Str ne signifie rien, c'est juste le nom que Jon à donné pour récupérer les "String" passées par la méthode Call..

VbCr est une constante couramment utilisé dans les messages afin de faire un saut à la ligne, équivalent à Chr(13)

Pour matérialiser un peu mieux, copie ce code dans un module standard :

Option Explicit

Sub MiniDemo()
Dim Nom As String
Dim Phrase As String

Nom = "Ber nar"
Phrase = "Comment Vas-tu ?"

Call Hello("Salut", Nom, Phrase)
End Sub


Sub Hello(Toto1, Toto2, Toto3)
MsgBox Toto1 & vbCr & Toto2 & vbCr & Toto3
End Sub

Tu devrais mieux comprendre, je pense. (Les Variables Nom et Phrase pouraient être tes TexBox.

En espérant t'avoir un peu éclairé.

Bon Appétit
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 579
Membres
111 206
dernier inscrit
Dante76