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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Programmeur en agencement
    Inscrit en
    janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur en agencement
    Secteur : Bâtiment

    Informations forums :
    Inscription : janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Ouvrir un fichier Excel quand le dossier parent possède des espaces
    Bonjour,

    Grâce à l'aide de hackoofr j'ai pu écrire ce code :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for %%a in ("%~dp0\.") do set "parent=%%~nxa"
    EXCEL.EXE /cmd/"%parent%" "Liste de documents test.xlsm"

    Grâce à lui la deuxième ligne permet de trouver le nom du dossier parent où se trouve le batch sans le chemin.
    Cette information est envoyée dans un fichier Excel se trouvant dans le même dossier.
    Le problème c'est que le nom du dossier parent comprend des espaces alors le code boucle sur chaque mot et donc avant de réussir à ouvrir le fichier, Excel essai d'ouvrir un fichier correspond à chaque mot du dossier parent.

    Exemple :
    Le fichier batch se trouve dans ce dossier :
    "C:\Users\Toto\Desktop\Planning BE\Toto Tata Titi"
    Quand je lance le batch Excel s'ouvre puis me dit :
    "Désolé... Nous ne trouvons pas Tata.xlsx. Peut-être l'avez vous déplacé, renommé ou supprimé ?"
    Puis me dit :
    "Désolé... Nous ne trouvons pas Titi".xlsx. Peut-être l'avez vous déplacé, renommé ou supprimé ?"
    Puis ouvre enfin le bon fichier et récupère correctement la variable "Toto Tata Titi".

    Je ne peux me passer des espaces dans la dénomination du dossier.
    Comment pourrai-je faire ? Je ne comprends vraiment pas pourquoi la valeur de %parent% se trouve être utilisé comme nom de fichier Excel

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2009
    Messages
    3 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juin 2009
    Messages : 3 706
    Points : 8 963
    Points
    8 963
    Par défaut

    Donnez nous la commande principale exacte pour ouvrir EXCEL avec les arguments et les switches !
    How to open a specific excel file with a batch script and command line arguments?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Programmeur en agencement
    Inscrit en
    janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur en agencement
    Secteur : Bâtiment

    Informations forums :
    Inscription : janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Il s'agit d'Excel 2019 donc il semblerait qu'il n'y ait pas besoin d'indiquer le chemin cible complet pour le lancer.
    Le code suivant suffit :
    Par contre en lisant le contenu du lien que tu m'as donné j'ai appris que ce code est mieux car il permet de ne pas laisser la fenêtre de commande ouverte :
    Je n'ai pas besoin d'argument particulier, juste d'ouvrir Excel et une macro se charge de récupérer le paramètre %parent%.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start excel.exe /cmd/"aaa bbb" "Liste de documents test.xlsm"
    Excel s'ouvre et me dit :
    Désolé... Nous ne trouvons pas bbb".xlsx. Peut-être l'avez vous déplacé, renommé ou supprimé ?
    puis ouvre correctement le fichier "Liste de documents test.xlsm" et la macro récupère bien "aaa bbb".

    Il faudrait peut-être sinon que je change de méthode et que le batch remplace les espaces présents dans le nom du dossier parent par un caractère comme l'underscore "_".
    Mais là je ne sais pas faire du tout, je suis plus à l'aise en vba sur Excel que sur les batch

  4. #4
    Membre confirmé
    Femme Profil pro
    ..
    Inscrit en
    décembre 2019
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 91
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : décembre 2019
    Messages : 204
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    Si tu peux modifier ton code vba, il te sera alors possible de récupérer parent avec la fonction Environ("parent").
    Regarde aussi Workbook.Path et CurDir().
    Cependant, il semble que le mieux pour piloter excel, c'est vbs (vbscript).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Programmeur en agencement
    Inscrit en
    janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur en agencement
    Secteur : Bâtiment

    Informations forums :
    Inscription : janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Ah je comprends ton raisonnement et je me rends compte grâce à toi que j'ai commis une erreur dans mes tests.
    Effectivement si le fichier Excel se trouve dans le même dossier que le batch dans ce cas je pourrai récupérer le nom du dossier parent grâce à une macro avec la fonction Environ directement grâce à Excel.
    Mais je me suis trompé dans l'arborescence de mes fichiers.
    Un dossier va contenir le fichier "Liste de documents.xlsm" et une multitude de dossiers du genre "001 Dressing", "002 Porte d'entrée", "003 Meuble TV", etc... (Je travaille dans l'agencement).
    Et dans chacun des dossiers devra se trouver le batch que j'essaie de créer qui aura pour but de récupérer le nom du dossier parent, par exemple "001 Dressing" puis d'aller ouvrir le fichier "Liste de documents.xlsm" qui se trouve dans le dossier précédent (et non pas dans le même dossier comme je l'avais indiqué) et donc le paramètre "001 Dressing" sera récupéré par Excel.

  6. #6
    Membre confirmé
    Femme Profil pro
    ..
    Inscrit en
    décembre 2019
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 91
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : décembre 2019
    Messages : 204
    Points : 459
    Points
    459
    Par défaut
    Pourquoi ne fais-tu pas tout en vba ? Car si ton document s’ouvre à chaque fois dans une même instance d'excel, Environ() peut ne pas fonctionner, enfin je suppose.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Programmeur en agencement
    Inscrit en
    janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur en agencement
    Secteur : Bâtiment

    Informations forums :
    Inscription : janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    J'ai fini par trouver une solution en rajoutant une ligne qui remplace les espaces par un # :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for %%a in ("%~dp0\.") do set "parent=%%~nxa" 
    set parent=%parent: =#%
    start excel /cmd/"%parent%" "Liste de documents test.xlsm"
    Comme ça dans Excel je pourrai facilement remplacer ce caractère.
    Merci à tous.
    Je vais sûrement devoir poster un autre message pour réussir à ouvrir le fichier Excel quand il se trouve dans le dossier précédent mais je vais d'abord essayer de trouver par moi même

  8. #8
    Membre confirmé
    Femme Profil pro
    ..
    Inscrit en
    décembre 2019
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 91
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : décembre 2019
    Messages : 204
    Points : 459
    Points
    459
    Par défaut
    Dans ce cas utilise | plutôt que #

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Programmeur en agencement
    Inscrit en
    janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur en agencement
    Secteur : Bâtiment

    Informations forums :
    Inscription : janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Pourquoi me conseilles-tu | plutôt que # ?
    Tu penses que le # pourrait me causer des soucis dans Excel ou dans le batch ?

  10. #10
    Membre confirmé
    Femme Profil pro
    ..
    Inscrit en
    décembre 2019
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 91
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : décembre 2019
    Messages : 204
    Points : 459
    Points
    459
    Par défaut
    Il faut un symbole qui ne peut pas faire partie d'un nom de fichier.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Programmeur en agencement
    Inscrit en
    janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Programmeur en agencement
    Secteur : Bâtiment

    Informations forums :
    Inscription : janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Ah oui c'est vrai qu'à tout moment il pourrait arriver que # fasse parti du véritable nom du dossier.
    Merci beaucoup.

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

Discussions similaires

  1. [XL-2016] Ouvrir un fichier Excel provenant du même dossier
    Par Simon5713 dans le forum Excel
    Réponses: 2
    Dernier message: 03/12/2019, 13h34
  2. Réponses: 1
    Dernier message: 04/02/2010, 21h41
  3. Ouvrir un fichier Excel quand on clique sur un bouton
    Par perdeak dans le forum Composants VCL
    Réponses: 10
    Dernier message: 31/01/2008, 12h12
  4. ouvrir un fichier Excel avec une requete perso
    Par legillou dans le forum Access
    Réponses: 9
    Dernier message: 21/06/2005, 16h14
  5. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 12h47

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