VBA Excel est-il possible ?

Résolu/Fermé
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 - 10 janv. 2009 à 23:02
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 18 janv. 2009 à 22:17
Bonjour,
est-il possible de lancer un userform dans un autre userform ?

sub command_click()

...

optionbutton_click()

....

end sub

merci pour votre aide,

cdlt,

aurelie76
A voir également:

11 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 janv. 2009 à 09:53
bonjour

Bien sûr, userform.show fonctionne où tu veux.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
11 janv. 2009 à 22:14
bonjour Gbinforme,

depuis ce matin je suis sur mon problème, et je travaille sur une feuille moins chargée qui me premet de tester juste la procédure que j'essaie de mettre en place, vraiment je n'arrive à rien et j'ai manipulé dans tous les sens :

je récapitule: je veux modifer une donnée via un bouton d'option --> je liste les données de la colonne 1 (via une boucle for ...next) si la donnée est = à "idem", je ne modifie pas la valeur de la cellule, lorsque la valeur de la cellule est différente de "idem", je veux ouvrir un userform avec une frame de optionbutton pour que l'utilisateur choisisse la valeur à remplacer au même endroit. Autrement dit il y a un travail de recherche à faire pour trouver la donnée dans le tableau excel (ça c'est ok), et une fois qu'on l'a trouvé, on charge un userform avec bouton d'option pour remplacer la valeur, puis on revient dans le programme pour finir de lister la colonne, je n'arrive pas à faire le code : pour exemple : j'ai mis "idem" dans la cells(1,1) et rien dans la cells(2,1) et "idem" dans la cells(3,1), ca donne :

Private Sub CommandButton1_Click()
Sheets("feuil1").Select
For i = 1 To 10 Step 1
Cells(i, 1).Select

If Cells(i, 1).Value = "idem" Then
MsgBox ("YES")
End If

If Cells(i, 1) <> "idem" Then
Call macro1
End If
Next i
End Sub

Sub macro1()
UserForm1.Show
End Sub

et le code pour les optionbutton :

Private Sub OptionButton1_Click()
If OptionButton1 = True Then
Cells(i,1).value=OptionButton1.Caption

End If

End Sub

Private Sub OptionButton2_Click()
If OptionButton1 = True Then
Cells(i,1).value=OptionButton2.Caption

End If

End Sub


dans le prog private optionButton ma varaible n'est pas reconnu et surtout je ne reviens pas sur ma feuille excel pour finir de listeer toute la colonne ,je te remercie encore pour ton aide, j'ai passé mon week end sur ce problème et rien trouvé sur le net ?

bonne soirée,

aurelie76
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 janv. 2009 à 22:25
bonjour

dans le prog private optionButton ma varaible n'est pas reconnu

Quelle variable ?

Tu devrais mettre ton classeur sur http://www.cijoint.fr/
puis nous mettre ici le lien généré ce sera plus rapide que de chercher sur le net un souci de ton programme.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
11 janv. 2009 à 22:35
Rebonsoir et merci pour ta réponse super rapide, j'étais déjà reparti sur excel pour mon problème, la variable est i, je liste la colonne A les valeurs des cellules avec une boucle :

For i = 1 To 10 Step 1
Cells(i, 1).Select

If Cells(i, 1).Value = "idem" Then
MsgBox ("YES")
End If

si la valeur est différente de "idem", j'appelle une procédure pour charger la userform d'option bouton :

If Cells(i, 1) <> "idem" Then
Call macro1
End If
Next i
End Sub

Sub macro1()
UserForm1.Show
End Sub


la macro1 se load et j'ai mes optionbutton et je veux remettre à la cells (i,1) la valeur choisi par l'optionbutton (optionbutton1.caption)

Private Sub OptionButton1_Click()
If OptionButton1 = True Then
Cells(i,1).value=OptionButton1.Caption

End If

End Sub

Private Sub OptionButton2_Click()
If OptionButton1 = True Then
Cells(i,1).value=OptionButton2.Caption

End If

End Sub


Mais dans la procédure optionbutton, il ne reconnait pas la valeur de la variable i et surtout je ne reviens pas sur ma boucle définie par for i=1 to 10 ... pour finir de lister les cellules suivante de la colonne A.
je veux bien mettre le code sur cijoint.fr mais dans le post d'avant j'ai fait un copier coller de mon source.

Merci pour ton aide précieuse car il n'y a que toi qui se soit penché sur mon problème.

bonne soirée,

Aurelie76
0

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

Posez votre question
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
11 janv. 2009 à 22:46
Gbiforme

ci joint le classeur :

http://www.cijoint.fr/cjlink.php?file=cj200901/cij42ldQiV.xls

Merci encore 1000 fois,

bonne soirée,

aurelie
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 janv. 2009 à 23:23
bonjour

Voici le classeur corrigé et comme je t'ai dit depuis le début, si tu avais défini ta variable publique tu te serais rendu compte que cela fonctionnait.

J'ai mis un bouton pour lancer le processus.
Ta gestion des options à cocher est incorrecte car pour passer il faut obligatoirement cocher l'autre option mais la macro tourne et elle va même jusqu'à la fin de tes données.

Le classeur : http://www.cijoint.fr/cjlink.php?file=cj200901/cij8KQnvSO.xls
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
11 janv. 2009 à 23:34
Rebonsoir cher Gbinforme,

j'ai essayé ton code sans douter que cela fonctionnerait mais en le lancant, je voulais avoir le plaisir de le voir tourner, franchement, un très grand merci, je l'adapte à mon code d'origine et t'informe sur le résultat mais en tout cas, chapeau, j'avais pourtant bricolé avec public i as long mais sans succès. Je ne maitrise pas du tout VBA aussi, j'ai de très grosse lacune et ne comprend pas bien l'essentiel de cette fonction.

Merci , merci, merci, je suis épuisée d'avoir passé mon week end la dessus.... on ne doit pas avoir le cerveau fait tous de la même manière, chapeau.

bisous,

aurelie
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 janv. 2009 à 09:31
bonjour

j'avais pourtant bricolé avec public i as long mais sans succès

Ce n'est pas de bricolage qu'il s'agit mais de programmation et j'ai bien l'impression que tu ne mesures pas l'abîme qui sépare les deux !

j'ai de très grosse lacune et ne comprend pas bien l'essentiel de cette fonction.

Ce n'est pas une fonction mais une définition de variable.

La programmation, pour qu'elle fonctionne demande de la rigueur et pas de l'à peu près.
Le codage VBA ou autre possède une syntaxe précise comme tout langage et elle doit être respectée pour que ton logiciel comprenne ce que tu veux lui dire car si tu parles le français "comme une vache espagnole" on va essayer de traduire mais ton ordinateur ne s'y amusera jamais.

0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
12 janv. 2009 à 22:03
bonsoir Gbinforme,

Merci pour ton aide précieuse, j'ai adapté à mon code et cela fonctionne. Désolé, je suis débutante, et le "bricolé" n'était pas là pour susciter ton "indignation". Je n'ai pas d'autre support que le net et les forums pour essayer de coder au mieux et je suis bien consciente de ne pas faire un programme structuré.
Je suppose que pour un programmeur mon langage doit choquer mais .....

ceci dit, peux tu m'éclairer sur la définition de la variable as long (est ce pour un chiffre ? ) et dans le cas d'une chaine de caractère, est ce également as long ou autre ?

Merci vraiment et désolé encore pour ma syntaxe.

bonne soirée,

Aurelie
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 janv. 2009 à 23:12
bonjour

Si tu sélectionnes "long" puis tu fais F1, tu vas avoir l'explication car tu as une mine d'explications dans l'aide excel sans aller sur le net et les forums, avec plein d'exemples.

Si en plus tu cliques sur "voir aussi" puis "résumé des types de données" toutes tes questions vont trouver leur réponse...

Si tu apprends à utiliser l'aide excel tu as instantanément beaucoup de réponses à tes questions et tu peux découvrir ainsi les propriétés des objets manipulés beaucoup mieux que sur les forums qui pourront eux te dépanner si ta recherche n'a rien donné. Ce que tu va trouver par toi même sera mieux intégré et compris.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
18 janv. 2009 à 19:06
Merci bcp Gbinform pour ton aide, très appréciée. Et aussi, d'aider les débutants.

bonne soirée,

Aurelie
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
18 janv. 2009 à 19:07
Merci, Merci, Merci.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
18 janv. 2009 à 22:17
bonjour

Cela fait énormément plaisir de voir que tu ais apprécié ce petit coup de main.

Et aussi, d'aider les débutants.

C'est bien ceux qui en ont le plus besoin car tout le monde a eu au début de la difficulté pour apprendre à marcher tout seul...

Je te remercie pour ton accueil et surtout si tu as d'autres questions n'hésites pas car sur ce forum tu trouveras quelqu'un qui saura t'aider probablement : à bientôt peut-être.
0