Incrémentation automatique d'un numéro

Bonjour,

Je voudrais créer un numéro de facture en automatique avec ma macro archiver facture

sauf que dans mon historique de facture mais il me mets toujours 1

Je vous joint le fichier

merci de votre aide

30test-facture.xlsx (109.29 Ko)

Bonjour,

Tu nous parles d'une macro, mais il n'y en a aucune dans le fichier que tu nous as transmis, difficile de la modifier/corriger...

oui je viens de voir ça et mon fichier est trop volumineux rrr

Sheets("historique_facture").Range("C" & Ligne).Value = Sheets("historique_facture").Range("C" & Ligne).End(xlDown).Value + 1

voila ce que j'ai mis dans ma macro

' archiver_facture Macro

'

'ecrire sur la ligne suivante

Ligne = Sheets("historique_facture").Range("A2").End(xlDown).Row + 1

'numero reservation

Sheets("historique_facture").Range("A" & Ligne).Value = ActiveSheet.Range("L1").Value

Sheets("historique_facture").Range("B" & Ligne).Value = ActiveSheet.Range("M1").Value

'date de resa

Sheets("historique_facture").Range("D" & Ligne).Value = ActiveSheet.Range("L2").Value

'n° client

Sheets("historique_facture").Range("E" & Ligne).Value = ActiveSheet.Range("I1").Value

'client

Sheets("historique_facture").Range("F" & Ligne).Value = ActiveSheet.Range("H3").Value

'date d'arrivée

Sheets("historique_facture").Range("G" & Ligne).Value = ActiveSheet.Range("D18:F18").Value

'date départ

Sheets("historique_facture").Range("H" & Ligne).Value = ActiveSheet.Range("D19:F19").Value

'majeur

Sheets("historique_facture").Range("I" & Ligne).Value = ActiveSheet.Range("G21").Value

'mineur

Sheets("historique_facture").Range("J" & Ligne).Value = ActiveSheet.Range("G22").Value

'total taxe séjour

Sheets("historique_facture").Range("K" & Ligne).Value = ActiveSheet.Range("M33").Value

'Acompte 1

Sheets("historique_facture").Range("L" & Ligne).Value = ActiveSheet.Range("M38").Value

'Acompte 2

Sheets("historique_facture").Range("M" & Ligne).Value = ActiveSheet.Range("M40").Value

'Acompte 3

Sheets("historique_facture").Range("N" & Ligne).Value = ActiveSheet.Range("M42").Value

'Acompte 4

Sheets("historique_facture").Range("O" & Ligne).Value = ActiveSheet.Range("M44").Value

'Acompte 5

Sheets("historique_facture").Range("P" & Ligne).Value = ActiveSheet.Range("M46").Value

'Acompte 6

Sheets("historique_facture").Range("Q" & Ligne).Value = ActiveSheet.Range("M48").Value

'Acompte 7

Sheets("historique_facture").Range("R" & Ligne).Value = ActiveSheet.Range("M50").Value

'Total séjour

Sheets("historique_facture").Range("S" & Ligne).Value = ActiveSheet.Range("M35").Value

'n° facture automatique

Sheets("historique_facture").Range("C" & Ligne).Value = Sheets("historique_facture").Range("C" & Ligne).End(xlDown).Value + 1

voila la macro entiere

Re

Je te retourne le fichier avec une macro qui incrémente le numéro de facture:

56incrementation.xlsm (98.25 Ko)

à mon avis, ton soucis vient de :

Sheets("historique_facture").Range("C" & Ligne).End(xlDown).Value + 1

Si ligne est la dernière ligne de ton tableau, tu vas à la dernière ligne du classeur, qui est vide, ou égale à 0 si convertie en nombre, du coup quand tu fais +1, ça donne toujours 0+1 = 1 en numéro de facture.

Je vous remercie beaucoup mais lorsque je l'ajoute a ma macro bin ça marche pas lol

alors je suis vraiment pas une pro du vba mais je veux vraiment automatiser mon fichier

pourriez vous me corriger ma macro :

' archiver_facture Macro

'

'ecrire sur la ligne suivante

Ligne = Sheets("historique_facture").Range("A2").End(xlDown).Row + 1

'numero reservation

Sheets("historique_facture").Range("A" & Ligne).Value = ActiveSheet.Range("L1").Value

Sheets("historique_facture").Range("B" & Ligne).Value = ActiveSheet.Range("M1").Value

'date de resa

Sheets("historique_facture").Range("D" & Ligne).Value = ActiveSheet.Range("L2").Value

'n° client

Sheets("historique_facture").Range("E" & Ligne).Value = ActiveSheet.Range("I1").Value

