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 :

Ouvrir un fichier excel avec VBA mais sans avoir à modifier le chemin qaund on déplace le fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Ouvrir un fichier excel avec VBA mais sans avoir à modifier le chemin qaund on déplace le fichier
    Bonjour à tous,

    J'ai 4 fichiers excel dont 1 "principal"
    En ouvrant d'abord le principal, j'ai mis des macros qui m'envoient vers les autres fichiers excels sur des onglets précis. Cependant, dès que je déplace le dossier ou un des fichiers je suis obligé de changer le chemin.
    Le but de ce travail est de créer un dossier unique que je pourrai partager avec le réseau de mon entreprise sans que mes collègues aient à retoucher à vba.

    Voici ma macro :

    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
    Private Sub CommandButton10_Click()
     
    Dim chemin_dossier_management_visuel As String
    Dim wb_MV As Workbook
    Dim ws_parking As Worksheet
     
    'identifier l'emplacement du fichier
    Set chemin_dossier_management_visuel = ActiveWorkbook.Path
    MsgBox ("Name") & chemin_dossier_management_visuel
     
    'Ouvrir le fichier et l'onglet de saisie
    Set wb_MV = Application.Workbooks.Open("fichier.xls")
    Set ws_parking = ws_parking.Worksheets("parking")
     
    End Sub
    J'ai essayé de programmer pour qu'il retrouve l'emplacement du fichier principal (où se trouve également les autres fichiers) et de le faire ouvrir "fichier.xls" mais ça ne marche pas !
    Aidez moi s'ils vous plait !

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Ce que tu demandes n'est pas possible, sauf à rechercher sur tout le disque dur (et encore ... en espérant qu'un autre fichier ne porte déjà pas ce nom ...)
    On évite en général ce genre de problème en utilisant un dossier dont le chemin est relatif à celui du classeur. Même ainsi, toutefois, nul n'est à l'abri d'un effacement ou déplacement inopportun et/ou volontaire de ce dossier

    Par ailleurs : Application.Workbooks.Open nécessite que lui soit passé le chemin complet du fichier à ouvrir.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    Ce que tu demandes n'est pas possible, sauf à rechercher sur tout le disque dur (et encore ... en espérant qu'un autre fichier ne porte déjà pas ce nom ...)
    On évite en général ce genre de problème en utilisant un dossier dont le chemin est relatif à celui du classeur. Même ainsi, toutefois, nul n'est à l'abri d'un effacement ou déplacement inopportun et/ou volontaire de ce dossier

    Par ailleurs : Application.Workbooks.Open nécessite que lui soit passé le chemin complet du fichier à ouvrir.
    Merci pour cette réponse très réactive ! Même si cela ne me réjouit pas de savoir que ce n'est pas possible.

    Je suis en revanche intéressé par "On évite en général ce genre de problème en utilisant un dossier dont le chemin est relatif à celui du classeur." Comment puis-je faire cela ?

    Merci par avance,

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par gugas Voir le message
    En ouvrant d'abord le principal, j'ai mis des macros qui m'envoient vers les autres fichiers excels sur des onglets précis. Cependant, dès que je déplace le dossier ou un des fichiers je suis obligé de changer le chemin.
    Si ton besoin est de connaitre le chemin du fichier dans lequel se trouve cette macro, tu peux l'obtenir avec ThisWorkbook.Path.

    Si ton besoin est de pouvoir permettre aux utilisateurs de rechercher le fichier principal à traiter, tu peux le faire avec la méthode GetOpenFilename.
    https://msdn.microsoft.com/library/8...ice.15%29.aspx

    Si c'est autre chose, alors il faudra expliquer ton problème plus précisément.

    J'ai essayé de programmer pour qu'il retrouve l'emplacement du fichier principal (où se trouve également les autres fichiers) et de le faire ouvrir "fichier.xls" mais ça ne marche pas !
    Sans doute parce que dans la méthode Open, tu n'indiques que le nom du fichier à ouvrir mais pas son chemin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wb_MV = Application.Workbooks.Open(chemin_dossier_management_visuel & "\fichier.xls")
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Si ton besoin est de connaitre le chemin du fichier dans lequel se trouve cette macro, tu peux l'obtenir avec ThisWorkbook.Path.

    Si ton besoin est de pouvoir permettre aux utilisateurs de rechercher le fichier principal à traiter, tu peux le faire avec la méthode GetOpenFilename.
    https://msdn.microsoft.com/library/8...ice.15%29.aspx
    Merci pour ta réponse Menhir ! Effectivement c'est pour que les autres utilisateurs ouvrir le fichier principal à traiter. Je vais suivre la méthode pour voir si ça résoudra mon problème.

    Cordialement

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par gugas Voir le message
    Merci pour ta réponse Menhir ! Effectivement c'est pour que les autres utilisateurs ouvrir le fichier principal à traiter.
    S'il s'agit du fichier dans lequel est enregistrée la macro, c'est le serpent qui se mord la queue : on ne peut pas mettre dans la macro une instruction pour ouvrir ce fichier puisque la macro ne peut être active que si le fichier est ouvert. Ca tourne en rond.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2003] Ouvrir un fichier excel avec vba
    Par Lardon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/07/2019, 13h52
  2. [XL-2007] Ouvrir fichier excel avec vba
    Par Traputaca dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/05/2013, 16h22
  3. [XL-2003] Pouvoir ouvrir des fichiers excel avec vba sans le faire planter
    Par perpitou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/12/2011, 15h52
  4. [XL-2003] Recherche un mot dans un autre fichier excel avec vba
    Par alaoui_nizar dans le forum Excel
    Réponses: 5
    Dernier message: 19/04/2010, 17h37
  5. créer un fichier excell avec VBA(access)
    Par JCH dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2006, 19h07

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