Archivage facture

orguyrine Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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

  1. orguyrine Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
     
    encore moi

    le code d'erreur est sur la ligne .SaveAS ....
    0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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à
    0
  3. orguyrine Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Oui suivant le code donné, il enregistre le classeur tel qu'il est!

      @+
      0
    2. orguyrine Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      0
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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


      @+
      0