Recherche plus grande valeur VBA

Bonsoir à tous,

Je souhaite trouver la plus grande valeur d'une colonne après une série de texte :

Par exemple : AZE RTY 001, AZE RTY 002, AZE RTY 003 mais je peux aussi avoir EZA TRE 001 ....

Mais souhaiterais savoir le nombre le plus grand seulement de AZE RTY.

Je ne vois pas comment procéder avec des caractères devant la valeur numérique

Merci à vous

37test.xlsx (8.31 Ko)

Bonsoir,

une idée en passant :

mettre la colonne sous filtre, trier par ordre alphabétique croissant, puis filtrer avec "commence par" "AZE RTY.

la grande valeur est la dernière cellule visible du tri.

Reste plus qu'à automatiser tout ceci en VBA, et de le lier à un bouton pour lancer la macro...

@ bientôt

LouReeD

Bonsoir à tous,

Une formule matricielle ... peut-être ...

En espèrant que cela t'aide ...

Merci de ta réponse, mais en fait cette macro dois s'exécuter à l'ouverture du classeur car plusieurs action vont être faite en fonction de cette valeur recherchée, donc j'aimerais bien récupérer cette valeur sans manipulation.

Florian53 a écrit :

Merci de ta réponse, mais en fait cette macro dois s'exécuter à l'ouverture du classeur car plusieurs action vont être faite en fonction de cette valeur recherchée, donc j'aimerais bien récupérer cette valeur sans manipulation.

Tu dis sans manipulation ... mais il s'agit d'une formule ... donc aucune manipulation ... le résultat est affiché ...

Oui c'est vrai, du coup il me reste juste à récupérer la valeur de la cellule pour continuer ma macro.

Dans l'idéal j'aurais souhaiter que la macro me colle directement en dur sans formules par ex:

en B2: AZE RTY 0(le plus grand nombre).

Merci à vous

Bonsoir,

Par exemple:

=MAX((GAUCHE(A2:A19;7)="ZZZ EEE")*DROITE(A2:A19;3))

Matricielle.

Cordialement.

Salut LouReed

Re,

Ce que tu demandes est bien sûr possible ...

Comment alimentes-tu ta macro avec AZE RTY ?

As-tu une macro déjà dispo ?

Non je n'ai pas de macro car c'est justement ici que je bloque, je ne vois pas comment dire à la macro de regarder après AZE RTY.

Le texte "AZE RTY" sera rentré en dur dans la macro.

Coucou ! (quelle familiarité ! )

je persiste dans ce que j'ai compris :

62test-loureed.xlsm (15.00 Ko)

le résultat cherché en cellule D1

@ bientôt

LouReeD

Wouah ! Je n'avais vu que la première réponse de LouReed en répondant !... désolé...

Je ne suis pas la nécessité d'une macro dans le contexte, mais il suffit de parcourir la colonne. Avec :

    Val(Replace(.Cells(i, 1),"AZE RTY",""))

on a la valeur, que l'on garde si elle est plus grande que la précédente plus grande conservée...

Cordialement.

toutes façons, j'ai l'habitude d'être transparent !!!

Surtout en VBA, je n'étincelle pas beaucoup...

Je crois que je vais me replonger dans le pot... de Nutella bien sur !!!

Bonne soirée à vous tous !

@ bientôt

LouReeD

En Cellule "D1" j'ai la valeur 4, je voudrais avoir "AZE RTY 021" car c'est la plus grande valeur.

Merci à vous de prendre du temps pour m'aider.


MFerrand a écrit :

Wouah ! Je n'avais vu que la première réponse de LouReed en répondant !... désolé...

Je ne suis pas la nécessité d'une macro dans le contexte, mais il suffit de parcourir la colonne. Avec :

    Val(Replace(.Cells(i, 1),"AZE RTY",""))

on a la valeur, que l'on garde si elle est plus grande que la précédente plus grande conservée...

Cordialement.

Merci MFerrand, mais comment appliquer ça sur une macro afin qu'elle me copie par ex en "D1" la valeur la plus grande .

Désolé, chez moi il y a bien la valeur et non pas sa position de ligne sur la feuille...

Du coup je ne sais quoi dire...

@ bientôt

LouReeD

J'ai du mal à suivre ce fil !

En Cellule "D1" j'ai la valeur 4, je voudrais avoir "AZE RTY 021" car c'est la plus grande valeur.

D'abord ajuste ton modèle à tes déclarations : ton fichier du post initial ne contient aucun "AZE RTY"

