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 :

Utiliser ThisWoorkBook.Path ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    re
    re est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut Utiliser ThisWoorkBook.Path ?
    Bonjour,
    Je ne sais pas plus ou j'ai récupéré ce bout de code
    Set objShell = CreateObject("Shell.Application")
    Set objfolder = objShell.Namespace("C:\Users\Utilisateur\Pictures\test")
    Workbooks(1).Sheets(1).Activate
    For i = 0 To 300
    det_Headers(i) = objfolder.GetDetailsOf(objfolder.Items, i - 1)
    ActiveSheet.Cells(i + 1, 2) = det_Headers(i)
    Je voudrai remplacer 'Set objfolder = objShell.Namespace("C:\Users\Utilisateur\Pictures\test"), pour aller chercher l'image jpg (test_img.jpg par exemple) qui se trouve dans le répertoire courant, là ou ce trouve le fichier xlsm, mais mon niveau VBA ne me le permet pas encore ;-)
    Pour que le fichier puisse être utilisé sur n'importe quel PC, je ne voudrai pas que le chemin soit inscrit dans le code.
    Pouvez-vous m'aider ?
    Merci
    bon WE

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Test()
     
        Dim Chemin As String
     
        'construit le chemin
        Chemin = ThisWorkbook.Path & "\" & "test_img.jpg"
     
        'contrôle la présence du fichier dans le dossier
        If Dir(Chemin) <> "" Then MsgBox "Le fichier se trouve bien dans le dossier du calsseur"
     
    End Sub

  3. #3
    re
    re est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut
    Merci pour ta rapide réponse mais je l'insère ou et à la place de quoi ?

    Voici la macro complete
    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
    Sub Code_champs_proprietes()
    Sheets("Code").Select
    [B2:C310].ClearContents
     
    Dim det_Headers(300)
     
    Set objShell = CreateObject("Shell.Application")
    Workbooks(1).Sheets(1).Activate
     Set objfolder = objShell.Namespace("C:\Users\Utilisateur\Pictures\test")        ' idéalement il faudrait aller chercher l'image jpg dans le repertoire ou est situé le fichier xlsm 
    For i = 0 To 300
    det_Headers(i) = objfolder.GetDetailsOf(objfolder.Items, i - 1)
    ActiveSheet.Cells(i + 1, 2) = det_Headers(i)
     
    Next
    Workbooks(1).Sheets(1).Activate
    j = 3 'colonne
    For Each strFilename In objfolder.Items
    For i = 0 To 300
    Sheets(1).Cells(i + 2, j).Value = objfolder.GetDetailsOf(strFilename, i)
    Next
    j = j + 1
    Next
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Il te suffit de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set objfolder = objShell.Namespace("C:\Users\Utilisateur\Pictures\test")
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set objfolder = objShell.Namespace(ThisWorkbook.Path & "\")

  5. #5
    re
    re est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut
    Merci,
    Effectivement ça fonctionne mais ça liste tous les fichiers qu'il y a dans le repertoire, je ne voudrai lister qu'une seule photo ex: test_img.jpg

    Cela me permet de récupérer tous les codes de champs des propriétés ils sont différents suivant l'OS ou les offices utilisés (?)
    Jusqu'à présent je pouvais le gérer mais je ne sais pas pourquoi ces codes changent

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Comme tu demandais d'utiliser le code que tu avais posté, j'en avais déduit que c'était ce que tu souhaitais comme résultat !
    Pour insérer une image dans une feuille de calcul :
    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
     
    Sub Test()
     
        Dim Chemin As String
        Dim NomImg As String
     
        'nom de l'image
        NomImg = "test_img.jpg"
     
        'construit le chemin
        Chemin = ThisWorkbook.Path & "\" & NomImg
     
        'contrôle la présence du fichier dans le dossier
        If Dir(Chemin) <> "" Then ActiveSheet.Pictures.Insert Chemin
     
    End Sub

Discussions similaires

  1. utilisation de PATH sous python
    Par saimyas dans le forum Général Python
    Réponses: 4
    Dernier message: 14/06/2011, 16h08
  2. Modification d'un fichier java en utilisant son path
    Par chater.mariem dans le forum Général Java
    Réponses: 4
    Dernier message: 19/05/2011, 22h17
  3. Comment utiliser selected path
    Par Lechette dans le forum VB.NET
    Réponses: 8
    Dernier message: 16/11/2008, 17h14
  4. WMI utilisation du path dans WQL
    Par ddoc dans le forum C#
    Réponses: 2
    Dernier message: 22/11/2007, 09h53
  5. Réponses: 1
    Dernier message: 24/05/2005, 14h53

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