Incrémentation numéro facture(je sais encore...mais bon)
Résolu/Fermé
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
-
21 mai 2020 à 22:00
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 - 2 oct. 2020 à 20:12
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 - 2 oct. 2020 à 20:12
A voir également:
- Incrémentation numéro facture(je sais encore...mais bon)
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- À qui correspond ce numéro suisse ✓ - Forum Mail
- Facture fnac ✓ - Forum Consommation & Internet
- Retrouver une facture a la Fnac, possible ? - Forum Réseaux sociaux
9 réponses
yg_be
Messages postés
23477
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 mars 2025
Ambassadeur
1 568
Modifié le 21 mai 2020 à 22:51
Modifié le 21 mai 2020 à 22:51
bonjour, est-ce toujours en D6?
pourrais-tu expliquer quelle logique fait qu'il faut obtenir F0011 et A0004?
les factures sont-elles triées dans la colonne A, ou est-ce un hasard dans ton exemple?
pourrais-tu expliquer quelle logique fait qu'il faut obtenir F0011 et A0004?
les factures sont-elles triées dans la colonne A, ou est-ce un hasard dans ton exemple?
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
21 mai 2020 à 23:01
21 mai 2020 à 23:01
Bonjour,
Au passage vous récupérer le dernier n° de facture, soit ‘F0010 et A0003’ que vous mettez en ‘D6 ? et vous appliquez ceci pour incrémentée en ‘D6 :
Salutations
Le Pingou
Au passage vous récupérer le dernier n° de facture, soit ‘F0010 et A0003’ que vous mettez en ‘D6 ? et vous appliquez ceci pour incrémentée en ‘D6 :
Sheets("ma feuille").Range("D6").Value = Left(Range("D6"), 1) + Format(CInt(Right(Range("D6"), Len(Range("D6")) - 1)) + 1, "0000")
Salutations
Le Pingou
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
Modifié le 22 mai 2020 à 12:34
Modifié le 22 mai 2020 à 12:34
Bonjour,
Et pourtant ce code fonctionne parfaitement.
Alors mettre une copie de votre code....Merci
Et pourtant ce code fonctionne parfaitement.
Alors mettre une copie de votre code....Merci
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
22 mai 2020 à 12:39
22 mai 2020 à 12:39
Bonjour,
étant vraiment novice en code je n'ai rien à copier malheureusement...mais peut être pourriez vous faire quekque chose avec cette explication??
Sélectionner la plus grande des valeurs se situant en colonne A et commençant par la lettre F et l'incrémenter de 1 et positionner le résultat dans la cellule D6.
merci
étant vraiment novice en code je n'ai rien à copier malheureusement...mais peut être pourriez vous faire quekque chose avec cette explication??
Sélectionner la plus grande des valeurs se situant en colonne A et commençant par la lettre F et l'incrémenter de 1 et positionner le résultat dans la cellule D6.
merci
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
22 mai 2020 à 12:42
22 mai 2020 à 12:42
Bonjour,
Je vous le fait volontiers, mettre votre fichier exemple sur https://www.cjoint.com/ et poster le lien reçu.
Je vous le fait volontiers, mettre votre fichier exemple sur https://www.cjoint.com/ et poster le lien reçu.
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
22 mai 2020 à 13:51
22 mai 2020 à 13:51
https://www.cjoint.com/c/JEwlQxeqdXA
avec mes remerciements
avec mes remerciements
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
22 mai 2020 à 13:58
22 mai 2020 à 13:58
Bonjour,
Code à insérer dans un Module (sous VBE Insertion/Module) :
A utiliser directement dans la cellule D6, comme ceci :
=NumeroFacture()
ou
=NumeroAvoir()
On peut également associer les deux...
Code à insérer dans un Module (sous VBE Insertion/Module) :
Option Explicit Const NF As String = "Feuil1" '********* A ADAPTER LE NOM DE LA FEUILLE CONTENANT LES N° DE FACTURES ET AVOIRS Public Function NumeroFacture() As String Dim num As Integer num = CInt(RechercheDernier("F")) + 1 NumeroFacture = "F" & Right("0000" & num, 4) End Function Public Function NumeroAvoir() As String Dim num As Integer num = CInt(RechercheDernier("A")) + 1 NumeroAvoir = "A" & Right("0000" & num, 4) End Function Function RechercheDernier(Quoi As String) As String Dim R As Range Set R = Sheets(NF).Columns(1).Cells.Find(Quoi, After:=Sheets(NF).Range("A" & Rows.Count), LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious) If Not R Is Nothing Then RechercheDernier = Right(R.Value, 4) Else RechercheDernier = "0001" End If End Function
A utiliser directement dans la cellule D6, comme ceci :
=NumeroFacture()
ou
=NumeroAvoir()
On peut également associer les deux...
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
22 mai 2020 à 15:42
22 mai 2020 à 15:42
Merci pijaku,
je vais le lui mettre dans son fichier exemple.
Bonne journée.
Salutations.
Le Pingou
je vais le lui mettre dans son fichier exemple.
Bonne journée.
Salutations.
Le Pingou
yg_be
Messages postés
23477
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 mars 2025
1 568
22 mai 2020 à 16:21
22 mai 2020 à 16:21
Je pense qu'il faut rechercher le plus grand, pas le dernier.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
25 mai 2020 à 09:27
25 mai 2020 à 09:27
Bonjour,
Le Pingou : de rien, si ça peut aider.
yg_be : Ben oui. Après s'il a envie de tout mélanger au lieu d'enregistrer ses numéros de factures dans l'ordre, forcément ça va déconner.
Mais bon, mieux vaut ranger, ordonner les données non?...
Le Pingou : de rien, si ça peut aider.
yg_be : Ben oui. Après s'il a envie de tout mélanger au lieu d'enregistrer ses numéros de factures dans l'ordre, forcément ça va déconner.
Mais bon, mieux vaut ranger, ordonner les données non?...
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
22 mai 2020 à 18:16
22 mai 2020 à 18:16
Merci yg_be,
Je vais en tenir compte dans ma proposition.
Je vais en tenir compte dans ma proposition.
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
22 mai 2020 à 18:43
22 mai 2020 à 18:43
bonjour, merci pour la réponse
mais en effet yg_be à raison c bien le grand et non pas le dernier.
Merci de votre aide
mais en effet yg_be à raison c bien le grand et non pas le dernier.
Merci de votre aide
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
22 mai 2020 à 18:46
22 mai 2020 à 18:46
Bonjour,
Voici ma petite contribution, bonne découverte.
Le lien : https://www.cjoint.com/c/JEwqTmw4ZP0
Merci du retour.
Voici ma petite contribution, bonne découverte.
Le lien : https://www.cjoint.com/c/JEwqTmw4ZP0
Merci du retour.
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
4 sept. 2020 à 11:01
4 sept. 2020 à 11:01
Bonjour,
Il ya quelques temps déjà vous m'aviez aider en me fournissant le code suivant qui est parfait.
Aujourd'hui j'ai besoin de la même chose avec en plus l'année en cours à la suite de la numérota, c'est là que le bas blesse, l'incrémentation ne fonctionne plus
Sub plusgdvaltexte(FA As Variant)
Dim pg As Long, c As Range, nu As Variant
pg = 0
With Sheets("Numéro facture")
For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
If Left(c, 1) = FA Then
nu = Right(c, Len(c) - 1)
If pg < nu Then pg = nu
End If
Next c
End With
Range("D6") = FA & Format(pg + 1, "000")
End Sub
Aujourd'hui j'ai besoin de la même chose avec en plus l'année en cours à la suite de la numérotation, c'est là que le bas blesse, l'incrémentation ne fonctionne plus, voilà le code modifié que j' ai réalisé mais évidemment ça ne suffit pas.
Sub plusgdvaltexte(FA As Variant)
Dim pg As Long, c As Range, nu As Variant
pg = 0
With Sheets("Numéro facture")
For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
If Left(c, 1) = FA Then
nu = Right(c, Len(c) - 1)
If pg < nu Then pg = nu
End If
Next c
End With
Range("D6") = FA & Format(pg + 1, "000") & "/" & Format(Date, "yyyy") 'numéro plus / et l'année
End Sub
Merci de ton aide
Il ya quelques temps déjà vous m'aviez aider en me fournissant le code suivant qui est parfait.
Aujourd'hui j'ai besoin de la même chose avec en plus l'année en cours à la suite de la numérota, c'est là que le bas blesse, l'incrémentation ne fonctionne plus
Sub plusgdvaltexte(FA As Variant)
Dim pg As Long, c As Range, nu As Variant
pg = 0
With Sheets("Numéro facture")
For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
If Left(c, 1) = FA Then
nu = Right(c, Len(c) - 1)
If pg < nu Then pg = nu
End If
Next c
End With
Range("D6") = FA & Format(pg + 1, "000")
End Sub
Aujourd'hui j'ai besoin de la même chose avec en plus l'année en cours à la suite de la numérotation, c'est là que le bas blesse, l'incrémentation ne fonctionne plus, voilà le code modifié que j' ai réalisé mais évidemment ça ne suffit pas.
Sub plusgdvaltexte(FA As Variant)
Dim pg As Long, c As Range, nu As Variant
pg = 0
With Sheets("Numéro facture")
For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
If Left(c, 1) = FA Then
nu = Right(c, Len(c) - 1)
If pg < nu Then pg = nu
End If
Next c
End With
Range("D6") = FA & Format(pg + 1, "000") & "/" & Format(Date, "yyyy") 'numéro plus / et l'année
End Sub
Merci de ton aide
yg_be
Messages postés
23477
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 mars 2025
1 568
>
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
4 sept. 2020 à 12:02
4 sept. 2020 à 12:02
peux-tu utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
il serait utile que tu nous montres des exemples.
il serait utile que tu nous montres des exemples.
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
>
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
4 sept. 2020 à 12:21
4 sept. 2020 à 12:21
Merci de ton intérêt.
A ce jour je n'avais besoins que de la numérotation suivante qui fonctionne très bien avec le code fourni :
F0001
F0002
F0003
ETC
Maintenant je voudrais ajouter l'année à cette numérotation pour obtenir le résultat suivant :
F0001/2020
F0002/2020
F0003/2020
ETC
A ce jour je n'avais besoins que de la numérotation suivante qui fonctionne très bien avec le code fourni :
F0001
F0002
F0003
ETC
Sub plusgdvaltexte(FA As Variant)
Dim pg As Long, c As Range, nu As Variant
pg = 0
With Sheets("Numéro facture")
For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
If Left(c, 1) = FA Then
nu = Right(c, Len(c) - 1)
If pg < nu Then pg = nu
End If
Next c
End With
Range("D6") = FA & Format(pg + 1, "000")
End Sub
Maintenant je voudrais ajouter l'année à cette numérotation pour obtenir le résultat suivant :
F0001/2020
F0002/2020
F0003/2020
ETC
yg_be
Messages postés
23477
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 mars 2025
1 568
>
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
4 sept. 2020 à 12:36
4 sept. 2020 à 12:36
merci de spécifier "basic" dans les balises quand tu partages du VBA.
peux-tu montrer un exemple au moment où l'année change?
peux-tu montrer un exemple au moment où l'année change?
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
>
yg_be
Messages postés
23477
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 mars 2025
4 sept. 2020 à 12:42
4 sept. 2020 à 12:42
Ok pour mes prochains post j'emploierais les bonnes balises (merci pour l'info au passage)
Au changement d'année je repars du premier Numéro!
F0001/2020
F0002/2020
F0003/2020
....
F0100/2020
ET en 2021
F0001/2021
F0002/2021
Merci de ton aide
Au changement d'année je repars du premier Numéro!
F0001/2020
F0002/2020
F0003/2020
....
F0100/2020
ET en 2021
F0001/2021
F0002/2021
Merci de ton aide
gui64600
Messages postés
23
Date d'inscription
jeudi 21 mai 2020
Statut
Membre
Dernière intervention
26 août 2021
22 mai 2020 à 18:55
22 mai 2020 à 18:55
Merci beaucoup,
c'est loin d'être une petite contribution pour moi c top!!
Ca à l'air de fonctionner du tonnerre
merci encore
à la prochaine MONSIEUR le Pingou
c'est loin d'être une petite contribution pour moi c top!!
Ca à l'air de fonctionner du tonnerre
merci encore
à la prochaine MONSIEUR le Pingou
Le Pingou
Messages postés
12241
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 février 2025
1 458
22 mai 2020 à 23:00
22 mai 2020 à 23:00
Merci et sans oublier pijku et yg_be.
pensez à mettre le poste en RESOLU...
Salutations.
Le Pingou
pensez à mettre le poste en RESOLU...
Salutations.
Le Pingou
yg_be
Messages postés
23477
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
1 mars 2025
Ambassadeur
1 568
4 sept. 2020 à 13:03
4 sept. 2020 à 13:03
ceci va recommencer à 1 chaque année:
Sub plusgdvaltexte(FA As Variant) Dim pg As Long, c As Range, nu As Variant, yr As Integer pg = 0 yr = Year(Now()) With Sheets("Numéro facture") For Each c In .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row) If Left(c, 1) = FA And CInt(Right(c, 4)) = yr Then nu = Mid(c.Value, 2, 4) If pg < nu Then pg = nu End If Next c End With Range("D6") = FA & Format(pg + 1, "0000") & "/" & CStr(yr) End Sub
22 mai 2020 à 11:56
Oui le résultat se trouvera toujours enD6.
F0011 correspond au résultat trouvé, en déclenchant la macro numérotation facture, puisque le plus grand dernier numéro de facture était F0010.
Idem pour les avoirs si j'active la macro numérotation avoir.
Et enfin non les numéros ne sont pas forcements triés.
Merci ton interet