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

Joindre un userform de demande de mot de passe avec passwordchar * avec un classeur cree depuis un fichier et ad ressé par e mail

29 réponses
Avatar
Alex
Bonjour =E0 tous,

Quelqu'un aurait-il une solution =E0 mon probl=E8me, et m'en explique :

J'ai un fichier g=E9r=E9 avec des maros et des userforms, dont un bouton
permet l'=E9dition d'une fiche et propose aussi l'envoi de cette fiche
par e-mail.
Si la personne r=E9pond OUI, alors cette fiche est copi=E9e dans un
nouveau classeur et adress=E9e automatiquement par mail au correspondant
d=E9fini.
Le correspond recoit le fichier cr=E9e, et peut alors en cliquant sur un
bouton, signer cette fiche en saisissant un mot de passe. (Macro coll=E9
sur la feuille)
Mon souci est que le userform que j'avais cr=E9e pour saisir le mot de
passe avec passwordchar * n'est pas joint avec le fichier.
Pour palier le probl=E8me j'ai remplac=E9 le userform par une inputbox,
mais du coup je perd la possibilit=E9 de saisir le mot de passe avec les
*.
Comment puis-je faire pour joindre avec ma feuille cr=E9er dans le
nouveau classeur le userform saisie d'un mot de passe avec *
Merci par avance de votre aide.
Alex

10 réponses

1 2 3
Avatar
michdenis
Bonjour,

Tu as un fichier exemple. http://cjoint.com/?0kixfrQIIKi

Lorsque tu édites une fichier dans un nouveau classeur,
tu appelles la macro : "CopieCodeModule" qui est dans le module1
Il va copier tout le code situé dans le module "CodeACopier" dans
le ThisWorkbook que tu viens de créer et il va même jusqu'à protéger
le code de ce nouveau classeur par un mot de passe "toto". Le mot
de passe sera en vigueur à la réouverture du classeur seulement.

Lorsque tu ouvriras ce nouveau fichier, tu seras appelé à saisir le mot
de passe pour y avoir accès. Ce mot de passe est aussi "toto" sinon
le classeur se referme.

À toi maintenant de t'amuser un peu !




--
MichD
--------------------------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Quelqu'un aurait-il une solution à mon problème, et m'en explique :

J'ai un fichier géré avec des maros et des userforms, dont un bouton
permet l'édition d'une fiche et propose aussi l'envoi de cette fiche
par e-mail.
Si la personne répond OUI, alors cette fiche est copiée dans un
nouveau classeur et adressée automatiquement par mail au correspondant
défini.
Le correspond recoit le fichier crée, et peut alors en cliquant sur un
bouton, signer cette fiche en saisissant un mot de passe. (Macro collé
sur la feuille)
Mon souci est que le userform que j'avais crée pour saisir le mot de
passe avec passwordchar * n'est pas joint avec le fichier.
Pour palier le problème j'ai remplacé le userform par une inputbox,
mais du coup je perd la possibilité de saisir le mot de passe avec les
*.
Comment puis-je faire pour joindre avec ma feuille créer dans le
nouveau classeur le userform saisie d'un mot de passe avec *
Merci par avance de votre aide.
Alex
Avatar
michdenis
Le code doit OBLIGATOIREMENT être exécuté par l'appel de la procédure
"CopieCodeModule" via l'interface de calcul ou lorsque cette fenêtre est
visible.

--
MichD
--------------------------------------------
Avatar
michdenis
Voici une nouvelle version du fichier avec de légère modification :
http://cjoint.com/?0kjnXFNKBtC

--
MichD
--------------------------------------------


"michdenis" a écrit dans le message de groupe de discussion : i8o132$rmb$
Bonjour,

Tu as un fichier exemple. http://cjoint.com/?0kixfrQIIKi

Lorsque tu édites une fichier dans un nouveau classeur,
tu appelles la macro : "CopieCodeModule" qui est dans le module1
Il va copier tout le code situé dans le module "CodeACopier" dans
le ThisWorkbook que tu viens de créer et il va même jusqu'à protéger
le code de ce nouveau classeur par un mot de passe "toto". Le mot
de passe sera en vigueur à la réouverture du classeur seulement.

Lorsque tu ouvriras ce nouveau fichier, tu seras appelé à saisir le mot
de passe pour y avoir accès. Ce mot de passe est aussi "toto" sinon
le classeur se referme.

À toi maintenant de t'amuser un peu !




--
MichD
--------------------------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Quelqu'un aurait-il une solution à mon problème, et m'en explique :

