Ma macro pour sauver un fichier dont on rentre le numéro sur invite (4 caractères), sous le bom BC00+champ saisi ; le champ saisi (numéro de commande en l'occureence) est également rappelé sur le formulaire auquel cette macro est associée :
Sub SAUVE_COMMANDE()
'
' SAUVE_COMMANDE Macro
' Macro enregistrée le 05/04/2002 et 28/8/06 par XXX
' demande le n° de commande pour le concaténer ds le nom de fichier
' pb : si le fichier existe déjà il ne dit rien, et il écrase l'existant !
' confirmé par le support Microsoft, il faut tester avant...
' http://support.microsoft.com/default.aspx?scid=kb%3Bfr%3B185641
' à travailler pour numéro auto : http://support.microsoft.com/default.aspx?scid=kb;fr;212686
' si le document ne contient pas de champ (formulaire) on sort
If ActiveDocument.FormFields.Count = 0 Then
End
End If
' si erreur on le dit et on décrit
On Error GoTo Errhandler
Dim NumeroDeCommande As Integer
Dim MessageExiste As String
choix:
Message = "Entrez le numéro de commande sur 4 chiffres maxi (suivant chrono classeur):"
titre = "Numéro chronologique du Bon de Commande"
NumeroDeCommande = InputBox(Message, titre)
' Le numéro de commande est inséré dans le premier champ du bon de commande, pour garantir la cohérence
ActiveDocument.FormFields("ref").Result = NumeroDeCommande
' Initialisation du message de fichier existant
MessageExiste = "Le fichier BC00" & NumeroDeCommande & " existe déjà. Voulez vous le remplacer ?"
ChangeFileOpenDirectory "P:\Administratif\1-BONS_DE_COMMANDE\"
' Check if the file exists.
If Dir("BC00" & NumeroDeCommande & ".doc") = "" Then
' If file does not exist, save without prompting.
ActiveDocument.SaveAs FileName:="BC00" & NumeroDeCommande & ".doc", FileFormat:=wdFormatDocument
Else
' If file does exist, prompt with warning message.
' Check value of button clicked in message box.
Select Case MsgBox(MessageExiste, vbYesNoCancel + vbExclamation)
Case vbYes
' If Yes was chosen, save and overwrite existing file.
ActiveDocument.SaveAs FileName:="BC00" & NumeroDeCommande & ".doc", FileFormat:=wdFormatDocument
Case vbNo
' si réponse non, on redemande un numéro
GoTo choix
Case Else
' If Cancel was chosen, do nothing.
End Select
End If
Errhandler:
If Err <> 0 Then
MsgBox Err.Description
End If
End Sub