Combinaison de macros

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ninanani

XLDnaute Occasionnel
J ai deux macros: la premiere pour sauvegarder une feuille seule d un fichier complet. Et la seconde pour qu a chaque nouvelle feuille je puisse inserer un numero de facture qui augmente automatiquement.

Premiere matrice:
Sub Save_Sheet()

Dim strNom As Variant

strNom = Application.GetSaveAsFilename(ActiveSheet.Name, "Invoices (*.xls),*.xls")

If strNom <> False Then
ActiveSheet.Copy
ActiveWorkbook.SaveAs strNom
ActiveWorkbook.Close
End If

End Sub


Deuxieme matrice:

Sub IncrementationFactureNumero()
Dim NumberInvoiceNumber As Integer
Dim RangeInvoiceNumber As Range
Dim StringInvoiceNumber As String

Set RangeInvoiceNumber = Sheets("Invoices").Range("G14")
StringInvoiceNumber = ""
With RangeInvoiceNumber
If .Value = "" Then
.Value = StringInvoiceNumber & " " & Format(0, "0")
End If
End With
NumberInvoiceNumber = Val(Mid(RangeInvoiceNumber, Len(StringInvoiceNumber) + 1))
NumberInvoiceNumber = NumberInvoiceNumber + 1
RangeInvoiceNumber = StringInvoiceNumber & " " & Format(NumberInvoiceNumber, "0000")
End Sub


J aimerais savoir s il etait possible de combiner les deux pour que a chaque sauvegarde, lorsque j ai une nouvelle feuille, le numero augmente automatiquement, car pour le moment c est manuel. Il me faut appliquer la matrice du numero a chaque fois pour augmenter le numero (et j ai peur que l on oublie defois et que cela fausse toutes nos donnees)

Merci a vous!😱
 
Re : Combinaison de macros

Bonjour Ninanani 🙂,
Un petit bonjour en début de message ne coute rien 😱.
Peut-être que la procédure
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
End Sub
dans ThisWorkbook pourrait te permettre d'automatiser ta deuxième macro.
Bonne journée 😎
 
Re : Combinaison de macros

Re Ninanani 🙂,
C'est ce qu'on appelle une macro événementielle. Elle va donc être appelée au moment de ta sauvegarde. Tu peux essayer de coller directement ton code dedans, soit
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim NumberInvoiceNumber As Integer
Dim RangeInvoiceNumber As Range
Dim StringInvoiceNumber As String
Set RangeInvoiceNumber = Sheets("Invoices").Range("G14")
StringInvoiceNumber = ""
With RangeInvoiceNumber
If .Value = "" Then
.Value = StringInvoiceNumber & " " & Format(0, "0")
End If
End With
NumberInvoiceNumber = Val(Mid(RangeInvoiceNumber, Len(StringInvoiceNumber) + 1))
NumberInvoiceNumber = NumberInvoiceNumber + 1
RangeInvoiceNumber = StringInvoiceNumber & " " & Format(NumberInvoiceNumber, "0000")
End Sub
Bonne journée 😎
 
Re : Combinaison de macros

Re 🙂,
Logiquement, c'est quand tu vas lancer ta macro de sauvegarde et qu'il va tomber sur
Code:
ActiveWorkbook.SaveAs strNom
qu'il va exécuter avant de sauvegarder ton code d'incrémentation.
Bonne journée 😎
 
Re : Combinaison de macros

Re,

Merci pour ton aide, mais j ai toujours un probleme.

J ai donc maintenant deux macros, celle de sauvegarde et celle que tu m a donne.

Lorsque je lance ma sauvegarde, seule la matrice de sauvegarde fonctionne, mais le numero sur la feuille reste inchange.
Peut etre fallait il combiner les deux macros sur une meme, je n ai pas tres bien compris.

Merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
177
Réponses
10
Affichages
281
Réponses
2
Affichages
153
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
Réponses
8
Affichages
469
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
7
Affichages
164
Retour