J'ai un fichier géré avec des maros et des userforms, dont un bouton
permet l'édition d'une fiche et propose aussi l'envoi de cette fiche
par e-mail.
Si la personne répond OUI, alors cette fiche est copiée dans un
nouveau classeur et adressée automatiquement par mail au correspondant
défini.
Le correspond recoit le fichier crée, et peut alors en cliquant sur un
bouton, signer cette fiche en saisissant un mot de passe. (Macro collé
sur la feuille)
Mon souci est que le userform que j'avais crée pour saisir le mot de
passe avec passwordchar * n'est pas joint avec le fichier.
Pour palier le problème j'ai remplacé le userform par une inputbox,
mais du coup je perd la possibilité de saisir le mot de passe avec les
*.
Comment puis-je faire pour joindre avec ma feuille créer dans le
nouveau classeur le userform saisie d'un mot de passe avec *
Merci par avance de votre aide.
Alex
Avatar
michdenis
Oublier tout ce qui précède... il est impossible de créer un formulaire à la volée si le projetVBA est protégé.

Cependant, on peut faire ceci : http://cjoint.com/?0kjo7gdwgBv

Le bouton "créer un module" fait 3 choses
A ) ajoute un formulaire (userform) au niveau classeur
B ) ajoute le code nécessaire pour le formulaire
C ) ajoute du code dans le ThisWorkbook du nouveau classeur

Évidemment, l'usager doit activer les macros pour que le formulaire s'ouvre à l'ouverture du classeur.
Sinon, il est possible d'ajouter du code pour "forcer" l'usager à activer les macros.

--
MichD
--------------------------------------------


"michdenis" a écrit dans le message de groupe de discussion : i8pkum$bk8$
Voici une nouvelle version du fichier avec de légère modification :
http://cjoint.com/?0kjnXFNKBtC

--
MichD
--------------------------------------------


"michdenis" a écrit dans le message de groupe de discussion : i8o132$rmb$
Bonjour,

Tu as un fichier exemple. http://cjoint.com/?0kixfrQIIKi

Lorsque tu édites une fichier dans un nouveau classeur,
tu appelles la macro : "CopieCodeModule" qui est dans le module1
Il va copier tout le code situé dans le module "CodeACopier" dans
le ThisWorkbook que tu viens de créer et il va même jusqu'à protéger
le code de ce nouveau classeur par un mot de passe "toto". Le mot
de passe sera en vigueur à la réouverture du classeur seulement.

Lorsque tu ouvriras ce nouveau fichier, tu seras appelé à saisir le mot
de passe pour y avoir accès. Ce mot de passe est aussi "toto" sinon
le classeur se referme.

À toi maintenant de t'amuser un peu !




--
MichD
--------------------------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Quelqu'un aurait-il une solution à mon problème, et m'en explique :

