identifier une plage où est la cellule de la plus grosse valeur avec VBA

Gaby71

XLDnaute Junior
Bonjour

besoin de votre aide
J'ai un classeur avec plusieurs feuilles
-une page resultat
-3 pages avec 4 colonnes (les colonnes B C et D)chacune

Je voudrais identifier la plage où il y a la cellule avec la plus grande valeur

voir fichier ci-joint

Merci d'avance

@+

Gaby
 

Pièces jointes

  • forum_valeursMax.xlsx
    30.2 KB · Affichages: 50
  • forum_valeursMax.xlsx
    30.2 KB · Affichages: 54
  • forum_valeursMax.xlsx
    30.2 KB · Affichages: 67

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour

Une possibilité en pièce jointe.

Les formules en B4 et C4 sont matricielles, donc à valider avec Ctrl+maj tempo+entrer.

@ plus
 

Pièces jointes

  • forum_valeursMax.xlsx
    31.2 KB · Affichages: 40
  • forum_valeursMax.xlsx
    31.2 KB · Affichages: 43
  • forum_valeursMax.xlsx
    31.2 KB · Affichages: 42

Gaby71

XLDnaute Junior
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour,

Merci CISCO

J'ai ajouté, sur le fichier attaché, le graphe des valeurs de la colonne Z de la page "Bump test 2" pour bien illustrer ce que je recherche:

il faut identifier les valeurs des points 2 et 3 .

J'ai rayé les valeurs plus grandes qui sont sur la courbe mais qui ne sont pas remarquable

ce serait interessant d'extraire les points sans faire de macros mais j'ai un doute

en regardant les valeurs de la colonne Z de la page "Bump test 2" , on s'aperçoit la valeur des cellules juste avant et juste aprés ce point 1 ont une valeur inferieure

Donc chercher la 2éme valeur de la colonne.La retenir si et seulement si les valeurs de la cellule precedente et de la cellule suivante sont inferieures . Sinon chercher la 3éme plus grande valeur avec ces caracteristiques et ainsi de suite pour obtenir les valeurs en abcisse des points 2 et 3 (dans cet exemple nous devons trouvez 636 et 1116)

Comment faire pour qu'il y ait aucune manip de la part des futurs utilisateurs

Merci d'avance

@+

Gaby
 

Pièces jointes

  • retour__valeursMax(1).xlsx
    55.5 KB · Affichages: 44
  • retour__valeursMax(1).xlsx
    55.5 KB · Affichages: 50
  • retour__valeursMax(1).xlsx
    55.5 KB · Affichages: 47

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonsoir

Une possibilité en pièce jointe. Le deuxième pic doit être compris entre la 2nde et la 8ème plus grande valeur incluse. Le 3ème, idem plus 1 à 8. Si cela ne te semble pas suffisant, il faut rallonger les formules, ou passez par du VBA. Tu peux supprimer la colonne E sur la feuille Bump_test_2.

@ plus

PS : Il ne faut pas supprimer les valeurs en C8 et C10. On pourrait faire sans, mais cela compliquerait beaucoup la formule en B8, et surtout celle en B10.
 

Pièces jointes

  • retour__valeursMax(1).xlsx
    55.6 KB · Affichages: 39
  • retour__valeursMax(1).xlsx
    55.6 KB · Affichages: 49
  • retour__valeursMax(1).xlsx
    55.6 KB · Affichages: 50
Dernière édition:

Gaby71

XLDnaute Junior
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour CISCO

Merci beaucoup pour tout ce travail effectué

Pour repondre à "Est-ce que par hasard, tu ferais de la spectrographie en phase gazeuse, ou quelque chose comme cela ?".

je travaille sur un rapport vierge d'essais vibratoires sur une machine vibrante
il faut chercher sa fréquente propre pour la faire tourner en dehors de cette plage.
un capteur faisant des mesures à differents points de la machine dans les 3 dimensions est relié à une tablette
il en sort un test en fonctionnement et 6 tests à l'arrét (Bump test1; Bump test 2 ...-->6) effectués à differents points en tapant avec un marteau en caoutchouc.
J'ai une macro pour charger sur le fichier EXCEL dans les differents onglets chaque test qui est au départ en .csv
les résultats du test en fonctionnement se reportent directement sur le rapport ou en étant transformé en pouces
Par contre, pour les 6 Bump tests je pense qu'il faudrait passer par VBA pour que la macro definisse quelle colonne de ces onglets a la valeur la plus elevée et ensuite definisse les valeurs des deux autres pics sur cette courbe.
une macro déja rend non visible les frequences correspondant aux vitesses inferieures à 600Trs/mn et supérieures à 1200.
Seule une macro pourrait ajoutée ,si necessaire ,une colonne dans le onglets "Bump test" car avant chargement des données ils sont vides.

Je vais regarder si je peux m'en tirer sans , peut-être en créant une feuille intermediaire

Merci encore

mais on approche . Le probleme est bien cerné

@+

Gaby
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour

Merci pour les explications (J'ai un DUT de Mesures Physiques, donc, ce genre de tests ne m'est pas inconnu).

Pour ce qui est d'une macro, je ne sais pas faire, donc...

@ plus
 

Gaby71

XLDnaute Junior
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Re,

C'est bien dommage ...

