XL 2010 Affichage d'un USF sans module mais avec du code inscrit dans le VBE de la feuille1

  • Initiateur de la discussion Initiateur de la discussion ericcool
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ericcool

XLDnaute Nouveau
Bonsoir le forum, bonsoir à toutes & à tous

En remontant le temps, je suis "tombé" sur un post - Lien : https://excel-downloads.com/threads...gne-ou-dans-une-textbox.20048461/page-2#posts ou la réponse de @patricktoulon@ , que je salue au passage et qui au post #26, donnait sa solution (améliorée au post #28), via un formulaire. L'ayant ouvert, je me suis aperçu que pour afficher le UserForm, il ne se servait pas d'un module associé à la forme dessinée sur la feuille1 mais directement d'un code écrit en dur dans le Projet VBA - Feuil1.
J'ai tenté de reproduire cette procédure mais quelque chose m'échappe car je ne parviens pas au résultat escompté ???? Quelle est la procédure à suivre ?
Cordialement et bonne soirée.
Eric
 
Bonjour
heu pouvé récaptété la kesttion???????
Bonsoir @patricktoulon@

Je désirerais savoir comment afficher un USF depuis un code inscrit dans la feuil1 (VBA) de création de la forme intégrée. Lorsque je passe par un contrôle "ActiveX", le module prend en compte le "CommandButton_click" et lorsque je clique sur ce bouton, il me renvoie dans un module ou je place "UserForm1.Show". C'est tout
Bonne soirée
 

Pièces jointes

  • USF2.png
    USF2.png
    49.1 KB · Affichages: 11
  • USF1.png
    USF1.png
    68.4 KB · Affichages: 11
Dernière édition:
Bonsoir.
Avec des pièces ActiveX et non plus de formulaire, vous avez des évènements dans le module de l'objet Worksheet représentant la feuille qui les porte. Vous pouvez très bien mettre un UserForm1.Show dans une des procédure de prise en charge.

Edit: Utilisez les listes déroulantes qui surmontent la fenêtre de code pour implanter les modèles de procédures de prise en charge d'évènements des objets ActiveX de la feuille.
 
Dernière édition:
Bonjour le forum, bonjour Patricktoulon, bonjour Dranreb

Merci pour ta participation @Dranreb@ que je connaissais Donc pour patricktoulon, je récapépète depuis le bédut : ce que je désirerais savoir est comment depuis l'insertion d'une forme, on peut la nommer Sub Userform_Show ? alors que la forme porte le nom de "Rectangle : coins arrondis" ?
Bonne journée - Eric
 
Bonjour.
Il vaut mieux lui donner un nom plus court évoquant son aspect ou son rôle. La zone Nom en haut à gauche est faite pour ça.
Pour ce qui est de la macro à lui affecter, en principe elle doit être dans un module standard.
Mais à l'aide d'un module de classe on pourrait faire en sorte qu'elle décrète un évènement dans le module de l'objet Worksheet …
 
Bonjour Dranreb

1/ Dans le formulaire (voir post #1 - Ah oui, il y a des membres qui se refusent à ouvrir une P.J à cause de virus... et je le comprend fort bien), aucun nom n'est donné à la forme insérée.
2/ Je suis d'accord (et j'ai toujours fait comme cela : placer un contrôle ActiveX et lui associer une macro depuis un module).
3/ Aucun module de classe n'a été déclaré dans le formulaire de @paricktoulon@
4/ Oui je suis têtu et débutant en VBA
Dernièrement, je te remercie à nouveau de ta participation.
Bonne journée - Eric
 
Re, désolé mais je ne dispose pas des termes spécifiques du Vba - Ce que je tentais d'expliquer (#8) 2ème slash est que : Je place un CommandButton1 sur ma feuille. Je double-clique dessus, ce qui m'amène dans le projet VBA - Rubrique Module et entre :
Code:
Private Sub CommandButton1_Click()
et
End Sub
j'inscris UserForm1.Show.
Bonne journée - Eric
 
Oui, normalement ça doit marcher une fois le mode création enlevé.

Edit: Mais le code ainsi installé n'est pas dans un module de la rubrique Module, mais dans un module d'objet Worksheet de la rubrique Microsoft Excel Objets.
 
Dernière édition:
Bonjour à tous,
@ericcool Vous devez apprendre à être précis dans vos commentaires, dans votre post #9 vous dites :
Je place un CommandButton1 sur ma feuille. Je double-clique dessus, ce qui m'amène dans le projet VBA - Rubrique Module et entre
Dans le post #3 vous montrez la feuille avec un forme dessus. Il faut savoir qu'ils n'ont pas le même fonctionnement, Pour la forme vous devez lui affecter une macro (Qui peut se trouver dans un module) Pour le contrôle ActiveX il a ses propres Propriétés et Évènements dont on ne doit pas toucher la structure exemple l'évènement 'Click' d'un bouton de commande :

VB:
Private Sub CommandButton1_Click()
    MsgBox "Bienvenue ..."
End Sub

Regardez l'exemple avec les deux options de lancement par une forme et un bouton.
Bonne programmation. Jean-Paul
 

Pièces jointes

Re tout le monde, Re Dranreb, Bonsoir Valtrase et bonsoir patricktoulon

Je vais tenter d'être un peu moins brouillon dans mes explications avec ce gif. L'on aperçoit le nom du fichier ouvert. Lors d'un clic droit sur la forme insérée, on aperçoit en haut à droite le nom de la forme insérée, soit "Rectangle aux bords arrondis. Clic droit sur la forme insérée, insérer une macro, l'on aperçoit le nom du fichier associé à la feuille1 avec le nom Userform_Show. Lorsque l'on se déplace dans le projet Vba, on voit que le code de la feuille1 se compose code avec le nom sus-nommé, soit :
VB:
Userform_Show ()
 Userform1.Show
End Sub
C'est cela que je désirerais reproduire sur une autre feuille (Renommer la forme si cela est) et non plus employer l'activeX "CommandButton1" QUI JE LE RECONNAIT n'est pas un Module adjoint dans le projet mais bien dans un module d'objet Worksheet.
J'espère avoir été plus clair.
Bonne soirée - Eric
 

Pièces jointes

  • UsF.gif
    UsF.gif
    736.9 KB · Affichages: 6
Dernière édition:
Vous pouvez affecter la même macro d'un module standard à plusieurs objets de formulaires même dans des feuilles différentes.
Vous pouvez même y récupérer le Shape sur lequel on a cliqué par Set Shp = ActiveSheet.Shapes(Application.Caller)
 
Vous pouvez affecter la même macro d'un module standard à plusieurs objets de formulaires même dans des feuilles différentes.
Vous pouvez même y récupérer le Shape sur lequel on a cliqué par Set Shp = ActiveSheet.Shapes(Application.Caller)
Bonjour à tous.
Pardon de m'immiscer dans ce fil, et je n'ai certainement rien compris à la demande, mais à tout hasard :
Ericcool, regardez le fichier joint : c'es ce que vous cherchez ?
Cordialement
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour