Modèle de facture avec incrémentation automatique du numéro

Bonjour,
J’ai suivi toutes les informations liées à votre vidéo mais j’ai une erreur sur la deuxième ligne du code qui ne part pas malgré la méthode que vous avez communiqué.
Je vous joins le fichier.
Pourriez-vous m’aider.
Merci
Karine
Devis 1.xlsm (27,8 Ko)

Bonjour,

Déjà pour commencer, le modèle du Docteur n’est pas un TOP

Pour bien commencer, il faut déclarer ses variables (ligne) qui seront très utiles en cas de « bug » sur des macros plus compliquées et rechercher la dernière ligne vide depuis le bas (xlUp) et non depuis le haut

Dim ligne As Integer
  ligne = Sheets("Historique_devis").Range("A" & Rows.Count).End(xlUp).Row + 1

Sur une instruction avec un RANGE() on place des guillemets sur la/les cellules
soit

 Sheets("Devis").Range("B13").Value

et non

 Sheets("Devis").Range(B13).Value

et tu auras un gros soucis pour ajouter un N° sur le N°de Devis car celui-ci est un STRING (expression) et non un INTEGER (chiffre) —> 20DE010000

Pour la suite avec le bon résultat, donne moi comment tu veut avoir ton N° d Devis
ex: année + Lettres + chiffre

pour le début sans l’ajout du N° de devis, voici déjà un départ qui bloquera sur la dernière ligne

Sub Archive()
  Dim ligne As Integer
  ligne = Sheets("Historique_devis").Range("A" & Rows.Count).End(xlUp).Row + 1
  Sheets("Historique_devis").Range("A" & ligne).Value = Sheets("Devis").Range("B13").Value
  Sheets("Historique_devis").Range("B" & ligne).Value = Sheets("Devis").Range("B14").Value
  Sheets("Historique_devis").Range("C" & ligne).Value = Sheets("Devis").Range("G11").Value
  Sheets("Historique_devis").Range("D" & ligne).Value = Sheets("Devis").Range("G12").Value
  Sheets("Historique_devis").Range("E" & ligne).Value = Sheets("Devis").Range("G13").Value
  Sheets("Historique_devis").Range("F" & ligne).Value = Sheets("Devis").Range("G14").Value
  Sheets("Historique_devis").Range("G" & ligne).Value = Sheets("Devis").Range("J39:K39").Value
  Sheets("Historique_devis").Range("H" & ligne).Value = Sheets("Devis").Range("J40:K40").Value
  Sheets("Historique_devis").Range("I" & ligne).Value = Sheets("Devis").Range("J41:K41").Value
  Sheets("Historique_devis").Range("J" & ligne).Value = Sheets("Devis").Range("J42:K42").Value
  Sheets("Historique_devis").Range("K" & ligne).Value = Sheets("Devis").Range("J43:K43").Value
  
  Sheets("Devis").Range("A22:G37,G11:J11").ClearContents
  Sheets("Devis").Range("B13").Value = Sheets("Devis").Range("B13").Value + 1
End Sub

Bonsoir,
Merci pour tes explications.
J’ai appliquer tes corrections mais j’ai toujours un bug sur la dernière ligne.
De plus par rapport à
et tu auras un gros soucis pour ajouter un N° sur le N°de Devis car celui-ci est un STRING (expression) et non un INTEGER (chiffre) —> 20DE010000
La numérotation des factures est
Année : 20
Lettre : DE
Mois : 01
Numéro : 0001
Merci de ton soutien
Cordialement

Bonjour,

A tester
Devis 1.xlsm (31,1 Ko)

Explications:
Pour remettre le N° de devis à 1, il suffit de remettre le chiffre 1 dans l’onglet « Encodage »
Si le nom du client (cellule G11) ou le mode de règlement (cellule C19) ne sont pas renseignés, un message apparaît.
Le N° de devis s’incrémente de 1 à chaque enregistrement
La liste déroulante des clients est dynamique (càd qu’a chaque fois que tu ajoutes un nouveau client, la liste se met à jour)

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.