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 :

Mise à jour chemin d'accès automatique [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 48
    Points : 27
    Points
    27
    Par défaut Mise à jour chemin d'accès automatique
    Bonjour,

    Voici mon problème, je possède un fichier excel fonctionnant avec plusieurs Userforms, TextBox, etc..

    Certain Userform sont munis d'un Objet "Image" permettant d'afficher une image par le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Userform_Initialize()
    Me.Image1.Picture = LoadPicture("Y:\BLABLA1\BLABLA2\BLABLA3\DossierSource\image.jpg", 900, 600)
    End Sub
    Le DossierSource comprend mon fichier excel ainsi que toute les images utilisés.

    J'aimerais que lorsque ce DossierSource change de place, que je ne soit pas obligé de changer manuellement le chemin d'accès dans mon code. Sachant que plusieurs personnes utiliseront ce "logiciel" sur leur ordinateur et qu'ils ne connaissent pas l'univers du VBA, ils ne seront donc pas en mesure de pouvoir changer le chemin d'accès eux même.

    Je vous remercie d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    les deux solutions que je vois pour te simplifier le travail :
    - remplacer toutes les iterations en dur par UNE constante globale
    - dans la mesure ou tes users n'iront pas dans le code, leur dire que le folder doit etre dans une cellule precise de ton classeur, et que tu recuperes cette valeur par le code.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si j'ai bien compris ton explication, les images et le classeur qui les utilise sont dans le même dossier ?

    dans ce cas là, autant définir ce chemin relatif en fonction de ce paramètre, ainsi si tu déplaces ton dossier (et que tes images conservent le même nom), tu n'as pas de modification de chemin à faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Userform_Initialize()
    Me.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\image.jpg", 900, 600)
    End Sub
    En reprenant ton exemple, Thisworkbook.Path = "Y:\BLABLA1\BLABLA2\BLABLA3\DossierSource"

    Si tu décides de déplacer DossierSource pour le mettre dans BLABLA2, alors Thisworkbook.Path devient "Y:\BLABLA1\BLABLA2\DossierSource"

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 48
    Points : 27
    Points
    27
    Par défaut
    Merci jpcheck et joe.levrai !!

    J'ai continué à chercher également de mon coté et j'ai trouvé l'objet ImageList qui permet également utiliser une liste de photo sans passer par un chemin d'accès.

    Cependant ta solution joe est également très bien, je vais d'ailleurs utiliser cela !

    Je vous remercie !

    Bonne journée

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Si un jour tu souhaites utiliser le contrôle ImageList, il faut savoir qu'il n'as pas compatible sur tous les environnements (pas de MAC, pas de version 64bits également il me semble).

    pour un projet suceptible d'être déployé sur plusieurs postes de travail, il est préférable de rester sur des contrôles de base

    d'où la raison pour laquelle je n'ai pas proposé ce contrôle pratique pour charger une bibliothèque d'image directement dans ton projet VBA

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 48
    Points : 27
    Points
    27
    Par défaut
    Ah d'accord, c'est bon à savoir en effet ! Je n'avais pas du tout penser à la compatibilité. Je te remercie pour tes infos

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

Discussions similaires

  1. Mise à jour de mes données automatiquement
    Par az7895 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2015, 11h51
  2. Mise à jour d'un fichier automatique
    Par int000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/02/2014, 15h31
  3. [XL-2003] mise à jour chemin vers données externes
    Par Didine1801 dans le forum Conception
    Réponses: 1
    Dernier message: 08/11/2012, 11h00
  4. Problème mise à jour table sous Acces
    Par colorid dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/03/2012, 17h12
  5. Réponses: 3
    Dernier message: 10/10/2011, 11h10

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