Instruction VBS pour saisir mot de passe dans Inputbox [Résolu]

Signaler
Messages postés
2
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
21 mars 2015
-
Messages postés
2
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
21 mars 2015
-
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?

Je vous remercie de votre aide.
Cordialement

2 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
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
Messages postés
2
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
21 mars 2015

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".

Merci pour l'idée qui a résolu mon problème!