Formule en B4 : =CHOISIR(SOMME((B2=Bump_Test_1!B2:D102)*(COLONNE(Bump_Test_1!B2:D102));(B2=Bump_Test_2!B2:D102)*(COLONNE(Bump_Test_2!B2:D102));(B2=Bump_Test_3!B2:D102)*(COLONNE(Bump_Test_3!B2:D102)));;"X";Y;"Z")

a l'ecran elle est entre crochets et dès je clique dans la barre de formule ils disparaissent et quand je la copie les crochets n'y sont toujours pas et si je les ajoute ça ne fonctionne pas
Aussi , en fin de formule , le Y n'est pas entre guillemets et pourtant dans votre fichier , ça marche...
Merci d'avance
 

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour

Pour ce qui est des crochets, ils sont là parce qu'il s'agit d'une formule matricielle, qui fait automatiquement le calcul sur une ou plusieurs plages, et pas uniquement sur une cellule. Elle doit être validée en cliquant sur la barre de formule, et en appuyant sur les 3 touches Ctrl+maj temporaire+entrer. Les crochets apparaisent ensuite automatiquement.
https://www.excel-downloads.com/thr...ricielles-le-plus-simplement-possible.202759/

Pour ce qui est du Y, il faut effectivement mettre des guillemets. C'est un oubli.

@ plus
 
Dernière édition:

Gaby71

XLDnaute Junior
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Re bonjour

j'avance ...

La colonne E ajoutée dans l'onglet "Bump_Test_2" me pose probleme donc j'ai créé un onglet supplemenetaire pour mettre le classement de toutes les colonnes (Nb 18).
Est-ce que la demarche et bonne?

Avant que je continue car les syntax en C8 et C10 sont longues apparemment ... alors si ce n'était pas possible


je ne connais pas le terme "colonneintéressant" . Est-ce le nom d'une plage mais je n'ai pas trouvé...
Merci d'avance

@+

Gaby
 

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonsoir

Tu peux supprimer la colonne E sur la feuille Bump_Test_2. Je l'avais écrite juste pour faire une vérification.

Pour ce qui est de "colonneintéressant", c'est un nom que j'ai défini en passant par l'onglet haut "Formules" et par le gestionnaire de noms pour ne pas avoir à réécrire plusieurs fois un bout de formule un peu long, à savoir
=DECALER(INDIRECT(Resultats!$C$4&"!A2:A102");;EQUIV(Resultats!$B$4;{"X";"Y";"Z"};0); )

Cela permet d'aller chercher sur la bonne feuille (donnée par C4) la bonne colonne (donnée par B4).

Pour ce qui est de la longueur des formules en C8 et C10, j'aurai aimé trouver une formule matricielle plus courte faisant le même travail, mais je n'y suis pas arrivé. Tu as certainement remarqué qu'on fait un test avec la seconde plus grande valeur, et que si cela ne convient pas, on essaye avec la 3ème plus grande valeur, puis avec la 4ème, et aini de suite. Plutot lourd comme écriture...

@ plus.
 
Dernière édition:

Gaby71

XLDnaute Junior
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour,

Impeccable , tout est nickel

Merci beaucoup

Maintenant je veux faire la même chose mais individuellement sur chaque Bump_Test mais je bloque sur cette formule :

=CHOISIR(SOMME((B9=Bump_Test_1!B109:D209)*(COLONNE(Bump_Test_1!B109:D209));(B9=Bump_Test_2!B109:D209)*(COLONNE(Bump_Test_2!B109:D209));(B9=Bump_Test_3!B109:D209)*(COLONNE(Bump_Test_3!B109:D209));(B9=Bump_Test_4!B109:D209)*(

j'ai supprimé les termes qui interessent les autres Bump_Tests et j'ai adapté les plages . Faut-il supprimer "Choisir"?

Merci d'avance

@+

Gaby
 

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour

Si cela peut t'aider, une petite explication :

(B2=Bump_Test_1!B2: D102) renvoie VRAI si B2=Bump_Test_1!... et FAUX si B2<>Bump_Test_1!... pour chacune des cellules de la plage B2: D102.
Multiplié par le n° de la colonne, cela renvoie une série de 0 (=FAUX *....) et un numéro de colonne (=VRAI * n° colonne), si Résultats!B2 est dans la plage Bump_Test_1!B2: D102.

Même raisonnement pour les autres feuilles tests.

SOMME(...)= 0+ n° colonne, donc 2, 3 ou 4

CHOISIR (...;;"X";"Y";"Z") renvoie donc X, si SOMME= 2, Y pour 3 et Z pour 4.

Si tu as besoin de plus d'informations, détailles un peu plus ce que tu veux faire, STP.

@ plus
 

Gaby71

XLDnaute Junior
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Merci Bien

Je vais regarder ceci lundi

sur chaque Bump test , il faut identifier laquelle des 3 courbes a la plus grande valeur et sur cette courbe trouver les 3 pics

Bon weekend

@+
 

CISCO

XLDnaute Barbatruc
Re : identifier une plage où est la cellule de la plus grosse valeur avec VBA

Bonjour

J'essaye de te faire ça dès que possible. Cela ne doit pas être très difficile car cela ressemble beaucoup à ce qui est déjà fait... en plus simple :) .

@ plus
 

Discussions similaires