Numérotation de cotations automatiques avec remise à zéro tous les jours
Bonsoir à tous,
habituellement j'arrive toujours à trouver mon bonheur en VBA (je suis débutante) en glanant des codes sur les forums à droite à gauche, tester des enregistrement de macros et finalement combiner les 2.
sauf que là, je sèche.
pour mon boulot je cherche à numéroter des cotations en automatique avec le format suivant :
Année + mois + jour + "-" + initiale du commercial + numéro de cotation établi par ce commercial dans la journée.
au format : aaaammjj-A01
jusqu'à présent j'ai créé une macro pour la partie 1 : aaaammjj-A
mais je souhaite que le numéro de cotation qui augmente (01, 02, 03...) se génère automatiquement. parce qu'on le met manuellement et au bout d'un moment chaque commercial ne sait plus où il en est.
Il faudrait que les 2 derniers chiffres se remettent a zéro tous les jours.
j'ai trouvé des formules d'incrémentation automatique mais pas avec la remise à zéro tous les jours.
Pourriez vous m'aider svp ?
merci ;)
bonsoir,
merci de mettre un classeur représentatif de tes données, avec tes macros et la macro à adapter.
bonjour,
oui le voici.
Il est relié à un fichier qui archive les cotations avec une macro donc ce fichier d'archivage pourrait aussi me servir à archiver les numéros créés, je le mets aussi.
j'ai effacé les coordonnées confidentielles.
Lorsque je clique sur la bouton "suivi cotation" la cotation finalisée s'archive dans le fichier de suivi via une macro. un nouvel onglet pourrait servir de base juste pour les numéros si besoin.
Pour que lorsqu'un autre commercial ouvre le fichier modèle de création de cotation, lorsqu'il génère le numéro le fichier recherche dans l'archivage et affiche le prochain numéro disponible.
merci !
bonjour,
une proposition, (selon moi macro à lier au bouton créer nouveau numéro (partie 1) de la feuille cotation)
Sub nouveau_numero()
'génère une numéro de cotation sur base de la date et du commercial en charge de la cotation
Set twb = ThisWorkbook 'twb le fichier contenant la macro (le modèle)
Set wsc = twb.Sheets("cotation") 'wsc= feuille cotation
Set wbs = Nothing
On Error Resume Next
Set wbs = Workbooks("suivi cotations overseas 2023") 'le fichier contenant le suivi des cotations
On Error GoTo 0
If wbs Is Nothing Then 'on ouvre le fichier suivi s'il n'est pas déjà ouvert
rep = "L:\OVERSEAS\GRA\" '<- à vérifier
Set wbs = Workbooks.Open(rep & "suivi cotations overseas 2023")
End If
Set wss = wbs.Sheets("suivi 2023") 'wss=feuille suivi 2023
idn = Format(wsc.Range("AD5"), "yyyymmdd") & "-" & Left(wsc.Range("AQ5"), 1) 'on formatte la première partie du numéro de cotation date aaaammjj- et initiale du commercial
dlwss = wss.Cells(Rows.Count, 2).End(xlUp).Row 'nombre de lignes dans suivi
Set re = wss.Range("b1").Resize(dlwss, 1).Find(idn, lookat:=xlPart) 'recherche toutes les occurrences qui commencent par l'id
If re Is Nothing Then
idn = idn & "01" 'on n'a rien trouvé, on attribue le numéro 1
Else
fa = re.Address
Do
numec = CLng(Right(re.Value, 2)) 'on regarde le numéro de l'occurrence en cours
If numec > nmax Then nmax = numec 'supérieur au numéro max trouvé, on adapte le max trouvé
Set re = wss.Range("b1").Resize(dlwss, 1).FindNext(re) 'occurrence suivante
Loop Until re.Address = fa 'tant qu'il y a une occurrence avec le même id
nmax = nmax + 1 'nouveau numéro =max trouvé +1
idn = idn & Format(nmax, "00")
End If
wsc.Range("N5") = idn
End Subbonjour
merci de la réponse
je vais essayer de suite
bonjour,
la macro fonctionne c'est génial (j'ai juste ajouté l'extension du fichier sinon ça ne voulait pas)
du coup j'ai même pu la modifier pour archiver les numéros dans un onglet à part (l'onglet suivi archive uniquement les cotations finalisées) car certaines cotations restent en attente mais il ne fallait pas faire de doublons.
j'ai ajouté la fermeture automatique du fichier de suivi/archivage (pour ne pas gêner un autre commercial qui travaille dessus).
je me doute que mes macros ne sont peut être pas très propres car je ne maîtrise pas tous les codes, mais en tout cas ça donne envie d'en savoir plus et de se former.
merci beaucoup pour l'aide apportée qui va me permettre de mettre le fichier en application dès lundi !
bonne journée