'client

Sheets("historique_facture").Range("F" & Ligne).Value = ActiveSheet.Range("H3").Value

'date d'arrivée

Sheets("historique_facture").Range("G" & Ligne).Value = ActiveSheet.Range("D18:F18").Value

'date départ

Sheets("historique_facture").Range("H" & Ligne).Value = ActiveSheet.Range("D19:F19").Value

'majeur

Sheets("historique_facture").Range("I" & Ligne).Value = ActiveSheet.Range("G21").Value

'mineur

Sheets("historique_facture").Range("J" & Ligne).Value = ActiveSheet.Range("G22").Value

'total taxe séjour

Sheets("historique_facture").Range("K" & Ligne).Value = ActiveSheet.Range("M33").Value

'Acompte 1

Sheets("historique_facture").Range("L" & Ligne).Value = ActiveSheet.Range("M38").Value

'Acompte 2

Sheets("historique_facture").Range("M" & Ligne).Value = ActiveSheet.Range("M40").Value

'Acompte 3

Sheets("historique_facture").Range("N" & Ligne).Value = ActiveSheet.Range("M42").Value

'Acompte 4

Sheets("historique_facture").Range("O" & Ligne).Value = ActiveSheet.Range("M44").Value

'Acompte 5

Sheets("historique_facture").Range("P" & Ligne).Value = ActiveSheet.Range("M46").Value

'Acompte 6

Sheets("historique_facture").Range("Q" & Ligne).Value = ActiveSheet.Range("M48").Value

'Acompte 7

Sheets("historique_facture").Range("R" & Ligne).Value = ActiveSheet.Range("M50").Value

'Total séjour

Sheets("historique_facture").Range("S" & Ligne).Value = ActiveSheet.Range("M35").Value

'n° facture automatique

Ligne = Range("c" & Rows.Count).End(xlUp).Row + 1

With Sheets("historique_facture")

.Range("C" & Ligne) = WorksheetFunction.Max(.Range("C2", "c" & Ligne - 1)) + 1

End With

Re, je fais un essai:

Sub test()
With Sheets("historique_facture")
    Ligne = .Range("A2").End(xlDown).Row + 1
    .Range("A" & Ligne) = Range("L1")
    .Range("B" & Ligne) = Range("M1")
    .Range("C" & Ligne) = WorksheetFunction.Max(.Range("C2", "c" & Ligne - 1)) + 1
    .Range("D" & Ligne) = Range("L2")
    .Range("E" & Ligne) = Range("I1")
    .Range("F" & Ligne) = Range("H3")
    .Range("G" & Ligne) = Range("D18:F18")
    .Range("H" & Ligne) = Range("D19:F19")
    .Range("I" & Ligne) = Range("G21")
    .Range("J" & Ligne) = Range("G22")
    .Range("K" & Ligne) = Range("M33")
    .Range("L" & Ligne) = Range("M38")
    .Range("M" & Ligne) = Range("M40")
    .Range("N" & Ligne) = Range("M42")
    .Range("O" & Ligne) = Range("M44")
    .Range("P" & Ligne) = Range("M46")
    .Range("Q" & Ligne) = Range("M48")
    .Range("R" & Ligne) = Range("M50")
    .Range("S" & Ligne) = Range("M35")
End With
End Sub

Ps: j'ai enlevé tout ce qui ne servait à rien dans ton programme.

MAGNIFIQUE !! ça marche je suis trop contente vraiment un grand grand merci

Super alors

Par contre, tu es sûre que les lignes :

    .Range("G" & Ligne) = Range("D18:F18")
    .Range("H" & Ligne) = Range("D19:F19")

fonctionnent?

Parce que je ne suis pas sûr que ça te mettes ce que tu souhaites vraiment peux tu vérifier?

Sinon si tout fonctionne :

effectivement je n'ai pas les dates qui s'affichent je viens de le voir

Re,

Je viens de voir pourquoi tu as mis ça, en fait les cellules sont fusionnées, donc tu as dû penser qu'il fallait prendre toutes les cellules pour avoir la valeur, mais ça ne fonctionne pas comme ça, quand plusieurs cellules sont fusionnées, c'est celle tout en haut à gauche qui garde la valeur, il faut donc écrire:

    .Range("G" & Ligne) = Range("D18")
    .Range("H" & Ligne) = Range("D19")

Je te joins un exemple pour illustrer ce que j'ai dis sur la fusion de cellules:

ok j'ai corrigé et ça fonctionne merci beaucoup de votre aide !

Rechercher des sujets similaires à "incrementation automatique numero"