VBA : Recherche valeur max dans une plage texte et variable...
3 réponses
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...
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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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...
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
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" <scrat83@free.fr> a écrit dans le message de news: e53kWtdHFHA.2356@TK2MSFTNGP12.phx.gbl...
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...
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 ?
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...
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
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
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
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
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
Génial, je vais tester rapido
Merci ;o)
Domi
"AV" <alainPFFFvallon@wanadoo.fr> a écrit dans le message de
news:ednHQyiHFHA.2456@TK2MSFTNGP09.phx.gbl...
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