XL 2010 Historique factures et incrémentation numéro croissant

  • Initiateur de la discussion Initiateur de la discussion Orson83
  • Date de début Date de début

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 !

Orson83

XLDnaute Impliqué
Bonjour la communauté,
J'ai une macro qui est censée sauvegarder l'historique des factures dans une feuille dédiée et incrémenter un numéro de facture croissant. Le problème, c'est qu'elle ne fonctionne pas 😳
Merci pour votre aide.
Je joins un fichier exemple dans ce post.
Orson83
 

Pièces jointes

Solution
Re

@Orson83
De ce je comprends le code VBA de ton classeur, ligne est une variable qui permet d'identifier sur quelle ligne on doit recopier les données issues de la feuille Facture modèle
Le problème quand on utilise xlDown, c'est que si la colonne est vide, on arrive tout en bas de la feuille.

Pour la numérotation, que penses-tu de mon exemple ?
(On peut l'associer au bouton nouvelle facture)

Donc en mixant les deux codes, voila ce que j'obtiens
VB:
Sub Archiver_TER()
Dim ligne As Long
nFact = Nouveau_NUM("FACT_")
Sheets("Facture modèle").[G3] = nFact
With Sheets("Historique factures")
ligne = .Cells(Rows.Count, "B").End(xlUp).Row + 1
.Range("B" & ligne).Value = Sheets("Facture modèle").Range("G3").Value
.Range("C"...
Bonjour à tous

Perso pour le N° de facture je verrais comme ceci :

VB:
Sub NumFact()
Dim NumFact$, DebNumFact$

DebNumFact = "F" & Format(Date, "yyyy-mm-")                                 'Exemple ==> F2023-06-    Année 2023 Mois 06 ==> Facture
NumFact = Sheets("Facture modèle").[M1]                                     'Feuille et Cellule ou est stockée le dernier N° de facture à adapter

If Left(NumFact, 9) = DebNumFact$ Then
   NumFact = DebNumFact & Format(Val(Right(NumFact, 2) + 1), "00")          'limité à 100 factures/mois (Modifiable si besoin)
Else
   NumFact = CStr(DebNumFact & "01")                                        'limité à 100 factures/mois (Modifiable si besoin)
End If
Sheets("Facture modèle").[M1] = NumFact                                     'Feuille et Cellule ou est stockée le dernier N° de facture
Sheets("Facture modèle").[G3] = NumFact                                     'Feuille et Cellule de la facture contenant le N° de facture à adapter
End Sub

Et il suffit dans ton code de mettre NumFact pour que la facture s'incrémente .....
Et tout se gère tout seul...

1687294350347.png


@Phil69970
 
Bonsoir à tous,
Merci d'avoir résolu mon problème de numéro de facture et de macro 👍...
... particulièrement à @Staple1600 qui a résolu ce problème, mais aussi à
@TooFatBoy, @laurent950 et @Phil69970 (j'espère n'oublier personne 😉) qui ont contribué.
Je joins mon fichier corrigé qui pourra servir à d'autres visiteurs XLD.

Je continue les améliorations de mon fichier XL de location de matériel avec d'autres threads en cours 😵
Bonne soirée à tous 😉
 

Pièces jointes

Re

Juste pour varier les plaisirs syntaxiques en VBA 😉
(en théorie, cette version light fait la même chose, les formats en moins)
Code:
Sub Archiver_CommeJAime()
Dim ligne As Long, vVals
nFact = Nouveau_NUM("FACT_")
Sheets("Facture modèle").[G3] = nFact
With Sheets("Facture modèle")
    vVals = Array(.[G3], .[F49], .[F10], .[F5], .[F6], .[F8], .[E13], .[E14], .[E15], .[G37], .[G38], .[G39])
End With
With Sheets("Historique factures")
ligne = .Cells(Rows.Count, "B").End(xlUp).Row + 1
.Cells(ligne, 2).Resize(, 12).Value = vVals
End With
Sheets("Facture modèle").Range("J5").ClearContents
End Sub
NB: On aura remarqué ... le subtil jeu de mots dans le nom de la macro 😉
 
Re

Juste pour varier les plaisirs syntaxiques en VBA 😉
(en théorie, cette version light fait la même chose, les formats en moins)
Code:
Sub Archiver_CommeJAime()
Dim ligne As Long, vVals
nFact = Nouveau_NUM("FACT_")
Sheets("Facture modèle").[G3] = nFact
With Sheets("Facture modèle")
    vVals = Array(.[G3], .[F49], .[F10], .[F5], .[F6], .[F8], .[E13], .[E14], .[E15], .[G37], .[G38], .[G39])
End With
With Sheets("Historique factures")
ligne = .Cells(Rows.Count, "B").End(xlUp).Row + 1
.Cells(ligne, 2).Resize(, 12).Value = vVals
End With
Sheets("Facture modèle").Range("J5").ClearContents
End Sub
NB: On aura remarqué ... le subtil jeu de mots dans le nom de la macro 😉
@Staple1600,
Merci pour cette version light 😉
et le jeu de mots 🙂
 
- 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
11
Affichages
537
Retour