Bonjour,
Ci-joint une réponse d'une personne dans le forume de discussion Excel.
----------------------
Ci-dessous une solution qui suppose que ton modèle ("Fact.xlt" dans le code
ci-dessous) contienne une cellule nommée (Insertion\Nom\Définir) "numFact", cellule
où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle ("Fact1.xls"), la cellule "numFact"
est incrémentée et le classeur est réenregistré comme modèle "Fact.xlt", écrasant le
précédent et sauvegardant ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été enregistré, on considère que
le numéro de facture n'a pas servi. Le modèle est réouvert et la cellule "numFact"
est décrémentée pour proposer à la création du prochain classeur basé sur le modèle
un numéro de facture "cohérent" avec les précédentes factures enregistrées.
Private Sub Workbook_Open()
If ActiveWorkbook.Path = "" Then
[numFact] = [numFact] + 1
ActiveWorkbook.Saved = True
ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "Fact.xls")
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
chemXls = Application.TemplatesPath & "Fact.xls"
If ActiveWorkbook.Path = "" Then
Set wbk = Workbooks.Open(chemXls)
With wbk.ActiveSheet
.Range("NumFact") = .Range("NumFact") - 1
End With
wbk.Close True
End If
End Sub
---------------------
Comme je suis un debutant en VBA...J'ai essayé de créer 'ci joint model - fichier' et copier les codes ci-dessous sous Visual Basic Editor mais comment compiler / executer comme quoi à l'ouverture du fichier model la facture sera incrèmentée une fois sauvegardée. Please, pourriez-vous jeter un coup d'oeil sur mon model et me donner votre réponse étape par étape...Mille Merci+++
kjbara_2007@yahoo.fr
Bien cordialement,
Kamal
Ci-joint une réponse d'une personne dans le forume de discussion Excel.
----------------------
Ci-dessous une solution qui suppose que ton modèle ("Fact.xlt" dans le code
ci-dessous) contienne une cellule nommée (Insertion\Nom\Définir) "numFact", cellule
où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle ("Fact1.xls"), la cellule "numFact"
est incrémentée et le classeur est réenregistré comme modèle "Fact.xlt", écrasant le
précédent et sauvegardant ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été enregistré, on considère que
le numéro de facture n'a pas servi. Le modèle est réouvert et la cellule "numFact"
est décrémentée pour proposer à la création du prochain classeur basé sur le modèle
un numéro de facture "cohérent" avec les précédentes factures enregistrées.
Private Sub Workbook_Open()
If ActiveWorkbook.Path = "" Then
[numFact] = [numFact] + 1
ActiveWorkbook.Saved = True
ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "Fact.xls")
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
chemXls = Application.TemplatesPath & "Fact.xls"
If ActiveWorkbook.Path = "" Then
Set wbk = Workbooks.Open(chemXls)
With wbk.ActiveSheet
.Range("NumFact") = .Range("NumFact") - 1
End With
wbk.Close True
End If
End Sub
---------------------
Comme je suis un debutant en VBA...J'ai essayé de créer 'ci joint model - fichier' et copier les codes ci-dessous sous Visual Basic Editor mais comment compiler / executer comme quoi à l'ouverture du fichier model la facture sera incrèmentée une fois sauvegardée. Please, pourriez-vous jeter un coup d'oeil sur mon model et me donner votre réponse étape par étape...Mille Merci+++
kjbara_2007@yahoo.fr
Bien cordialement,
Kamal