Probléme fonction - macro Excel

Bonjour à tous,

J'ai un soucis avec Excel, je ne trouve pas de fonction ou macro me permettant de rechercher la valeur la plus élevée de plusieurs cellules appartenant à une même ligne, puis copier le texte situé au dessus (ligne 10) de cette valeur trouvé.

Et enfin supprimer le texte de plusieurs cellule, afin de garder uniquement les chiffres.

Merci pour votre aide, j'ai laissé un exemple de fichier en pièce-jointe.

Laurie,

21classeur1.xlsx (19.39 Ko)

Bonjour et bienvenue sur le forum

Tu écris :

…puis copier le texte situé au dessus (ligne 10) de cette valeur trouvé.

Moi, je sais faire ça mais ce que je ne sais pas, c’est ce qu’il faut faire de ce texte copié…

Et enfin supprimer le texte de plusieurs cellule, afin de garder uniquement les chiffres.

Je sais aussi supprimer le texte dans des cellules, à condition de savoir dans quelles cellules..

Bref, ta demande n'est pas claire et il te faudrait expliciter davantage ce que tu veux obtenir.

A te relire.

Bye !

Bonjour,

Merci pour ta réponse. Je vais essayer d'être plus explicite!

1. De la ligne C10 à FU10, j'aimerais supprimer le texte dans chaque cellules.

2. Cellule B11, je souhaiterais afficher automtiquement la famille (100,101,102...) ayant le montant le plus élevé compris dans la ligne 11 (C11 à FU11)

Exemple : B11 = 105

3. Recommencer l'étape pour chaque ligne (il y en a plus de 1000).

Suis-je plus claire?

Bonjour Lasinna, gmb

Effectivement

gmb a écrit :

Bref, ta demande n'est pas claire et il te faudrait expliciter davantage ce que tu veux obtenir.

et je suis bien d'accord avec toi ! (au passage bonne année à toi gmb)

Voici un début de solution en fonction des données un peu plus claires fournies après la demande de gmb, même si je crois que je n'ai pas bien compris la logique de la chose... je veux dire que je ne vois pas quelle est la correspondance entre 100..740 et EX..AR (et plus) ??

D'après moi si la cellule d'une famille (100..740) est vide cela doit vouloir dire que le fournisseur (colonne A) ne dispose pas de cette référence/famille, mais je ne suis pas certain disais-je, d'avoir bien compris

PS/ pour les besoins de la démo j'ai pris le loisir de remplir toutes les cellules familles et environ 240 lignes de fournisseurs

PPS/ pour l'instant je n'efface pas non plus la ligne 10, toujours parce que je n'ai pas compris pourquoi, mais entre nous ce n'est pas le plus compliqué.


Bonne Année à Sébastien et à vous tous membres et passionné(e)s d'Excel

Bonne santé à notre si cher Forum et à ses membres, que 2017 apporte aux contributeurs les solutions pour répondre aux besoins de nos chers demandeurs.


NB/

à toi Lasinna

13demo.xlsm (253.30 Ko)

Bonjour,

La logique du raisonnement est de connaître qu'elle famille d'achats (100...740) a été le plus acheté chez chaque fournisseur (EX...AR...) sur le fichier Excel.

En effet, si la cellule d'une famille (100..740) est vide cela veut dire que le fournisseur (colonne A) ne nous a pas vendu cette référence.

Et la ligne 10, ne doit pas être supprimer car elle nous sert à connaître la famille d'achats.

Ça paraît plus logique?

Merci pour votre aide!


Andrea 73, je viens de voir que tu avais résous le problème dans le fichier Excel joint. Peux-tu m'expliquer comment as-tu fait que je puisse le refaire?

Et sais-tu comment supprime-t-on le texte d'une cellule? (Pour y garder uniquement les chiffres).

Merci!

Bonjour Lasinna

J'ai réalisé une macro-commande dans VBA... pour voir comment [ALT-F11] et regarde dans module1 il y a une procédure (Sub CalculMax) qui fait le boulot... si tu ne comprends pas ce que je fais à cet endroit je commenterais le code pour t'aiguiller...


Maintenant concernant

Lasinna a écrit :

Et sais-tu comment supprime-t-on le texte d'une cellule? (Pour y garder uniquement les chiffres).

peux-tu dire exactement ce que tu veux supprimer, pour que je te donne la bonne méthode, car je ne vois toujours pas le pourquoi du comment de cette suppression ...

Bonjour,

Pour supprimer le texte :

  • Taper c5:fu5 dans la zone Nom en haut à gauche de l'interface sous le ruban pour sélectionner la plage.
  • Saisir la formule =GAUCHE(C10;3) ou =GAUCHE(C10;3)*1 pour obtenir des valeurs numériques plutôt que du texte, et valider avec CTRL-ENTRÉE.
  • Copier.
  • Coller les valeurs dans C10.
  • Sélectionner la ligne 5 et supprimer les valeurs.

Pour la formule :

=INDEX($C$10:$FU$10;EQUIV(MAX(C11:FU11);C11:FU11;0))

en B11 à recopier en B11:B14.

Si une valeur max est présente en double, c'est la première qui apparaît.

11classeur1.xlsx (16.97 Ko)

Super! Merci pour les astuces! Je regarderais la macro de plus plès plus tard.

Savez-vous si je peu appliquer ces fonctions-macro aux mêmes données mais via un autre format? (Voir ci-joint)

Merci pour vos retours.

13autre-format.xlsx (163.66 Ko)

(re)

Tu veux dire pour obtenir un résultat tel que celui-ci ?

capture

Oui exacte, mais plutôt en créant une colonne (famille principale) où la famille ayant le montant le plus élevé s'affiche en face du nom du fournisseur (voir pièce-jointe). Le but étant d'avoir devant ou derrière chaque nom de fournisseur la famille principale correspondante.

15autre-format.xlsx (177.12 Ko)

Bonjour Lasinna

Voici la résolution... avec un peu de retard...

Rechercher des sujets similaires à "probleme fonction macro"