Probleme avec PATH

Bonjour,
je voudrais remplacer une ligne de mon prog afin de pouvoir le faire fonctionner sur plusieurs PC sans pour cela devoir changer la programmation VBA.

actuellement, j'ai :
NomDossier = Application.InputBox("ArchivageFactures:", "Année ?")

Chemin = "C:\Users\bs382\Desktop\ArchivageFactures\" & NomDossier & "\"
et cela fonctionne !
j'aimerais remplacer le chemin par quelque chose dans le genre de :

Chemin = ThisWorkbook.Path \ Desktop \ ArchivageFactures \ NomDossier \ ""
mais écrit comme cela ça ne fonctionne pas.
Pouvez vous m'aider ?
d'avance je vous en remercie.
prenez soin de vous !

4 réponses

  1. Contributeur
    bonjour, le plus simple et le plus fiable, c'est de te positionner par rapport au dossier où se trouve le classeur contenant la macro.
    est-ce possible?
    tu nous montres où tu veux aller: C:\Users\bs382\Desktop\ArchivageFactures
    tu ne nous montres pas où se trouve le classeur contenant la macro.
    1. merci, je ne comprends pas fort bien : vous montrer où je veux aller ?
      je voulais aller au même endroit que mon "C:\Users...
      mais sur un autre ordinateur.
      En attendant, j'ai solutionné en mettant l'adresse réelle du second PC
      merci encore.
    2. Contributeur
      @simkmiltu ne nous montres pas où se trouve le classeur contenant la macro.
    3. Contributeur
      @simkmilpeux-tu marquer la discussion comme résolue?
  2. Bonsoir simkmil.

    Bonsoir f et le pivert

    Pour les prochaines fois où tu posteras du code, merci de lire jusqu'au bout et d'appliquer la petite explication disponible à cette adresse https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

    Cet outil permet entre autre une lecture plus facile pour celui qui pourrait répondre et donc lui donner plus envie de lire ton sujet plutôt qu'un autre.

    Mais ça aide aussi le demandeur, et oui!

    En VBA un chemin, c'est une string, et une string c'est rouge.

    Quand ton code est posté comme ça
    NomDossier = Application.InputBox("ArchivageFactures:", "Année ?")

    Chemin = "C:\Users\bs382\Desktop\ArchivageFactures\" & NomDossier & "\"
    et cela fonctionne !
    j'aimerais remplacer le chemin par quelque chose dans le genre de :

    Chemin = ThisWorkbook.Path \ Desktop \ ArchivageFactures \ NomDossier \ ""

    Il est difficile de voir ce qui coince.

    Alors que là
    NomDossier = Application.InputBox("ArchivageFactures:", "Année ?")
    
    Chemin = "C:\Users\bs382\Desktop\ArchivageFactures\" & NomDossier & "\"
    et cela fonctionne !
    j'aimerais remplacer le chemin par quelque chose dans le genre de :
    
    Chemin = ThisWorkbook.Path \ Desktop \ ArchivageFactures \ NomDossier \ ""


    on voit de suite que ton chemin en ligne 7 (oui ça met des numéros de lignes aussi, ce qui est pratique) n'est pas rouge.

    Et pour ceci
    Chemin = ThisWorkbook.Path & \ "Desktop" \ "ArchivageFactures" \" NomDossier" \ ""
    
    

    les \ ne sont pas dans "le rouge"

    Par contre toute la seconde partie du chemin proposé par le Pivert est rouge (même s'il a laissé trainé quelques espaces en rab ;) )
    ThisWorkbook.Path & " \Desktop\ArchivageFactures\"  &  NomDossier  & "\ "
    
    

    Il faut être attentif construit des string comme ça, un " mal placé et c'est la cata.

    J'ai pas fait de VBA depuis bien longtemps, mais il me semble que dans l'éditeur, une string est rouge aussi, ça fait partie des aides que l'éditeur apporte (pas beaucoup en VBA (: )

    1. Contributeur
      Bonjour,

      comme ceci:

      ThisWorkbook.Path & " \ Desktop \ ArchivageFactures \"  &  NomDossier  & " \ "

      1. Bonjour,
        Chemin = ThisWorkbook.Path \ Desktop \ ArchivageFactures \ NomDossier \ ""

        Apres
        ThisWorkbook.Path
        mettre un espace & un espace et le reste entre "".
        1. Merci beaucoup,
          je vais essayer . Si je comprends bien, je dois mettre chaque expression entre "" ?
          cela donnerait :
          Chemin = ThisWorkbook.Path & \ "Desktop" \ "ArchivageFactures" \" NomDossier" \ ""

          je vais essayer de cette façon.
          Merci
        2. @SimkmilRe-Bonjour
          et ça ne fonctionne pas encore ! cette fois, j'ai une erreur "13" incompatibilité de type !
          je ne comprends pas .

          Merci