Macro enchainée avec chemin relatif

Bonjour

Je bataille avec mon niveau débutant sur une macro qui me permet depuis une fichier excel ouvert, d'ouvrir deux fichiers CSV pour importer leurs données dans des onglets différents. PAr défaut, les deux fichiers *.CSV sont enregistrés sur le Bureau (Desktop) de chaque utilisateur.

En plus clair, le fichier CPIT comporte un bouton sur l'onglet "accueil" et plusieurs onglets dont un onglet PF et un onglet LD qui sont des listes.

Lors de l'appui sur le bouton macro, excel ouvre un fichier PF.csv copie l'intégralité des données et les importe dans l'onglet PF du fichier principal CPIT, ferme le fichier PF.CSV, ouvre le fichier LD.CSV, copie l'intégralité dans l'onglet PF, ferme le fichier et revient sur l'accueil.

Tout fonctionne sauf que les chemins sont en dur. J'ai essayé via le net de trouver les fonctions chemin relatif car ce fichier est partagé et chaque utilisateur va l'utiliser sur un poste entreprise avec un User. Je suis tombé sur la solution de RIC (https://forum.excel-pratique.com/viewtopic.php?t=112782) mais cela ne fonctionne que sur un import (pas l'ensemble).

Malgré plusieurs essais en modifiant les paramètres, cela ne fonctionne pas.

J'ai pu voir la fonction "Environ"usrename" et j'ai essayé de l'intégrer dans cette macro mais cela bloque.

Si quelqu'un avait une solution, je lui en serait très reconnaissant

    
    Workbooks.Open ("C:\Users\" & Environ("Username") & "\Desktop\PF.csv"), Local:=True
    Range("A1:V213").Select
    Selection.Copy
    Windows("CPIT.xlsm").Activate
    Sheets("PF").Select
    Cells.Select
    ActiveSheet.Paste
    Workbooks.Open Filename:="C:\Users\" & Environ("username") & "\Desktop\LD.csv", Local:=True
    Range("A1:V78").Select
    Selection.Copy
    Windows("CPIT.xlsm").Activate
    Sheets("LD").Select
    Cells.Select
    ActiveSheet.Paste
    Windows("PF.csv").Activate
    Application.CutCopyMode = False
    ActiveWindow.Close
    Windows("LD.csv").Activate
    Application.CutCopyMode = False
    ActiveWindow.Close
    Sheets("Accueil").Select

Éventuellement s'il était possible d'ouvrir un boite de l'explorateur pour choisir le fichier sur le bureau de l'utilisateur en filtrant par type (csv) et éventuellement une partie du nom (*LD*.csv par exemple) ce serait l’idéal. J'ai trouvé quelques fonctions mais je n'ai pas réussi à mettre en place.

Cordialement

Sebastien

Bonjour,

peut être en modifiant ainsi :

   
 Dim USER as string
 USER=Environ("username")

Workbooks.Open Filename="C:\Users\"&USER&"\Desktop\PF.csv"
Range("A1:V213").Select
    Selection.Copy
    Windows("CPIT.xlsm").Activate
    Sheets("PF").Select
    Cells.Select
    ActiveSheet.Paste
Workbooks.Open Filename:="C:\Users\" & USER& "\Desktop\LD.csv"
Range("A1:V78").Select
    Selection.Copy
    Windows("CPIT.xlsm").Activate
    Sheets("LD").Select
    Cells.Select
    ActiveSheet.Paste
    Windows("PF.csv").Activate
    Application.CutCopyMode = False
    ActiveWindow.Close
    Windows("LD.csv").Activate
    Application.CutCopyMode = False
    ActiveWindow.Close
    Sheets("Accueil").Select

Bonsoir,

Essayer

   Workbooks.Open Filename:=CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\PF.csv"
   Workbooks.Open Filename:=CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\LD.csv"

@thev et @Xmenpl un grand merci, ça fonctionne parfaitement !

Rechercher des sujets similaires à "macro enchainee chemin relatif"