Ensuite ce que tu veux semble être la valeur de la cellule et non seulement un nombre. Il convient d'être précis sur ce qu'on veut... Donc à confirmer !

Enfin, ainsi que je l'ai dit, une solution macro exige que soit justifié de passer par du code VBA. Je n'écris pas de macro si on peut facilement utiliser une formule pour obtenir un résultat...

Et pourquoi le résultat en D1 ? A ce stade, si tant est qu'il puisse être justifié de passer par du code VBA, l'objectif se limitant à un résultat dans une cellule, ce sera tout au plus une fonction personnalisée (proc. Function à utiliser comme fonction de feuille de calcul).

NB- La ligne que j'ai indiqué précédemment trouve sa place dans une procédure à écrire, ce n'est qu'une façon de récupérer la valeur des cellules répondant à la condition, dans une boucle, en testant pour ne conserver que la valeur la plus grande...

Mais l'objectif n'étant pas de renvoyer la valeur mais le contenu complet de la cellule, il sera préférable de procéder autrement...

Cordialement.

Bonjour Maréchal !

J'ai du mal à suivre ce fil !

En Cellule "D1" j'ai la valeur 4, je voudrais avoir "AZE RTY 021" car c'est la plus grande valeur.

D'abord ajuste ton modèle à tes déclarations : ton fichier du post initial ne contient aucun "AZE RTY"

En fait c'est à vous que revient l'obligation de suivre le fil...

Il ne faisait que répondre à ma proposition de code sur un fichier téléchargeable...

ce fichier à l'ouverture ne faisait que ce que j'avais proposé comme solution, à savoir tri par ordre alphabétique, filtre sur "contient AZE RTY", puis copie du résultat dans une colonne, récupérer la valeur de la ligne la plus élevé...

Je sais je ne suis pas très bon

Pourquoi "AZE RTY" ? par ce qu'il en parle dans son premier post ! Et comme il n'y en avait pas dans le fichier fournit, alors j'en ai rajouté !

Mais souhaiterais savoir le nombre le plus grand seulement de AZE RTY.

Il faut vraiment suivre...

Voilà, et ma réponse à son problème de 4 affichait, a été de dire que chez moi le code retournait bien la valeur alphanumérique de la ligne 4...

@ bientôt

LouReeD

Nota :

NB- La ligne que j'ai indiqué précédemment trouve sa place dans une procédure à écrire,

Pour les néophytes comme nous, ce genre de solution n'est pas forcément "valable" dans le sens où vous ne précisez pas que c'est à mettre dans une boucle de code VBA...

@ bientôt

LouReeD

Salut LouReed !

J'ai d'abord eu du mal à suivre parce que j'avais loupé plus de la moitié des interventions ! Mais après reprise j'ai encore eu plus de mal ! Doutes sur la direction à suivre...

Tu confirmes qu'il parle bien d'"AZE RTY" et qu'il n'y en a pas trace dans le fichier. Je n'ai donc pas rêvé la chose ! Merci !

Le fait qu'une recherche puisse demeurer infructueuse n'est pas en soi une anomalie, mais il appartient au demandeur, de signaler l'éventualité de ce cas particulier et ce qu'il attend dans ce cas, et de fournir en tout état de cause un fichier dévolu au traitement du cas "standard"...

Je considère ma remarque fondée et la confirme.

Vérification de ma seconde remarque que tu ne soulèves pas :

Mais souhaiterais savoir le nombre le plus grand seulement de AZE RTY.

dans le premier post : il s'agissait bien de renvoyer un nombre !

en fait cette macro dois s'exécuter à l'ouverture du classeur car plusieurs action vont être faite en fonction de cette valeur recherchée, donc j'aimerais bien récupérer cette valeur sans manipulation.

dans le second post du demandeur : il s'agit toujours d'un nombre mais visiblement pas d'un résultat à consigner dans une cellule, mais élément à établir par macro, laquelle l'utilisera on ne sait à quelle fin...

S'ensuivent des digressions sur la récupération de la valeur dans une cellule...

Puis, dernier post du demandeur :

En Cellule "D1" j'ai la valeur 4, je voudrais avoir "AZE RTY 021" car c'est la plus grande valeur.

