Petit probleme en VBA

Résolu

Bonjour,

Etant novicee en VBA, j'ai réalisé ce code :

    CheminCollegue = "P:\7 ACTIVITE METRO\19 - VIGNETTES VP\SAISIE RESULTATS\EMLAE\"
    ClasseurCollegue = CheminCollegue & "MADIC VIGNETTES MILLESIME 2025.xlsm"
    Workbooks.Open ClasseurCollegue
    Workbooks("Analyse et préparation secteur RS.xlsm").Sheets("Suivi vignettes vertes par Tech").Range("B10:E49").Clear
    Workbooks("MADIC VIGNETTES MILLESIME 2025.xlsm").Sheets("Recap Vignettes & Recherche").Range("B7:E46").Copy
    Workbooks("Analyse et préparation secteur RS.xlsm").Sheets("Suivi vignettes vertes par Tech").Activate
    Range("B10").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Workbooks("MADIC VIGNETTES MILLESIME 2025.xlsm").Close savechanges:=False
    Range("A1").Select

Mon problème est que le nom du fichier qui me sert à récup mes données changera chaque année !!

Donc j'ai mis dans ma feuille Sheets("Suivi vignettes vertes par Tech") la cellule B62 qui me donnera le nom en fonction de l'année.

J'ai également mis dans ma feuille Sheets("Suivi vignettes vertes par Tech") la cellule B60 qui me donne le chemin où trouver mon fichier

Mais je bloque pour le retranscrire en language VBA ...

Pouvez vous m'aider svp ?


Windows / Chrome 134.0.0.0

6 réponses

  1. Bonjour,

    Actuellement vous copiez des cellules dans un classeur qui existe.

    Quelle classeur doit etre sauvegarde avec un nouveau nom?

    0
    1. J'ai du m'expliquer, c'est les valeurs que je copie dont la source changera chaque année.

      Aujourd'hui avec le code fait je récupère ce que j'ai besoin, mais en 2026 par exemple je serais obligé de remplacer dans mon code 2025 par 2026 !

      C'est pour cela que dans Sheets("Suivi vignettes vertes par Tech") cellule B62 je génère mon nom de fichier par rapport à l'année

      0
  2. Bonjour,

    Tout a fait Thierry, B2 de quel classeur!

    Pourquoi en xlsm?

    0
    1. Re,

      C'est B62 de mon classeur " Analyse et préparation secteur RS" , feuille " Suivi vignettes vertes par Tech" où je récupère le nom du fichier ( ici c'est "MADIC VIGNETTES MILLESIME 2025.xlsm") ou je vais récupéré mes données pour les mettre dans le premier classeur.

      Le format en .xlsm est que le fichier source contient également des macros

      0
  3. Re,

    Tout s'eclaire, je regarde ca

    0
    1. Re,

      une facon de faire.

      Vu que je n'ai pas fait de repertoire et fichier source, il y aura peut-etre des erreur

      Sub test()
      
          Set WB = ThisWorkbook.Worksheets("Suivi vignettes vertes par Tech")
          CheminCollegue = "P:\7 ACTIVITE METRO\19 - VIGNETTES VP\SAISIE RESULTATS\EMLAE\"
          
          With WB
              .Range("B10:E49").Clear
              Classeur_Annee = .Range("B2")
          End With
          
          ClasseurCollegue = CheminCollegue & Classeur_Annee
          Workbooks.Open ClasseurCollegue
          ActiveWorkbook.Worksheets("Recap Vignettes & Recherche").Range("B7:E46").Copy WB.Range("B10")
          
          Workbooks(Classeur_Annee).Close savechanges:=False
          Range("A1").Select
      End Sub
      

      Faudra penser a changer le nom pour l'annee suivante avant de lancer le code 

      0
      1. Grand merci a vous

        0
    2. Tout fonctionne correctement comme je le voulais , j'ai juste remplacer B2 par B62 

      Encore merci de votre aide

      0