J'ai un fichier géré avec des maros et des userforms, dont un bouton
permet l'édition d'une fiche et propose aussi l'envoi de cette fiche
par e-mail.
Si la personne répond OUI, alors cette fiche est copiée dans un
nouveau classeur et adressée automatiquement par mail au correspondant
défini.
Le correspond recoit le fichier crée, et peut alors en cliquant sur un
bouton, signer cette fiche en saisissant un mot de passe. (Macro collé
sur la feuille)
Mon souci est que le userform que j'avais crée pour saisir le mot de
passe avec passwordchar * n'est pas joint avec le fichier.
Pour palier le problème j'ai remplacé le userform par une inputbox,
mais du coup je perd la possibilité de saisir le mot de passe avec les
*.
Comment puis-je faire pour joindre avec ma feuille créer dans le
nouveau classeur le userform saisie d'un mot de passe avec *
Merci par avance de votre aide.
Alex
Avatar
Alex
Bonjour Michel,
Merci pour ces réponses.
Etant chez moi, je n'ai pas le fichier pour tout tester, je ferai cela
Lundi, mais malgré tout, des questions me viennent déjà à l'esprit,
est que je peux coller sub CopieCodeModule dans ma macro existante qui
génère l'edition de mon document et la création du nouveau fichier qu i
est adressé par mail ou puis je juste faire un call CopieCodeModule ?
Est ce que je peux supprimer sb ProtectVBProject (car je ne comprends
pas quel est l'interet de proteger ?) ?
Par ailleurs, je voualis en fait que mon userform password ne s'ouvre
qu'après activation d'un bouton qui se trouve sur le classeur envoye
et non pas à l'ouverture, me suffit il de deplacer les lignes de
commande mise sur thisworkbook open sur les lignes de commandes de mon
bouton ?
Sinon comme toujours Michel, vous avez encore solutionné un de mes
problèmes VBA, alors un grand Merci.
Alex
Avatar
Alex
Bonjour Michel,
Merci pour ces réponses.
Etant chez moi, je n'ai pas le fichier pour tout tester, je ferai cela
Lundi, mais malgré tout, des questions me viennent déjà à l'esprit,
est que je peux coller sub CopieCodeModule dans ma macro existante qui
génère l'edition de mon document et la création du nouveau fichier qu i
est adressé par mail ou puis je juste faire un call CopieCodeModule ?
Est ce que je peux supprimer sb ProtectVBProject (car je ne comprends
pas quel est l'interet de proteger ?) ?
Par ailleurs, je voualis en fait que mon userform password ne s'ouvre
qu'après activation d'un bouton qui se trouve sur le classeur envoye
et non pas à l'ouverture, me suffit il de deplacer les lignes de
commande mise sur thisworkbook open sur les lignes de commandes de mon
bouton ?
Sinon comme toujours Michel, vous avez encore solutionné un de mes
problèmes VBA, alors un grand Merci.
Alex
Avatar
michdenis
A ) Copie tout le code du "Module1" du fichier Exemple dans
un module standard de ton fichier.

B ) Dans la macro qui produit la fiche à expédier,
tu ajoutes la ligne de code :
Call CopieCodeModule
Cette macro demande à l'ouverture du fichier le mot de passe
sinon le fichier se ferme.
Le principe est le même si tu veux lier la macro à l'utilisation d'un bouton.
Pour modifier le code, il faut avoir une description précise de ce que tu
veux...

C ) Si tu ne protège pas le projetVBA avec un mot de passe,
l'usager va avoir accès (en regardant le code) au mot de passe.
Quel sera alors l'utilité de la chose ?

D ) Pour avoir une idée de ce que fait la macro, tu peux la lancer du
fichier exemple. La macro créera un nouveau classeur. Tu enregistres
ce dernier, le ferme et à sa réouverture tu auras la demande du mot de passe
Ce mot de passe est : toto
le mot de passe pour déprotéger le code est MichD (attention à la casse)


--
MichD
--------------------------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour Michel,
Merci pour ces réponses.
Etant chez moi, je n'ai pas le fichier pour tout tester, je ferai cela
Lundi, mais malgré tout, des questions me viennent déjà à l'esprit,
est que je peux coller sub CopieCodeModule dans ma macro existante qui
génère l'edition de mon document et la création du nouveau fichier qui
est adressé par mail ou puis je juste faire un call CopieCodeModule ?
Est ce que je peux supprimer sb ProtectVBProject (car je ne comprends
pas quel est l'interet de proteger ?) ?
Par ailleurs, je voualis en fait que mon userform password ne s'ouvre
qu'après activation d'un bouton qui se trouve sur le classeur envoye
et non pas à l'ouverture, me suffit il de deplacer les lignes de
commande mise sur thisworkbook open sur les lignes de commandes de mon
bouton ?
Sinon comme toujours Michel, vous avez encore solutionné un de mes
problèmes VBA, alors un grand Merci.
Alex
Avatar
Alex
Re Bonjour Michel,

J'ai tenté d'insérer la macro que tu m'as proposé, et j'ai procéd é
comme suit :

A/ J'ai copié l'intégralité du Module1 sur mon fichier dans un nouvea u
module.
B/ J'ai ajouté Call CopieCodeModule dans la macro qui expédie la
fiche, et cela coince dans le module CopieCodeModule au niveau de la
ligne de commande With VBComponents ("ThisWorkbook").codeModule et
j'ai le message suivant :

Erreur d'execution - 2147417848 (80010108)
Erreur Automation
L'objet Invoqué d'est déconnecté de ses clients

Vois tu ce qui peux produire cela ? en plus même en réinitialisant
tout excel est figé je ne peux plus fermé le fichier mis a part en
utilisant le Gestionnaire de fichier en cliquant sur Fin de tache.

Merci par avance de ta réponse.
Alex
Avatar
Alex
Re :

J'ai mis http://cjoint.com/?0klly9NgQNR le fichier sans donné
confidentiel, si cela peux aider .
Avec mes remerciements.
Cdt.
Alex
Avatar
Alex
Avec mes excuses le bon lien est le suivant : http://cjoint.com/?0kllFezZG4i
Alex
1 2 3