Problème enregistrement dans un autre dossier

Bonjour,

J'ai aujourd'hui besoin de votre aide concernant un code VBA utilisé pour l'enregistrement d'un fichier excel dans un autre dossier, tout en le renommant, lorsque l'on appuie sur un bouton disponible sur la fiche.

J'ai pu trouver une possibilité de code en glanant sur internet, cependant lorsque je tente de le mettre en place, j'ai une erreur d'exécution 1004 "La méthode SaveAs de l'objet Workbook a échoué"

Je souhaite en fait que ce fichier soit copier sur un autre dossier, partagé, en le renommant selon des variables apparaissant sur la feuille excel, préalablement remplie par l'utilisateur.

Voici mon code :

Dim nom As String
Dim prenom As String
Dim datecrea As String
Dim etat As String

Sub Sauvegarde()

Dim NomFichier As String

NomFichier = "\\srv-pierre\DGAS-PRS\1-SBSL\FICHES MOBILITES\TESTS\" & etat & nom & prenom & datecrea & ".xlsm"

ActiveWorkbook.SaveAs Filename:=NomFichier, FileFormat:=52

End Sub

Je précise que le lecteur est un emplacement réseau, et que c'est l'ordinateur qui m'a donné ce chemin pour y accéder...

Merci par avance pour votre aide !

Bonjour et bienvenue sur le forum

Je pense que l'erreur vient de la valeur de NomFichier

Que représentent exactement : "etat", "prenom" et " datecrea" ? des dossiers ? des variables ? du texte ?

Bye !

ce sont des variables, qui sont tous du texte hormis la date qui est la date du jour de création de la copie.

bonsoir Fusamasa, gmb et le forum

si ce sont des variables les noms doIvent servir a quelque chose, une variable seule ne sert a rien, voit l'exemple ci dessous, qui enregistre en .pdf et en .xlsx un documment dont tu doit changer les noms des chemins

    Private Sub CommandButton1_Click()
    Dim NomFicXL As String, CheminXL As String
        Dim NomFicPDF As String, CheminPDF As String
        Dim DLig As Long
        Dim shp As Shape
        Dim Sht As Worksheet

        Set Sht = ThisWorkbook.Sheets("Feuil1")

        'sauvegarde a partir de la dernière ligne écrite
        DLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
        Dim NomDeFichier As String
        'donner le nom au fichier
        NomDeFichier = Sht.Range("B11").Value & " - " & Sht.Range("D10").Value
        NomFicXL = NomDeFichier & ".xlsx"
        NomFicPDF = NomDeFichier & ".pdf"
        'pensez a changer le chemin et créer les dossiers
        CheminPDF = "D:\essai perso\facturePDF" & "\"
        CheminXL = "D:\essai perso\Facturexlsx" & "\"

        ' Sauvegarder le classeur actif dans le chemin et le nom determiné
     Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=CheminXL & NomFicXL, FileFormat:=xlOpenXMLWorkbook, _
                              Password:="", WriteResPassword:="", _
                              ReadOnlyRecommended:=False, CreateBackup:=False

        ' Exporter en PDF
        ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminPDF & NomFicPDF, Quality:= _
                                                       xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                                       OpenAfterPublish:=False

        MsgBox "Votre sauvegarde porte la référence : " & " " & NomFicXL & vbCrLf _
             & "Le fichier PDF à été créé sous le nom : " & NomFicPDF

      Application.ScreenUpdating = False
      Application.EnableEvents = False
       'fermer et ré-ouvrir le classeur source, pas trouvé autre solution pour éviter _
       que le classeur source garde le nom de la sauvegarde
         Workbooks.Open Filename:="C:\Users\Pascal\Desktop\test pdf et xlsx"
            ThisWorkbook.Close False

     Application.DisplayAlerts = True

      Application.ScreenUpdating = True
      Application.EnableEvents = True
    End Sub

Bonjour,

Je suis désolé mais je ne comprends pas ce que tu veux dire.

Mes variables sont des données récupérées dans des cellules sur ma feuille. Je les ai déclarées ainsi car je m en sert dans un autre sub pour d autres choses.

Autant pour moi, je n'avais aperçu qu'une partie du code sur portable hier soir.

Je reviens vers vous dès que j'aurais revu mon code !

Re-Boujour à tous !

J'ai refais mon code en m'inspirant de celui proposé en exemple plus haut, cependant j'ai toujours la même erreur de méthode SaveAs ayant échoué. Je dois vraiment pas être doué je pense :p

Sub Sauvegarde()

        Dim NomFichier As String
        Dim Chemin As String
        Dim Sht As Worksheet

        Set Sht = ThisWorkbook.Sheets("Fiche Mobilité")

           NomFichier = Sht.Range("B5").Value & " - " & Sht.Range("B4").Value & " - " & Sht.Range("D10") & "" & Sht.Range("B10")

           Chemin = "\\srv-pierre\DGAS-PRS\1-SBSL\SBSL\FICHES MOBILITES\TEST" & "\"

        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=Chemin & NomFichier, FileFormat:=52, _
                              Password:="", WriteResPassword:="", _
                              ReadOnlyRecommended:=False, CreateBackup:=False

            MsgBox "La Fiche Mobilité est enregistrée et les services concernés sont notifiés"

        Application.DisplayAlerts = False
        Application.Quit

End Sub

Re-Bonjour !

J'ai pu trouver réponse à mon problème ! C'était tout simplement le format du contenu d'une de mes cellules qui, lors de l'enregistrement, redirigeait vers un dossier inexistant ( à cause d'un "\" qui n'aurait pas dû se trouver là) :s

Merci d'avoir pris de votre temps pour répondre à une cruche comme moi !

Rechercher des sujets similaires à "probleme enregistrement dossier"