[VBA] Valeur max moitie de cellule

Bonjour a toutes et a tous,

Je viens vous voir aujourd'hui car je suis confronte (une nouvelle fois) a un probleme.

Je cherche a trouver la valeur maximum de ce tableau, sachant que je ne voudrais prendre en compte que les chiffres apres le trait d'union.

capture tri

Je voudrais donc que le resultat soit "MA1-176".

Je vous mets en pieces jointes un fichier exemple (il n'y a pas plus d'informations dedans que sur le screenshot).

PS : Je vous prie de m'excuser pour l'absence d'accents.

3valeur-max.xlsx (8.66 Ko)

Bonjour,

sans VBA, en matriciel

=INDEX($A$1:$A$7;SOMME(SI(DROITE(A1:A7;3)*1=MAX(DROITE(A1:A7;3)*1);LIGNE($A$1:$A$7))))
3valeur-max.xlsx (8.64 Ko)

Je vous remercie mais je prefererai avoir une solution par VBA

Function valmax(plage As Range) As String
valmax = ""
maxi = 0
For Each cel In plage
    valeur = Split(cel.Value & "-0", "-")(1) * 1
    If valeur > maxi Then
        maxi = valeur
        valmax = cel.Value
    End If
Next
End Function
3valeur-max.xlsm (13.73 Ko)

Bonjour le forum et merci Steelson.

Je vais vous embeter encore une fois, mais serait-il possible de n'avoir que les chiffres comme reponse ?

Pour contextualiser, les numeros que l'on voit (MA1-178 par exemple) sont des references de document. Je souhaite que lors de la creation d'un nouveau document, le nombre apres le "MA?" soit deja rentre.

C'est encore plus simple

Function valmax(plage As Range) As String
valmax = 0
For Each cel In plage
    valeur = Split(cel.Value & "-0", "-")(1) * 1
    If valeur > valmax Then
        valmax = valeur
    End If
Next
End Function
2valeur-max.xlsm (13.58 Ko)

Merci !

Cela fonctionne comme je le souhaitais :3

Cependant, j'ai remarque que la fonction recherchait la valeur max parmis les nombres a trois chiffres. Ce n'est pas prevu que demain (futur proche) je depasse le 1000eme dossier, mais je voudrais savoir si c'est possible d'augmenter la limite sans difficulte.

En te remerciant encore.

PS : Je mets le sujet en resolu car ma nouvelle demande ne concerne qu'une amelioration en prevision des situations futures.

Avec la fonction macro il n'y a aucune limitation, fais un essai avec 2 chiffres et avec 4 cela doit fonctionner.

Je viens de comprendre pourquoi cela ne fonctionnait pas. Pour lui, 54 est plus grand que 482.

Sachant qu'il est difficilement envisageable qu'on donne le numero 0054 et/ou 0482 au document (car on ne sait pas quel sera le plus grand nombre), peut-on faire en sorte qu'Excel reflechit differement ?

Si non, tant pis...

En effet, c'est pas logique, je reprends ...

Une correction qui ne tenait pas à grand chose

Function valmax(plage As Range) As String
Dim valeur%
valmax = 0
For Each cel In plage
    valeur = Val(Split(cel.Value & "-0", "-")(1))
    If valeur > valmax Then
        valmax = valeur
    End If
Next
End Function
2valeur-max.xlsm (13.73 Ko)

Avec cette fonction ci, j'ai une erreur "Run-time error '6' : Overflow" si je fais la recherche sur plus de 20 valeurs (si je fais la recherche sur les celllules A2:A22 ca passe, mais A2:A23 ca ne passe plus).

Sachant que j'aimerai faire la recherchge sur la colonne entiere c'est problematique. Mais je ne comprends pas vraiment pourquoi je depasse mes capacites de calculs(/stockage) car les precedentes formules fonctionnaient.

As-tu les valeurs sur lesquelles tu as fait le calcul ?

Essaie de passer

Dim valeur as long

Je n'ai pas compris ta premiere question mais en tout cas ta proposition fonctionne.

Merci beaucoup !

Rechercher des sujets similaires à "vba valeur max moitie"