[VBA] Valeur max moitie de cellule Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
Benoit M
Membre habitué
Membre habitué
Messages : 54
Appréciation reçue : 1
Inscrit le : 23 mai 2019
Version d'Excel : 2016 EN

Message par Benoit M » 20 juin 2019, 02:43

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.PNG
Capture tri.PNG (3.77 Kio) Vu 222 fois
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.
Valeur max.xlsx
(8.66 Kio) Téléchargé 3 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'891
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 20 juin 2019, 04:25

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))))
Valeur max.xlsx
(8.64 Kio) Téléchargé 3 fois
1 membre du forum aime ce message.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
B
Benoit M
Membre habitué
Membre habitué
Messages : 54
Appréciation reçue : 1
Inscrit le : 23 mai 2019
Version d'Excel : 2016 EN

Message par Benoit M » 20 juin 2019, 06:03

Je vous remercie mais je prefererai avoir une solution par VBA
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'891
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 20 juin 2019, 08:42

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
Valeur max.xlsm
(13.73 Kio) Téléchargé 3 fois
1 membre du forum aime ce message.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
B
Benoit M
Membre habitué
Membre habitué
Messages : 54
Appréciation reçue : 1
Inscrit le : 23 mai 2019
Version d'Excel : 2016 EN

Message par Benoit M » 24 juin 2019, 02:42

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.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'891
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 24 juin 2019, 09:29

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
Valeur max.xlsm
(13.58 Kio) Téléchargé 2 fois
1 membre du forum aime ce message.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
B
Benoit M
Membre habitué
Membre habitué
Messages : 54
Appréciation reçue : 1
Inscrit le : 23 mai 2019
Version d'Excel : 2016 EN

Message par Benoit M » 24 juin 2019, 09:53

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.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'891
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 24 juin 2019, 10:21

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

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
B
Benoit M
Membre habitué
Membre habitué
Messages : 54
Appréciation reçue : 1
Inscrit le : 23 mai 2019
Version d'Excel : 2016 EN

Message par Benoit M » 24 juin 2019, 10:46

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...
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'891
Appréciations reçues : 875
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 24 juin 2019, 11:15

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

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message