Bonjour,
J'ai un formulaire que j'enregistre dans un dossier nommé "Factures" par le nom du client. J'aimerais enregistrer par le nom du client qui se trouve en cellule ("D15") et par le N° de facture qui se trouve en ("N16").
Si joint mon code
Merci d'avance
Cordialement
Max
J'ai un formulaire que j'enregistre dans un dossier nommé "Factures" par le nom du client. J'aimerais enregistrer par le nom du client qui se trouve en cellule ("D15") et par le N° de facture qui se trouve en ("N16").
Si joint mon code
Code:
Private Sub CommandButton1_Click()
'évite les basculements d'écrans
Application.ScreenUpdating = False
' bouton valider
nomfichier = ActiveWorkbook.Name
'ouverture nouveau classeur - 1 feuille - ne fonctionne pas sous XL97
défaut = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Workbooks.Add
Application.SheetsInNewWorkbook = défaut
nomfichier1 = ActiveWorkbook.Name
'copie la feuille
Windows(nomfichier).Activate
Range("Zoneimpression").Copy
'colle dans nouveau fichier
Windows(nomfichier1).Activate
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
'protège les cellules
ActiveSheet.Range(Selection.Address).Locked = True
ActiveSheet.Range("A1").Select
'enregistre sous le répertoire Factures, selon numéro de facture
ChDir (ThisWorkbook.Path & "\Factures")
'choix avec nom par défaut, possibilité de changer le nom ou annuler
fermer = Application.GetSaveAsFilename(ActiveSheet.Range("D15").Value, "Fichiers Excel,*.xls")
'si annulation
If fermer = False Then
Windows(nomfichier1).Activate
ActiveWorkbook.Close Savechanges:=False
Exit Sub
End If
'sinon
ActiveWorkbook.SaveAs Filename:=fermer
ActiveWorkbook.Close
'retour sur modèle
'raz champ Aremplir
Range("Aremplir").ClearContents
'incrément N° commande
num = Format(Val(Right(Range("N16"), 3)) + 1, "000")
Range("N16") = Left(Range("N16"), 8) & num
'sauve modèle avec numéro incrémenté
'ActiveWorkbook.Save
'réautorise les basculements d'écran
Application.ScreenUpdating = True
End Sub
Merci d'avance
Cordialement
Max