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

Macros et VBA Excel Discussion :

Variables qui jouent à cache - cache [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut Variables qui jouent à cache - cache
    Bonjour,

    Je souhaite ouvrir un fichier protégé par un mot de passe sans l'afficher.
    Le fichier ne s'affiche pas, cependant, pour une raison que je ne comprends pas, il me demande d'entrer le mot de passe, malgré le paramètre Password. Qu'est-ce qui n'est pas d'équerre ?
    Par ailleurs, j'imagine utiliser ce code pour ouvrir le fichier

    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
     
    Function OpenFileExcel()
    Dim appxl As Excel.Application
    Dim FichNumero As String, FichCopie As String
    Set appxl = CreateObject("Excel.application")
     
        If FichierExiste("C:\WinBooks\Office\160302 - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "C:\WinBooks\Office\160302 - Numerotation des ordres de paiements bancaires.xlsx"
            FichCopie = "C:\WinBooks\Office\Copie - Numerotation des ordres de paiements bancaires.xlsx"
        ElseIf FichierExiste("d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Numerotation des ordres de paiements bancaires.xlsx"
            FichCopie = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\Copie - Numerotation des ordres de paiements bancaires.xlsx"
        Else
            MsgBox ("Ce fichier n'existe pas")
        End If
     
    With appxl
        .ScreenUpdating = False
        .Visible = False
        .Workbooks.Open Filename:=FichNumero, Password:="160302"
     
    End With
     
    End Function
    et ce code pour le fermer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Function CloseFileExcel()
        appxl.Workbooks(FichNumero).Save
        appxl.Workbooks(FichNumero).Close
     
        Set appxl = Nothing
        FileCopy FicheNumero, FichCopie
     
    End Function
    Deux questions :
    Les variables FichNumero et FichCopie ne suivent pas de OpenFcileExcel à CloseFileExcel. Que faut-il faire pour qu'une variable soit reconnue d'une fonction à une sub ou à une autre fonction ? Même en les déclarant publiques, elles ne sont pas visibles.
    En outre, cette fonction ne sauve ni ferme rien du tout, même pas les processus d'Excel ouverts.

    Une idée de l'erreur ?

    D'avance merci de prendre la peine de corriger mes incompétences et bonne journée !

    Henri

  2. #2
    Invité
    Invité(e)
    Par défaut
    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
    public FichNumero As String, appxl As Excel.Application,FichCopie As String
    Function OpenFileExcel()
    Set appxl = CreateObject("Excel.application")
     
        If FichierExiste("C:\WinBooks\Office\160302 - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "C:\WinBooks\Office\160302 - Numerotation des ordres de paiements bancaires.xlsx"
            FichCopie = "C:\WinBooks\Office\Copie - Numerotation des ordres de paiements bancaires.xlsx"
        ElseIf FichierExiste("d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Numerotation des ordres de paiements bancaires.xlsx"
            FichCopie = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\Copie - Numerotation des ordres de paiements bancaires.xlsx"
        Else
            MsgBox ("Ce fichier n'existe pas")
        End If
     
    With appxl
        .ScreenUpdating = False
        .Visible = False
        .Workbooks.Open Filename:=FichNumero, Password:="160302"
     
    End With
     
    End Function
     
    Function CloseFileExcel()
        appxl.Workbooks(FichNumero).Save
        appxl.Workbooks(FichNumero).Close
     
        Set appxl = Nothing
        FileCopy FicheNumero, FichCopie
     
    End Function

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Bonjour rdurupt,

    Merci pour la réponse.

    Tout d'abord, concernant le mot de passe, j'ai pu remarquer ceci.
    Si d'autres feuilles Excel sont ouvertes simultanément avec mon fichier XLTM, il me demande d'entrer le mot de passe.
    Comme la macro se comportait de manière complètement incompréhensible, j'ai décidé de fermer complètement Excel, y compris dans la colonne détail du gestionnaire de tâches où, après avoir tout fermé, j'ai trouvé deux occurrences d'Excel ouvertes.

    Lors du redémarrage suivant, uniquement avec le fichier XLTM d'ouvert, il ne m'a plus demandé le mot de passe. Par contre, il se plante toujours avec le message Erreur d'exécution n°9. L'indice n'appartient pas à la sélection et cela sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appxl.Workbooks(FichNumero).Save
    Une idée ? Soyez-en remercié

    Bien à vous

    Henri

  4. #4
    Invité
    Invité(e)
    Par défaut
    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
    public FichNumero As String, appxl As Excel.Application,FichCopie As String
    Poblic Wb as Workbook 'ici on déclare un objet Workbook afin de pouvoir le traité par la suite! 
    Function OpenFileExcel()
    Set appxl = CreateObject("Excel.application")
     
        If FichierExiste("C:\WinBooks\Office\160302 - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "C:\WinBooks\Office\160302 - Numerotation des ordres de paiements bancaires.xlsx"
            FichCopie = "C:\WinBooks\Office\Copie - Numerotation des ordres de paiements bancaires.xlsx"
        ElseIf FichierExiste("d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Numerotation des ordres de paiements bancaires.xlsx") Then
            FichNumero = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\160302 - Numerotation des ordres de paiements bancaires.xlsx"
            FichCopie = "d:\Dossiers\DOCUMENTS GENERAUX\Sur mesure - originaux\Habari Kani\Copie - Numerotation des ordres de paiements bancaires.xlsx"
        Else
            MsgBox ("Ce fichier n'existe pas")
        End If
     
    With appxl
        .ScreenUpdating = False
        .Visible = False
       set wb= .Workbooks.Open Filename:=FichNumero, Password:="160302"
     
    End With
     
    End Function
     
    Function CloseFileExcel()
        Wb.Save
        Wb.Close 
     
        Set appxl = Nothing
        FileCopy FicheNumero, FichCopie
     
    End Function

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2012
    Messages : 187
    Par défaut
    Il me donne une erreur de syntaxe ou de compilation lorsque j'entre la commande set wb telle que vous me la proposez.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With appxl
        .ScreenUpdating = False
        .Visible = False
        set wb=.Workbooks.Open Filename:=FichNumero, Password:="160302"
     
    End With

  6. #6
    Invité
    Invité(e)
    Par défaut
    sans doute parce que j'ai tenté un innovation, j'ai écris Poblic et ça n'existe pas!


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Des entrées qui jouent à cache-cache ?
    Par Pauloscorps dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/10/2013, 12h14
  2. Réponses: 4
    Dernier message: 06/09/2006, 14h50
  3. Réponses: 2
    Dernier message: 06/09/2006, 14h27
  4. Site internet qui met en cache les pages web
    Par LFC dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 07/06/2006, 10h10
  5. Réponses: 3
    Dernier message: 27/07/2005, 15h12

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