Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rendre disponible un userform dans tous les classeurs

2 réponses
Avatar
Room |312|
Bonsoir,

Mon projet est le suivant : cr=E9er une macro qui ex=E9cute=20
divers traitements sur des donn=E9es ; la macro doit=20
=E9galement pouvoir inviter l'utilisateur =E0 saisir des=20
informations compl=E9mentaires via un userform. Le classeur=20
qui subit le traitement contient toujours les m=EAmes=20
informations mais est attach=E9 =E0 une personne sp=E9cifique ;=20
ainsi, chaque nouvelle personne donne lieu =E0 un nouveau=20
classeur. Il en existe donc une multitude.
L'int=E9r=EAt consiste donc =E0 permettre =E0 la macro de=20
s'ex=E9cuter dans n'importe quel classeur ouvert. Jusque=20
l=E0, mon id=E9e est d'attacher la macro =E0 un bouton=20
sp=E9cifique cr=E9=E9 au niveau des barres d'outils et de la=20
rendre disponible dans tous les classeurs en=20
l'enregistrant dans Perso.xls ; ou peut-=EAtre encore=20
l'enregistrer en tant que macro compl=E9mentaire. Je crois=20
que c'est faisable.
La difficult=E9 r=E9side dans l'affichage d'un userform=20
(indispensable). J'ignore comment l'int=E9grer avec la=20
macro et ou je dois le stocker. Jusqu'=E0 pr=E9sent, les=20
userforms que j'utilisais =E9taient attach=E9s =E0 un classeur=20
d=E9fini. Est-ce possible et comment proc=E9der ? Merci pour=20
vos suggestions.
P.-S. : ne pas h=E9siter =E0 me demander plus de d=E9tails si=20
ce n'est pas suffisamment explicite.

2 réponses

Avatar
garnote
Bonsoir,

Peut-être que :

Créer un UserForm dans le Perso.xls ainsi que cette macro :
Sub MaMacro()
UserForm1.Show
End Sub
Ensuite :
Affichage / Barres d'outils / Personnaliser / Commandes :
Catégories : Macros,
glisser un bouton sur une barre quelconque et lui associer
Sub MaMacro()
UserForm1.Show
End Sub

Serge


"Room |312|" a écrit dans le message
de news: 1d9ef01c453df$64df3a60$
Bonsoir,

Mon projet est le suivant : créer une macro qui exécute
divers traitements sur des données ; la macro doit
également pouvoir inviter l'utilisateur à saisir des
informations complémentaires via un userform. Le classeur
qui subit le traitement contient toujours les mêmes
informations mais est attaché à une personne spécifique ;
ainsi, chaque nouvelle personne donne lieu à un nouveau
classeur. Il en existe donc une multitude.
L'intérêt consiste donc à permettre à la macro de
s'exécuter dans n'importe quel classeur ouvert. Jusque
là, mon idée est d'attacher la macro à un bouton
spécifique créé au niveau des barres d'outils et de la
rendre disponible dans tous les classeurs en
l'enregistrant dans Perso.xls ; ou peut-être encore
l'enregistrer en tant que macro complémentaire. Je crois
que c'est faisable.
La difficulté réside dans l'affichage d'un userform
(indispensable). J'ignore comment l'intégrer avec la
macro et ou je dois le stocker. Jusqu'à présent, les
userforms que j'utilisais étaient attachés à un classeur
défini. Est-ce possible et comment procéder ? Merci pour
vos suggestions.
P.-S. : ne pas hésiter à me demander plus de détails si
ce n'est pas suffisamment explicite.
Avatar
michdenis
Bonjour,

A ) Construit ton formulaire dans un classeur .xls que tu transformeras en un classeur xla.
B ) Pour afficher ton formulaire, tu auras besoin dans ce fichier une procédure dans un module standard.
'------------------------
Sub XlaOpenForm()

Userform1.Show ' (fenêtre modale ou non)

End sub
'------------------------

C ) Tu vas dans la fenêtre VBE (visual basic editor) , tu sélectionnes dans la fenêtre de gauche le nom de ton ProjetVBA
et dans la fenêtre des propriétés ( tu l'affiches si elle ne l'est pas déjà - Barre des menus / Affichage / Propriétés )
Et dans la propriété "Name", tu baptises ton ProjetVBA , au lieu de VBAProject par défaut, donne lui un nom significatif
à ton projet.

D ) Tu enregistres ton fichier, en choisissant dans la liste déroulante "Type de fichier" de la fenêtre "Enregistrer
sous" : "Fichier .xla". Ton fichier devrait alors s'enregistrer dans le répertoire des "Macros complémentaires"

E ) Pour que ton fichier complémentaire soit chargé, barre des menus (feuille de calcul)/ outils / Macro
complémentaires et dans cette fenêtre, le nom de ton fichier devrait apparaître sinon tu fais une recherche avec le
bouton parcourir et tu la coches avant de refermer la fenêtre.

F ) Tu ouvres VBE (visual basic editor) et à partir de la barre des menus de cette fenêtre / Outils / référence / et tu
coches dans la liste le nom avec lequel tu as baptisé ton ProjetVBA.

Maintenant tu pourras attacher au bouton dans une de tes barres d'outils le nom de la macro que tu as inséré dans ton
classeur .xla. Tu n'auras qu'à écrire le nom de la procédure XlaOpenForm dans la fenêtre appropriée. Dans la liste des
macros, le nom de la macro ne s'affichera pas mais tu pourras taper son nom dans la case de saisie.

Si tu ne te souviens plus de son nom, si ton fichier .xla est chargé, tu ouvres Vbe (visual basic editor) et tu
sélectionnes ton fichier xla et tu ouvres l'explorateur de projet ... tu devrais être capable de visualiser les noms
des procédures et des fonctions contenues dans ton fichiers .xla. Si tu as enregistré ta macro dans un module au nom
originale de "Module1", il devrait apparaître dans la liste à gauche et les fonctions et procédures dans la liste de
droite.

Voilà ! Ça semble plus compliquer que ce ne l'est !


Salutations!





"Room |312|" a écrit dans le message de
news:1d9ef01c453df$64df3a60$
Bonsoir,

Mon projet est le suivant : créer une macro qui exécute
divers traitements sur des données ; la macro doit
également pouvoir inviter l'utilisateur à saisir des
informations complémentaires via un userform. Le classeur
qui subit le traitement contient toujours les mêmes
informations mais est attaché à une personne spécifique ;
ainsi, chaque nouvelle personne donne lieu à un nouveau
classeur. Il en existe donc une multitude.
L'intérêt consiste donc à permettre à la macro de
s'exécuter dans n'importe quel classeur ouvert. Jusque
là, mon idée est d'attacher la macro à un bouton
spécifique créé au niveau des barres d'outils et de la
rendre disponible dans tous les classeurs en
l'enregistrant dans Perso.xls ; ou peut-être encore
l'enregistrer en tant que macro complémentaire. Je crois
que c'est faisable.
La difficulté réside dans l'affichage d'un userform
(indispensable). J'ignore comment l'intégrer avec la
macro et ou je dois le stocker. Jusqu'à présent, les
userforms que j'utilisais étaient attachés à un classeur
défini. Est-ce possible et comment procéder ? Merci pour
vos suggestions.
P.-S. : ne pas hésiter à me demander plus de détails si
ce n'est pas suffisamment explicite.