IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Instruction VBS pour écrire un mot de passe pour exécuter une macro Excel


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable Commercial
    Inscrit en
    Mars 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 51
    Points : 30
    Points
    30
    Par défaut Instruction VBS pour écrire un mot de passe pour exécuter une macro Excel
    Bonjour la communauté!
    J'utilise un VBS pour ouvrir (sans affichage) un fichier Excel et exécuter une macro. Voici mon script VBS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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 : quelle instruction dois-je écrire dans mon VBS pour saisir automatiquement le mot de passe "mdp" dans l'InputBox afin que ma macro s'exécute sans ouvrir Excel?

    Je vous remercie de votre aide.
    Cordialement

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,

    modifie ta macro excel pour supprimer cette demande de mot de passe inutile ..

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable Commercial
    Inscrit en
    Mars 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 51
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Merci bbil, mais je préfère avoir la main sur ma macro par un mot de passe, car 25 collaborateurs ont accès à mon fichier Excel (en mode partagé), et j'ai besoin que les nombreuses macros de ce fichier ne soient pas utilisées malencontreusement.

    Quelqu'un saurait-il m'aider? VBS peut-il écrire ce mot de passe dans l'inputbox?

    Merci de votre aide.
    Cordialement.
    Janigrel

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    Dans l'inputBox le mot de passe est toujours en clair.
    Testez ce petit bricolage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Option Explicit
    'Variables globales
    Dim bPasswordBoxWait,bPasswordBoxOkay,sPass,Password
    sPass = "mdp"
    Password = PasswordBox("Veuillez taper votre mot de passe pour l'envoi du mail",False)' Taille réduite
    If Password = sPass Then
        MsgBox "Mot de passe est correct",VbInformation,"Mot de passe est correct"
        'Call Envoi_mail
    Else
        MsgBox "Mot de passe est incorrect",VbCritical,"Mot de passe est incorrect"
    End If
    '**********************************************************************************************************************************************************
    Function PasswordBox(sTitle,FullScreen) 
        Dim oIE
        set oIE = CreateObject("InternetExplorer.Application") 
        With oIE
            If     FullScreen = True Then 
                .FullScreen = True
            Else 
                .FullScreen = False
            End if    
            .ToolBar   = False : .RegisterAsDropTarget = False 
            .StatusBar = False : .Navigate("about:blank") 
            .Resizable = False
            While .Busy : WScript.Sleep 100 : Wend 
                With .document 
                    .Title = "Veuillez taper votre mot de passe * * * * * * * * * * * * *"
                    With .ParentWindow 
                        .resizeto 450,120 
                        .moveto .screen.width/2-200, .screen.height/2-50 
                    End With 
                    .WriteLn("<html><title>Veuillez taper votre mot de passe * * * * * * * * * * * * * * * *</title><body text=white bgColor=DarkOrange><center>") 
                    .WriteLn(sTitle) 
                    .WriteLn("<input type=password value=mdp id=pass>" & _ 
                    "<input type=Submit id=but0 value=Envoyer>") 
                    .WriteLn("</center></body></html>") 
                    With .ParentWindow.document.body 
                        .scroll="no" 
                        .style.borderStyle = "outset" 
                        .style.borderWidth = "1px" 
                    End With 
                    .all.but0.onclick = getref("PasswordBox_Submit") 
                    .all.pass.focus 
                    oIE.Visible = True 
                    bPasswordBoxOkay = False : bPasswordBoxWait = True 
                    On Error Resume Next 
                    While bPasswordBoxWait 
                        WScript.Sleep 100 
                        if oIE.Visible Then bPasswordBoxWait = bPasswordBoxWait 
                        if Err Then bPasswordBoxWait = False 
                    Wend 
                    PasswordBox = .all.pass.value 
                End With ' document 
                .Visible = False
                .Quit 
            End With   ' IE 
        End Function 
    '***********************************************************************************************************************************************************
        Sub PasswordBox_Submit() 
            bPasswordBoxWait = False 
        End Sub
    '***********************************************************************************************************************************************************

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Responsable Commercial
    Inscrit en
    Mars 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Responsable Commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 51
    Points : 30
    Points
    30
    Par défaut
    Bonjour hackookfr et merci pour ton message.

    Je ne comprends pas très bien ton code. Mais peut-être dois-je être plus clair dans ma demande :
    Via le BlocNote, j'ai créé un VBS de ce type :

    Nom : vbs.JPG
Affichages : 1526
Taille : 43,5 Ko

    qui va ouvrir un fichier Excel et exécuter ma macro qui elle, s'ouvre avec un mot de passe.
    Lorsque j'exécute le vbs, l'inputbox demandant le mot de passe s'affiche à l'écran.
    Je souhaiterais simplement trouver une instruction VBS qui va cliquer dans l'impubox et écrire le mot de passe pour que la macro du fichier Excel s'exécute toute seule.

    Peux tu m'aider?
    Cordialement.

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/09/2019, 10h50
  2. [XL-2013] Enregistrement du mot de passe ODBC dans une macro
    Par SEBJAK dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/11/2016, 23h27
  3. [XL-2003] Protéger un mot de passe présent dans une macro
    Par Chevrefeuille dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/03/2010, 20h17
  4. Supprimer le mot de passe pour sa
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/01/2005, 12h13
  5. Réponses: 4
    Dernier message: 29/11/2004, 22h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo