Besoin de support VBA... encore

Résolu/Fermé
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009 - 29 avril 2009 à 09:29
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 - 29 avril 2009 à 11:15
Bonjour,

travaillant toujours sur un projet incluant du VBA, j'ai quelques questions à vous poser :

sur l'un de mes Userform, j'ai créé une zone de liste ainsi qu'un bouton "Valider". L'utilisateur doit sélectionner l'un des choix proposer, puis cliquer sur valider pour passer à la fenêtre suivante.
1. comment programmer le passage à la fenêtre suivante à partir de sa selection, puis son clic ?
2. comment recopier sa sélection dans le userform suivant ?

Un peu plus loin dans ce projet, j'aimerais afficher une fenêtre (userform) récapitulative. Selon les choix émis par l'utilisateur, ce userform contiendra un nombre de données variables. D'où ma question :
Est-il possible de créer une macro permettant de sortir un userform ayant un nombre d'objets variable ?

Merci d'avance pour tous ces renseignements, je serais surement amené à vous resolliciter à l'avenir.

Alanderson69

16 réponses

xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 09:32
1. comment programmer le passage à la fenêtre suivante à partir de sa selection, puis son clic ?
Il faut que dans la partie ou tu gère le clic, tu fasse des conditions comme suit par exemple:
if listbox1="choix1" then userform2.show
Attention ca ne ferme pas le premier userform :-)

2. comment recopier sa sélection dans le userform suivant ?
Tu peux definir une variable globale dans ton module et récupérer le choix de l'utilisateur dans cette variable!
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 09:37
Oula,

merci pour ta réponse rapide, mais j'ai pas bien capté pour la deuxième question.
Je suis novice en programmation. Est-ce possible d'être un ti peu plus clair stp ?
Merci beaucoup !
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 09:40
Ca veut dire que tu as compris pour la première!
C'est déjà bien lol
Sinon pour la deuxième,
tu dois avoir dans ton projet, un module et des userforms si je m'abuse?
Le module étant le premier truc qui se lance et qui doit donc appeler ton premier userform!
Si c'est bien le cas, il faut que tout en haut de celui ci, tu mette:
Public var1
Et par la suite dans le userform tu récupère le résultat de la saisie de l'utilisateur dans la listbox:
var1 = listbox1.text (je suis pas trop sur de la syntaxe ^^ mais tu dois la connaitre je pense)
et apres tu peux reutiliser var1 dans une autre userform sans soucis!
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 09:47
je ne connais malheureusement pas bien la syntaxe en VBA ^^, je suis tellement pas spécialiste la-dedans.
J'essaie de me dépatouiller.
Si qqn peut m'éclairer ^^ merci
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 09:48
Hmm Pour ca il faudrait la forme de ton projet à l'heure actuel, et ce que contiennent les userforms!
0

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

Posez votre question
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 09:55
en fait, j'ai bien capté la logique. J'ai crée ma variable.
Pour réafficher le contenu de la variable dans le userform suivant, dans quel type d'objet doit-je rappeler ma variable ? Et quelle est la ligne de prog pour rappeler une variable ?
Merci infiniment pour ton aide
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 09:57
Je comprend pas...
je pense que ta variable contient une chaine de caractere!
Donc tu as juste, pour tester, à faire un petit :
msgbox(var1)
dans ta deuxieme userform pour verifier qu'elle est bien accessible!
Et apres tu as juste à l'utiliser normalement!
Attention, ta variable est deja defini dans module, donc il ne faut pas la redeclarer!
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 10:03
le contenu de ma variable est correct. Je ne sais juste pas si je dois l'afficher dans une zone de texte, ou un intitulé dans le userform suivant.

Imaginons que ce soit un un intitulé, comment entrer le contenu de ma variable dans cet intitulé à l'ouverture du userform ?
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 10:05
Q'est ce que tu appel un intitulé?
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 10:11
c comme un titre qui s'affiche dans un cadre (non-modifiable par l'utilisateur).
La zone de texte peut être modifiée (si j'utilise une zone de texte, il faut que je bloque la possibilité de modification par l'utilisateur.)
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 10:13
Tu peux donc le faire une textbox je pense!
Et après tu fais:
textbox1.value=var1
textbox1.enabled=false
comme ca elle est protégée ;)
et après en modifiant l'aspect de ta textbox tu peux peut etre la rendre plus jolie^^
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 10:25
je n'y arrive pas T;T
Je vais te marqué exactement ce que j'ai marqué et tu me dis si tu vois l'erreur
Dans le userform qui s'ouvre après e clic sur valider :

Private Sub UserForm_Open()
fourchoisi.Text = fournisseur
fourchoisi.Enabled = False
End Sub

fourchoisi étant ma textbox et fournisseur ma variable.

J'ai essayé fourchoisi.Value c pas mieux.
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 10:27
Il te retourne quelle erreur?
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 10:44
Il n'y a pas d'erreur mais ma textbox est vide lors de l'ouverture du userform. De plus, l'utilisateur peut écrire dans la textbox
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 10:46
Remplace:

Private Sub UserForm_Open()

par:

Private Sub userform_initialize()
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 10:49
Amélioration ^^ :

l'utilisateur ne peut plus écrire mais la case est encore vide.
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 10:50
ok donc ca veut dire que c'est au niveau du textbox1.text = fournisseur que ca merde^^
essaye ca:

textbox1 = var1
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 10:57
négatif m'sieur ^^

merci encore de te donner du mal pour moi
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 11:01
Donc si on résume, ta variable fournisseur contient bien le nom du fournisseur, la textbox se grise bien donc l'appel à celle ci est bon.
Mais ca marche pas???
lol
bizarre
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 11:02
j'ai refait un text msgox(var1) à l'initialisation de la userform et la valeur est nulle donc ca vient de la variable et non du remplissage de la textbox
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 11:02
Bon ca me rassure ^^
fais voir comment tu delcare et initialise ta variable!
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 11:05
dans mon workbook :

Public fournisseur

dans la première userform :

Private Sub valid_fournisseur_Click()
fournisseur = List_fournisseur.Text
If List_fournisseur = "***" Then recherche_fournisseur2.Show
End Sub

dans la deuxieme :

Private Sub UserForm_initialize()
MsgBox (fournisseur)
fourchoisi.Text = fournisseur
fourchoisi.Enabled = False
End Sub

Ne te moques pas stp s c une grosse boulette ^^
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 11:08
Dans ton workbook?
normalement ca s'appel module1 si je ne m'abuse ^^
et ca devrais avoir cette forme:

Public fournisseur

Sub Macro1()
UserForm1.Show
End Sub
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 11:10
ok je sors ^^

merci pour ton aide !!!

derniere petite requete :

comment lui faire comprendre :

If List_fournisseur = "***" Then recherche_fournisseur2.Show ET Unload me
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 11:12
If List_fournisseur = "***" Then
recherche_fournisseur2.Show
Unload me
End If

normalement ca devrais marcher ^^
Et si ca marche pas remplace le "me" par le nom de l'userform ^^
0
Alanderson69 Messages postés 35 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 10 juillet 2009
29 avril 2009 à 11:15
t un chef ! merci pour ton aide
comment faire pour te recontacter ^^
je vais evidemment avoir d'autres soucis qui vont surgir ^^
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
29 avril 2009 à 11:15
Un petit message privée et tu aura surement mon msn ^^
0