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 :

Accéder à un fichier Excel via un chemin recréé en texte en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 3
    Par défaut Accéder à un fichier Excel via un chemin recréé en texte en VBA
    Bonjour,
    Je débute en VBA et aurais besoin d'un petit coup de main.
    J'utilise Excel 2016 depuis quelques années donc jusque là, ça va, et je voudrais via VBA accéder à des images placées dans des fichiers Excel (1 image par fichier, et tous les fichiers dans un même répertoire.
    Dans mon Excel, je réécris le chemin du fichier en fonction des choix réalisés via des listes de choix, et reconstitue ce chemin dans une cellule, ceci en format texte après être passé par un concaténer. Le but est d'ouvrir ce fichier d'en extraire l'image qui bien que bien sûr différente dans chaque fichier, à un nom similaire dans chaque fichier. Mon codage fonctionne en partie, mais j'ai 2 soucis :
    - Cela fonctionne effectivement si je rentre un chemin en dur dans mon code... mais impossible de sélectionner le chemin via le texte sélectionné dans la cellule "A1". Sur le papier cela me paraissait pourtant être basique...vraiment débutant...
    - Je n'arrive pas à rentrer dans mon code, le mot de passe commun à tous les fichiers. Je n'y arrive que via une boite de dialogue, ce qui n'est pas le but, car il faudrait que tous les utilisateurs connaissent le mot de passe donc plus aucun intérêt de protéger ...
    Si quelqu'un peut me donner des pistes, je suis preneur.
    Cordialement
    Olivier

  2. #2
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut
    Bonjour Olivier,

    Serait-il possible que vous puissiez afficher votre code afin d'avoir une meilleure vue de votre situation ?

    Merci

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    - Cela fonctionne effectivement si je rentre un chemin en dur dans mon code... mais impossible de sélectionner le chemin via le texte sélectionné dans la cellule "A1". Sur le papier cela me paraissait pourtant être basique...vraiment débutant...
    - Je n'arrive pas à rentrer dans mon code, le mot de passe commun à tous les fichiers. Je n'y arrive que via une boite de dialogue, ce qui n'est pas le but, car il faudrait que tous les utilisateurs connaissent le mot de passe donc plus aucun intérêt de protéger ...
    Concernant la première partie de votre question.
    Si vous voulez charger le contenu de la cellule A1, il faut utiliser la propriété Value de l'objet Range
    Exemple : PathName = ThisWorkbook.Worksheets("Parameter").Range("A1").Value
    Quant à la seconde partie, j'avoue que cela me semble obscur.
    Si vous placez le mot de passe dans une variable ou dans une constante en "dur", je ne vois pas non plus l'intérêt de protéger les fichiers.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 3
    Par défaut Réponse
    Bonjour,

    Merci à tous les deux, j'avais bien trouvé la solution de ma première question qui n'était pas très pertinente, je l'avoue...
    Pour ce qui est du mot de passe, les différents fichiers sont visibles par tous, et afin qu'ils ne puissent être modifiés, il y a un mot de passe à l'ouverture. C'est juste par mesure de précaution, ce n'est pas pour en empêcher l'accès. Puisque, en effet, la feuille de calculs permet l'accès à l'image via une sélection précise mais aussi à un ensemble de données propres à cette image. J'espère avoir été clair.
    Donc le code fonctionne (bien que certainement très loin d'être optimisé...), mais il m'est toujours demandé le mot de passe à l'ouverture du fichier de l'image.

    Pour le code utilisé :
    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim Nom_image As String
     
        Nom_image = Range("B8").Value
        Workbooks.Open Filename:="D:\Image\" & Nom_image & ".xlsx"
        ActiveSheet.Unprotect Password:="mdp"                         'et ici, cela ne sert à rien, il m'est toujours demandé le mot de passe. Mais le code passe sans pb pour le reste.
        ActiveSheet.Shapes.Range(Array("scan")).Select
        Application.CutCopyMode = False
        Selection.Copy
        ActiveWindow.Close
        Sheets("Plan").Select
        ActiveSheet.Shapes.Range(Array("scan")).Select
        Selection.Delete
        Range("D23").Select
        ActiveSheet.Paste
    End Sub
    Cordialement

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si vous avez protégé votre classeur, c'est à l'ouverture de celui-ci qu'il faut utiliser le mot de passe
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Main()
      Const Workbook_Name As String = "Workbook_Name.xlsx" ' Nom du classeur à ouvrir
      Dim FullPath As String
      Dim FullName As String
      FullPath = ThisWorkbook.Path
      FullName = FullPath & "\" & Workbook_Name
      ' Ouverture du classeur
      Workbooks.Open FileName:=FullName, Password:="pass"
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 3
    Par défaut Résolu
    Parfait. Merci beaucoup pour votre aide.
    Je vais essayer de m'y mettre sérieusement, le résultat est vraiment pas mal...

Discussions similaires

  1. lire fichier Excel via VB.NET
    Par vinceLeBarbare dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/03/2007, 15h32
  2. fermer fichier excel via OLE
    Par richard038 dans le forum Delphi
    Réponses: 2
    Dernier message: 27/09/2006, 17h26
  3. Access n'arrive pas à accéder à un fichier Excel
    Par ZeitnotZatopek dans le forum Access
    Réponses: 12
    Dernier message: 01/09/2006, 15h22
  4. Script d'envoie d'un fichier excel via un formulaire
    Par Morphine.Nw dans le forum ASP
    Réponses: 4
    Dernier message: 26/01/2006, 13h08

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