Re : utiliser un UserForm à la place des InputBox
Salut,
tu as plusieurs solutions pour recuperer le contenu d'une textbox pour le mettre dans une variable que tu pourras reutiliser dans d'autre macro:
la premiere que je penses etre la plus simple pour un debutant et qui est de declarer ta variable en variable public ce qui permet d'avoir une variable qui a une portée sur touts les modules et autres codes de ton projet et qui a une durée de vie = a la durée d'exution de ta macro.
Tu dois la declarer en debut d'un module. Par exemple:
Public MaVariable As String
puis pour lui attribuer une valeur depuis un module:
MaVariable = Userform1.TextBox1.Text
Tu peux aussi la declarer dans le code d'un userform mais toujours en public.
Puis lui attribuer une valeur depuis le code du Userform
MaVariable = Me.TextBox1.Text
en suite pour l'utiliser dans le code d'un module tu fait comme ceci(par exemple):
Sheets("feuil1").Range("A1").Text = Userform1.MaVariable.
L'autre methode consite a passer la valeur en parametre lors de l'appel de la macro.
Par exemple tu as une premiere macro:
Sub Macro1 ()
Dim MaVariable As String
MaVariable = Userform1.TextBox1.Text
Call Macro2(MaVariable)
End sub
puis dans la deuxieme:
Sub Macro2 (Byval MonAutreVariable As String)
Sheets("feuil1").Range("A1").Text = MonAutreVariable
End sub
note que MonAutreVariable pourrait elle aussi s'appeler MaVariable cela ne poserait aucun probleme.
A+