Enregistrement de fichier vba avec variable

Résolu
Bonjour,

je souhiaterai coder un enregistrement automatique de fichier via vba pour excel à un endroit précis de mon ordinateur et lui donner comme nom final : BRP( partie fixe qui ne changera jamais) et une variable qu'il peut trouver en j2 de mon fichier généré.
La partie du code qui ne va pas est la suivante:

  ActiveWorkbook.SaveAs Filename:= _
        "c:\GESTION\"BRP"\" & Range("j2").value & ".xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False


en effet quand je lance la macro, une alerte me signifie directement:

"erreur de compilation: erreur de syntaxe"

etant un plus que débutant en la matiere de vba je me permets de vous demander votre aide. J'ai bien essayé de regarder sur le net si quelqu'un avait déjà posé la question mais n'ai pas réussi à le coder avec le résultat de mes recherches.

Merci par avance de votre aide.

5 réponses

  1. Bonjour Lupin,

    merci de ton aide mais cette fois-ci j'ai un message qui dit:

    " Erreur d'execution '1004':
    La méthode 'SaveAs' de l'objet'_Workbook' a échoué"

    Cdt,

    Vincent
    2
    1. re:

      en plaçant un point d'arrêt sur la ligne :

      ActiveWorkbooks.SaveAs ...

      Place ton curseur sur la variable NomFichier

      Son contenu est-il cohérent ?

      tu pourrais être aussi plus explicite :

      NomFichier = "C:\GESTION\BRP\" & Sheets("Feuil1").Range("j2").Value & ".xls"

      Cdt

      Lupin
      0
  2. Contributeur
    Bonjour,

    ce sont les guillemets dans ta déclaration autour de BRP qui font tout foirer !

    Essaie avec
     ActiveWorkbook.SaveAs Filename:= _ 
            "c:\GESTION\BRP" & Range("j2").value & ".xls", _ 
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ 
            ReadOnlyRecommended:=False, CreateBackup:=False

    Cordialement.
    Ce mec la n'était pas une lumière, car il était niais.
    1
    1. ok merci beaucoup pour le coupe de main ça marche du tonnerre!
      bonne journée!!
      0
      1. excuse moi d'y revenir mais j'ai été un peu rapide en te disant que ca marche du tonnerre, puisque le résultat est que la variable en j2 n'apparait pas dans le nom du fichier enregistré.

        Donc je n'ai plus de message d'erreur sur la syntaxe mais le nom de mon fichier n'est pas le bon...

        Merci quand même!
        0
        1. Bonjour,

          Diviser pour règner :

          Option Explicit
          
          Sub Sauvegarde()
          
              Dim NomFichier As String
              
              NomFichier = "C:\GESTION\BRP\" & Range("j2").Value & ".xls"
          
              ActiveWorkbook.SaveAs Filename:=NomFichier, _
                  FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                  ReadOnlyRecommended:=False, CreateBackup:=False
          
          End Sub
          


          passer par une variable, n'a jamais fait de mal :-)

          Cdt

          Lupin
          0