Archivage facture

Bonjour,

Sur le code suivant j ai erreur de compiltation erreur de syntaxe Sur la ligne .SaveAs ......

Pouvez vous m'aider

Sub Archivage()
'Déclaration des variables
Dim NomDossier As String
Dim CheminDossier As String
'Nom de dossier
NomDossier = Application.InputBox("Dossier Enregistrement :", "Dossier")
CheminDossier = "D:\Mes documents\Excel\Facture\" & NomDossier & "\"

Application.DisplayAlerts = False 'On désactive les messages d'alerte

If Range("F9").Value = "" Then 'On test que le numéro de facture à bien été saisie
MsgBox "Vous n'avez pas saisie le N° de facture ." & VbCrLf & " Meci de faire le nécessaire.",vbOkOnly + vbInformation,"SauveRange("F9").Select

Else ' SINON

With ActiveWorkbook ' Enregistrement du classeur portant le N° de la cellule F9
.SaveAs Filename:=CheminDossier & "\" & Range ("F9"), FileFormatlOpenXMLWorkbook
End With
' On affiche un message informant que le fichier a bien été sauvegardé.
MsgBox("Fiche Renseignement").Shapes("Bouton").Delete

En If

Application.DisplayAlerts = True 'On réactive la gestion des alertes.

End Sub

En vous remerciant

ORGUYRINE

Configuration: Windows / Firefox 67.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. encore moi

    le code d'erreur est sur la ligne .SaveAS ....
    1. Contributeur
      Bonjour,

      il faut que tu crées ton dossier voir ceci:

      https://excel-malin.com/codes-sources-vba/vba-verifier-si-dossier-existe/

      voilà le code:

      Option Explicit
      'Déclaration des variables
      Dim NomDossier As String
      Dim CheminDossier As String
      Private Sub CommandButton1_Click()
      Archivage
      End Sub
      Sub Archivage()
      'Nom de dossier
      NomDossier = Application.InputBox("Dossier Enregistrement :", "Dossier")
      CheminDossier = "D:\Mes documents\Excel\Facture\" & NomDossier & "\"
      TesteSiDossierExiste
      Application.DisplayAlerts = False 'On désactive les messages d'alerte
      If Range("F9").Value = "" Then 'On test que le numéro de facture à bien été saisie
      MsgBox "Vous n'avez pas saisie le N° de facture ." & vbCrLf & " Meci de faire le nécessaire.", vbCritical, "Sauvegarde"
      Else ' SINON
      With ActiveWorkbook ' Enregistrement du classeur portant le N° de la cellule F9
      .SaveAs Filename:=CheminDossier & Range("F9").Value & ".xlsx", _
              FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
      End With
      ' On affiche un message informant que le fichier a bien été sauvegardé.
      MsgBox "Fichier sauvegardé", vbInformation, "Enregistrement"
      End If
      Application.DisplayAlerts = True 'On réactive la gestion des alertes.
      End Sub
      'https://excel-malin.com/codes-sources-vba/vba-verifier-si-dossier-existe/
      Sub TesteSiDossierExiste()
      'par Excel-Malin.com ( https://excel-malin.com )
      Dim MonDossier As String
      MonDossier = CheminDossier
      If DossierExiste(MonDossier) = True Then
              MsgBox "Le dossier existe..."
          Else
             MkDir (CheminDossier) ' on crée le dossier
          End If
      End Sub
      Public Function DossierExiste(MonDossier As String)
      'par Excel-Malin.com ( https://excel-malin.com )
       If Len(Dir(MonDossier, vbDirectory)) > 0 Then
            DossierExiste = True
         Else
            DossierExiste = False
         End If
      End Function
      


      voilà
      1. Bonjour

        Je vous remercie de votre réactivité à m'aider sur le code .Une question dans l'archivage garde t-il les formules .

        en vous remerciant

        orguyrine
        1. Contributeur
          Oui suivant le code donné, il enregistre le classeur tel qu'il est!

          @+
        2. Bonjour

          Je vous remercie encore de votre réponse aussi rapide

          Une autre question : Puis je modifier dans le code xlsx par xlsm pour sauvegarder aussi les macros

          En vous remerciant

          orguyrine
        3. Contributeur
          Oui, comme ceci:

          With ActiveWorkbook ' Enregistrement du classeur portant le N° de la cellule F9
          .SaveAs Filename:=CheminDossier & Range("F9").Value & ".xlsm", FileFormat:= _
                  xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
          End With


          @+