Calcul de répétition d'occurences
Bonjour,
Dans le fichier xslx en PJ (amélioré à plusieurs reprises par un membre de ce forum que je remercie s'il me lit), j'ai besoin de mettre en place une nouvelle formule. J'ai cherché sur le net avec les fonctions de calcul de répétition d’occurrence et la fonction fréquence mais je ne trouve pas le moyen exact et efficace de répondre à mon besoin.
Mon besoin: Avoir une création automatique de référence. Ces références me servent à facturer des prestations de service. Une prestation = une mission = une référence.
Elles se construisent de la façon suivante:
XXX-N où XXX correspond au code client et N au nombre de mission réalisé pour ce client.
Dans la colonne B figure le nom du client. Dans la colonne C doit figurer la référence.
Je pense qu'il faudrait une formule qui
1. Reconnaisse le nom du client pour transformer son nom en code client
2. Compte le nombre de ligne où se client apparaît afin de connaitre le nombre de mission réalisé
3. Agrège le code client avec le nombre de mission.
Ainsi, lors que je réalise, par exemple, ma 124ème mission pour le client "Alazard", il faudrait que la référence soit ALAZ 124
Je ne suis pas sûr que cette logique soit la plus simple et je n'ai pas réussi à savoir comment faire notamment parce que j'ai une quinzaine de client et que cela est voué à évoluer.
Auriez vous une idée svp et pourriez vous m'aider?
(attention, il y a déjà pas mal de formules à droite à gauche dans le fichier. Je pense qu'il faut limiter au maximum le "déplacement" des colonnes)
Merci
Salut Matt,
quelque chose comme ceci, à coller en 'TABLO' [C11] ?
=MAJUSCULE(GAUCHE(B11;4)) & " " & NB.SI($B$1:B11;B11)A+
Bonjour,
J'ai un soucis avec la formule
Explication:
Si je crée une ligne avec une date future (exemple 03/03/19), j'ai bien une nouvelle référence avec un numéro supérieur.
Par contre, si je classe mes colonnes, cette référence change
En fait, il faudrait, je pense, qu'une référence, une fois crée, ne puisse plus être modifiée (et que celle ci ait forcément un nombre plus grand que la précédente). Peut être avez-vous une meilleure idée à me proposer?
La formule actuelle est:
=MAJUSCULE(GAUCHE(B1339;4)) & " " & NB.SI($B$1:B1339;B1339)
Merci
Bonjour,
J'ai toujours ce gros souci (exposé dans le message ci-dessus)
J'ai fait "remonter" le sujet.
Mon besoin serait le suivant:
lorsqu'on ajoute ou supprime une ligne, les références déjà écrites ne doivent pas changer.
lors de reclassement les références liées à une mission ne doivent pas changer. ex: j'ai une réf GOUN 4 pour une mission faite à Nice. Si je classe mon tableau par ville, la référence va changer. Il ne faut pas qu'elle change.
J'espère que vous pourrez m'aider.
Par avance merci.
J'ai remis un fichier d'exemple en PJ. Faites un test: supprimez une ligne, ou reclassez. Vous verrez que les réf changent.
Salut Matt06,
toujours très malin de fournir un fichier... sans le mot de passe!
La solution avec formule, forcément, ne peut pas fonctionner si on commence à trier, ce qui est très légitime.
Le code ci-dessous à coller dans le module VBA de 'TABLO' crée la référence client pour tout nouveau client encodé en colonne [A], donc, à priori, avec la cellule en colonne ['B'] vide.
Si la
existe déjà, il faut joindre le code seul sansSub Worksheet_Change
etSUB
, bien sûr...END SUB
Pour tes clients existants "sous formule", il te faut sélectionner chaque référence en ['B'] et les réécrire "en dur" ce qui "écrasera" du coup la formule.
Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, Range("A:A")) Is Nothing Then _
If Target.Offset(0, 1) = "" Then Target.Offset(0, 1) = UCase(Left(Target, 4)) & " " & WorksheetFunction.CountIf(Range("A:A"), Target)
'
Application.EnableEvents = True
'
End SubBonjour
Merci beaucoup pour le temps et la réponse précise
Malheureusement je suis incapable de faire ces modifications d'autant plus que je ne suis pas le créateur de la macro.
Je suis entrain de me rapprocher de l'âme charitable qui avait bien voulu me faire ça...
Merci