On ne récupère plus un nombre mais la valeur texte complète de la cellule trouvée... ce qui motive essentiellement ma remarque sur ce que l'on doit chercher et trouver ! Il faut être précis ! C'est le minimum !... Accessoirement je réagis sur le D1 qui, même si la référence provient de ton exemple, elle confirme la dérive sur le renvoi du résultat dans une cellule avec incertitude sur la cellule (on est passé de B2 à D1), après affirmation de récupération du résultat dans la macro... Dans un tel contexte fluctuant est d'arrêter ce que l'on veut, et j'estime pour ma part avec justification car l'objectif final n'étant pas indiqué, s'il l'était pourrait amener à reconsidérer le problème dans son ensemble...

Dans ce déroulement, ma ligne de code citée était seulement indicative d'une modalité VBA de calcul de la valeur cherchée. Pour la faire fonctionner, il convient bien sûr de l'"habiller" dans une procédure, mais s'agissait-il de mettre le nombre dans une cellule ou de le récupérer dans une variable pour en disposer dans la macro, et récupération dans la même macro projetée ou par une fonction annexe... Je n'écris pas le code tant que je ne sais pas où je vais arriver, le choix de la solution la plus pratique ou la plus économique exige de connaître la finalité...

Je n'ignore pas que pour un néophyte une telle ligne de code est inutilisable ! J'avais cependant implicitement indiqué qu'elle s'utilisait dans une boucle en parlant de parcourir la colonne (le "parcours" d'une plage de cellules implique l'utilisation d'une boucle !), et suggéré qu'un test devait être opéré sur chaque valeur trouvée afin d'en conserver la plus grande (sous-entendu dans une variable... ) A partir de l'évocation de possibilités de traiter la demande, au demandeur d'apporter les précisions permettant de sortir de l'indécision vers une proposition de traitement répondant à la finalité de l'opération.

Pour l'instant l'indécision s'est plutôt accrue ! La balle demeure dans le camp du demandeur. A lui d'être un peu précis dans ses informations, ses choix et ses intentions finales...

Cordialement.

Bonjour à tous,

au plus simple tu mets la formule de James007 ou MFerrand dans un nom et tu utilises ce nom dans ta macro pour avoir la valeur.

eric

Tout à fait d'accord,

de mon coté, c'est une déformation professionnelle qui joue, et qui me fait avancer, même avec des informations incomplètes ou imprécises, le temps fait qu'on a pas le temps d'attendre, quitte à refaire....

défaire et refaire c'est toujours faire...

Il est vrai que j'ai sauté le nom 'nombre" d'une des premières phrases...

Mais souhaiterais savoir le nombre le plus grand seulement de AZE RTY.

Ceci dit quand on commence à comprendre les néophytes, on lit entre les lignes (les mot même parfois) et on peut comprendre qu'il cherchait le plus grand nombre de AZE RTY xxx afin de récupérer cette valeur, non ? Enfin c'est comme cela que moi (néophyte) je l'ai compris. C'est peut être parce que je prend tout comme c'est, sans réfléchir de trop, juste répondre à la question... Ceci dit c'est seulement de ça que je suis capable !

Ensuite avec une formule sous Excel il est "possible" dans certains cas de "parcourir" une colonne sans pour autant être dans une boucle (SOMMEPROD par exemple), non ?

Mais il est vrai qu'une question bien formulée, avec un départ, un trajet et un point d'arrivé, le tout agrémenté d'un fichier "Test" qui représente le départ et l'arrivée, et bien tout ceci fait que les réponses sont plus nombreuses, plus rapides et plus pertinentes !

Pour peu que LouReeD ne vienne pas mettre son grain de sel pour proposer des solutions laborieuses et abracadabrantesques !

Bonne fin de journée, j'ai une opération à faire, je ne sais où, ni avec qui mais c'est la priorité une de la journée !

@ bientôt

LouReeD

Je vous remercie d'avoir pris du temps pour me répondre, effectivement après re lecture je n'ai pas était clair et ni rigoureux car je ne parlais pas de la bonne série. J'ai indiqué "AZE RTY" à la place de "ABC DEF".

Au fil à mesure des conversations j'ai voulu aménager ma demande en fonction des réponses obtenues. Ce qui à beaucoup désorganiser la conversation.

Je vais expliquer le plus clairement possible:

En fait effectivement que ce soit par formule ou en VBA, peut importe je récupérerais la valeur ce la cellule si la solution par formule et la plus adaptée.

Je vous fourni en pièce jointe un classeur avec plus d'explication et qui je l’espère seront clair .

Rechercher des sujets similaires à "recherche grande valeur vba"