Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : Recherche valeur max dans une plage texte et variable...

3 réponses
Avatar
Domi
Bonsoir à tous,
Dans une petite base de données, pour ajouter un nouveau numéro à un
enregistrement, j'utilisais jusqu'à présent ce bout de code . Dans la plage
mesNum contenant des valeurs numériques j'allais chercher quelle était la
valeur la plus grande à laquelle j'ajoutais 1, j'affectais cette valeur à
une variable "valmax" que je collais dans une nouvelle ligne crée...

valmax = Application.WorksheetFunction.Max(Range("mesNum")) + 1

Je voudrais utiliser le même principe mais avec des n° plus "compliqués", en
fait les n° sont désormais au format texte et se présentent sous cette forme
: yy/000#
ou yy est le numéro de l'année en cours sur 2 chiffres suivi d'un "/" et du
vrai n° sur 4 chiffres.

J'ai trouvé cette solution : j'ai mis dans une cellule [numdos] (totalement
indépendante de ma base de données) une valeur numérique que j'incrémente de
1 en début de macro et j'ajoute cette valeur à mon numéro d'année
NouvelleLigne.Cells(1).Value = Format(Date, "yy") & "/" & Format([numdos],
"000#")
mais ça ne me convient pas vraiment. Je préfèrerais comme avec l'ancien
principe ajouter 1 au nombre le plus grand déjà existant... ça évite les
doublons par exemple...
Je remplacerais numdos par valmax...

Question : Comment affecter à valmax le nombre le plus grand sachant qu'il
faut le chercher dans les 4 derniers caractères des cellules de la plage
mesNum ?

J'espère avoir été clair.
Merci
Domi

3 réponses

Avatar
MichDenis
Bonjour Domi,

Une suggestion, si tu insérais une colonne dans laquelle tu insères les 4 derniers chiffres qui t'intéressent à l'aide
d'une petite formule... tu pourrais cacher cette colonne et utiliser la même fonction que précédemment.

Sinon, cela demande de créer une fonction personnalisée et de boucler sur l'ensemble des cellules concernées ....si ta
plage est moindrement grande, cela risque d'être fastidieux !


Salutations!


"Domi" a écrit dans le message de news:
Bonsoir à tous,
Dans une petite base de données, pour ajouter un nouveau numéro à un
enregistrement, j'utilisais jusqu'à présent ce bout de code . Dans la plage
mesNum contenant des valeurs numériques j'allais chercher quelle était la
valeur la plus grande à laquelle j'ajoutais 1, j'affectais cette valeur à
une variable "valmax" que je collais dans une nouvelle ligne crée...

valmax = Application.WorksheetFunction.Max(Range("mesNum")) + 1

Je voudrais utiliser le même principe mais avec des n° plus "compliqués", en
fait les n° sont désormais au format texte et se présentent sous cette forme
: yy/000#
ou yy est le numéro de l'année en cours sur 2 chiffres suivi d'un "/" et du
vrai n° sur 4 chiffres.

J'ai trouvé cette solution : j'ai mis dans une cellule [numdos] (totalement
indépendante de ma base de données) une valeur numérique que j'incrémente de
1 en début de macro et j'ajoute cette valeur à mon numéro d'année
NouvelleLigne.Cells(1).Value = Format(Date, "yy") & "/" & Format([numdos],
"000#")
mais ça ne me convient pas vraiment. Je préfèrerais comme avec l'ancien
principe ajouter 1 au nombre le plus grand déjà existant... ça évite les
doublons par exemple...
Je remplacerais numdos par valmax...

Question : Comment affecter à valmax le nombre le plus grand sachant qu'il
faut le chercher dans les 4 derniers caractères des cellules de la plage
mesNum ?

J'espère avoir été clair.
Merci
Domi
Avatar
AV
ou yy est le numéro de l'année en cours sur 2 chiffres suivi d'un "/" et du
vrai n° sur 4 chiffres.

Question : Comment affecter à valmax le nombre le plus grand sachant qu'il
faut le chercher dans les 4 derniers caractères des cellules de la plage
mesNum ?


Avec une plage nommée "MesNum" :

Sub zz()
MsgBox Right(Year(Date), 2) & "/" & [max(right(MesNum,4)*1)] + 1
End Sub

AV

Avatar
Domi
Génial, je vais tester rapido
Merci ;o)
Domi

"AV" a écrit dans le message de
news:
ou yy est le numéro de l'année en cours sur 2 chiffres suivi d'un "/" et
du


vrai n° sur 4 chiffres.

Question : Comment affecter à valmax le nombre le plus grand sachant
qu'il


faut le chercher dans les 4 derniers caractères des cellules de la
plage


mesNum ?


Avec une plage nommée "MesNum" :

Sub zz()
MsgBox Right(Year(Date), 2) & "/" & [max(right(MesNum,4)*1)] + 1
End Sub

AV