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 :

Chemin relatif dans commande Shell [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Chemin relatif dans commande Shell
    Bonjour,

    J'utilise une macro pour effectuer un publipostage à partir d'une feuille excel et un bonton clikable.

    Tout fonctionne très bien, avec cette commande dans le seul module qui fait référence à un chemin absolu de fichier:
    (je ne mets pas le reste des scripts car tout fonctionne bien)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub worddd()
     
    MyAppID = Shell("Winword.EXE ""C:\totoprojet\totodoc\toto.doc""", 1)
     
    End Sub
    Je souhaiterais pouvoir dupliquer mon classeur excel dans plusieurs emplacements différents,
    et donc indiquer un chemin relatif dans la commande ci dessus.

    le document de fusion "toto.doc" sera toujours dans le même dossier que la feuille excel qui fait le publipostage (ou dans un sous dossier au même niveau comme l'exemple ci dessus).

    C'est soit très simple, soit très compliqué, mais je n'arrive pas à trouver de ressource utilisable sur le web pour résoudre cela...

    merci d'avance !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 660
    Points : 1 399
    Points
    1 399
    Par défaut
    Bonjour

    ThisWorkbook.Path te donne le chemin du dossier contenant le fichier qui exécute le code VBA. Est-ce ça que tu cherches?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    J'utilise cette commande pour les autres parties du script, mais elle ne fonctionne pas pour la ligne de commande shell...
    ...ou je ne sais pas comment la rédiger!

    Ailleurs dans mes scripts, j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chemin = ThisWorkbook.Path & ".\demandetoto\"
    mesfichiers = Dir(chemin & "*.doc")
    Pour importer mes données dans ledit classeur, et ça marche très bien !

    Mais par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyAppID = Shell("Winword.EXE ""ThisWorkBook.path&\toto.doc""", 1)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyAppID = Shell("Winword.EXE ""ThisWorkBook.path&\totodossier\toto.doc""", 1)
    ne fonctionnent pas !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 660
    Points : 1 399
    Points
    1 399
    Par défaut
    ça sera mieux comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyAppID = Shell("Winword.EXE """ & ThisWorkbook.Path & "\totodoc\toto.doc""", 1)
    Tu laissais ThisWorkbook.Path dans la string...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut SUPER MERCI !
    super !!!

    C'est exactement ce que je cherchais à faire.... je pensais pas que cela pouvait coincé à cause d'un... string ?

    Merci beaucoup !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Maintenant, c'est word qui bloque ma fusion ordonnée depuis excel !
    re bonjour,

    Je suis désormais bloqué par la fusion word puisque dans le document principal de fusion appelé, le chemin absolu de ma base est enregistré en "dur" comme source des données. J'utilise ce code, pour piloter le publipostage depuis excel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Editiontoto()
    Sheets("Editiontoto"). Unprotect Password:="Atoto"
        Range("BP1").Select
        Range("Bdtoto!A1:Bg1065").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "Editiontoto!Bl1:Bl2"), CopyToRange:=Range("Editiontoto!A1:Bg1065"), Unique:=False
    Sheets("Editiontoto").Protect Password:="Atoto"
    Call worddd
    End Sub
     
    Sub worddd()
    MyAppID = Shell("Winword.EXE """ & ThisWorkbook.Path & "\Matricetoto\toto.doc""", 1)
    End Sub
    le document word "toto" execute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Document_Open()
       With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=False
        End With
        Call fermer
    End Sub
    Le blocage se situe à l'ouverture du fichier word, puisque le chemin absolu de la source de données n'est plus valide.

    Avez vous une idée pour solutionner ce problème, ou le contourner ? sachant que je souhaite garder le pilotage de la fusion depuis le classeur excel ?

    Merci d'avance !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 9
    Points
    9
    Par défaut OK mais partie word à optimiser :-)
    Bonjour,

    La solution à mon problème est OK pour la partie Excel...

    Et OK à optimiser pour la partie Word (voir mon post à ce sujet dans le forum VBA Word).

    Merci pour l'aide apportée !!!

    Laurent

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 08/10/2009, 16h22
  2. Chemins relatifs dans app.config
    Par piotrr dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 01/07/2009, 11h30
  3. Chemin relatif dans le web.config
    Par Paul Van Walleghem dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 11/05/2008, 13h23
  4. chemin relatif dans un htaccess vers htpasswd
    Par boon31 dans le forum Apache
    Réponses: 1
    Dernier message: 14/11/2007, 12h19
  5. [JBoss Portal] Chemin relatif dans un portlet JBoss
    Par ploxien dans le forum Portails
    Réponses: 5
    Dernier message: 05/02/2007, 10h57

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