janigrel
Messages postés2Date d'inscriptionsamedi 21 mars 2015StatutMembreDernière intervention21 mars 2015
-
21 mars 2015 à 17:15
janigrel
Messages postés2Date d'inscriptionsamedi 21 mars 2015StatutMembreDernière intervention21 mars 2015
-
21 mars 2015 à 18:24
Bonjour,
J'utilise un VBS pour ouvrir (sans affichage) un fichier Excel et exécuter une macro dans ce fichier. Voici mon script VBS :
Dim oXL Set oXL = WScript.CreateObject("EXCEL.application") oXL.Visible = False set Wk = oXL.workbooks.open("C:\Users\manu\Desktop\MacroAuto.xlsm") oxl.run "MailAuto" Wk.save wk.close oxl.quit Set oXL = Nothing
Cependant, la macro dans mon fichier Excel s'exécute avec saisie d'un mot de passe dans un InputBox. Voici mon code dans Excel :
Sub MailAuto() Dim sPass As String sPass = InputBox("Veuillez saisir le mot de passe") If sPass = "mdp" Then Call Envoi_mail End If End Sub
Ma problématique : VBS ouvre bien le fichier Excel, lance bien la macro, mais à l'ouverture de l'Intputbox, j'aimerais que VBS saisisse automatiquement le mot de passe "mdp".
Quelle instruction dois-je écrire pour cela dans mon VBS?
Bonjour,
Hé bien ! ===>> court-circuite donc cette inputbox et dis, directement que :
"sPass = "mdp"
ou encore, carrément, passe directement à :
Call Envoi_mail
ou encore : court-circuite carrément MailAuto et, dans VBS, écris donc directement :
oxl.run "Envoi_mail"
Car (et bien que tu ne le précises pas) il me faut supposer de Envoi_Mail est une macro de ton classeur. Si tel n'était pas le cas, j'aurais les plus grandes difficultés à comprendre ton :
Wk.save
alors qu'aucune autre opération n'est faite dans ce classeur.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
janigrel
Messages postés2Date d'inscriptionsamedi 21 mars 2015StatutMembreDernière intervention21 mars 2015 21 mars 2015 à 18:24
Hello ucfoutu,
Je suis parti sur la 3ème solution : j'ai laissé ma macro Excel comme elle était, c'est à dire protégée par un mot de passe (ce qui évite aux 30 utilisateurs de l'exécuter par erreur...!), et j'ai transformé ma macro "Sub Envoi_mail" en "Function Envoi_mail".
Ainsi, personne ne peut lancer la "Function" dans Excel, et je peux seul lancer l'envoi de mail via VBS avec oxl.run "Envoi_mail".