Recherche du nombre le plus cité

Résolu/Fermé
mmicbre Messages postés 32 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 22 septembre 2016 - 22 sept. 2016 à 11:42
mmicbre Messages postés 32 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 22 septembre 2016 - 22 sept. 2016 à 17:55
Bonjour à tous.
Je suis à la recherche d'une formule,d'un code VBA,ou d'une macro,qui me permette l'opération suivante:
Dans un ligne de longueur variable,entre 6 et 50 cellules,je voudrais connaitre le nombre le plus cité dans la ligne,en faisant apparaitre ce nombre dans une colonne supplémentaire.
Merci à celui ou celle qui voudra bien me répondre



6 réponses

Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
22 sept. 2016 à 11:44
Salut,

Une petite macro c'est faisable.
Tu déclares un tableau 2D qui va recenser + compter le nombre de chaque cellule. En même temps que le tableau se remplira, une variable restera sur la case du tableau étant le plus présente dans ta feuille.

Et à la fin ba tu sais qui est le plus présent, tu peux l'afficher par une petite alerte ou autre, au choix.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 22/09/2016 à 12:28
bonjour
tu n'as pas préciser ce qu'on faisait s'il y avait des exæquos....
ici c(est uniquement le premier trouvé
Option Explicit
Const Lig As Integer = 1 'ligne sondée
Sub sonder()
Dim Dercol As Integer, Col As Integer, Dico As Object
Dim Nbre_max As Integer, Ref As Single, Valeur As Single
Set Dico = CreateObject("scripting.dictionary")
Dercol = Rows(Lig).Find(what:="*", searchdirection:=xlPrevious).Column
Nbre_max = 0
For Col = 1 To Dercol
Ref = Cells(Lig, Col)
If Not Dico.exists(Ref) Then
Dico.Add Ref, 1
Else
Dico.Item(Ref) = Dico.Item(Ref) + 1
If Dico.Item(Ref) > Nbre_max Then
Nbre_max = Dico.Item(Ref)
Valeur = Ref
End If
End If
Next

Cells(Lig, Dercol + 1) = Valeur

End Sub


modifies la valeur de nbre_max si des nombres sont en dessous de zéro
 Michel
0
mmicbre Messages postés 32 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 22 septembre 2016
22 sept. 2016 à 12:28
Bonjour Pierre1310
Merci de t'intéresser à mon petit problème.
Je suis un vieux bonhomme (88 étés au compteur ) qui se distrait comme il peut avec son ordinateur.Ceci pour te dire que compte tenu de ma formation informatique très élémentaire,je ne comprends pas du tout ta réponse,et te demande,si tu le veux bien, de me donner la marche à suivre détaillée.
Je t'en remercie à l'avance.
mmicbre
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 sept. 2016 à 12:34
excusez moi d'avoir dérangé en proposant une réponse...
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
22 sept. 2016 à 13:16
Essayez la macro de michel_m, j'en proposerai une autre si elle ne fonctionne pas.
0
mmicbre Messages postés 32 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 22 septembre 2016
22 sept. 2016 à 15:56
Bonjour michel_m
il n'y a aucun motif pour t'excuser,ton intervention est tout à fait normale,et je t'en remercie.
Je ne t'ai pas répondu de suite,je testais la macro.
Sur ta macro,à l'emplacement "ligne sondée",j'ai enlevé le 1,et l'ai remplacé par une ligne d'essai AY4:BI4
J'ai dù faire une boulette,car lorsque j'active la macro, j'ouvre une fenêtre d'erreur qui me dit :"instruction incorrecte à l'extérieur d'une procédure", et,sur ma macro BI4 est surligné en bleu.
Dans mon bouquin excel 2011 j'ai cherché une explication que je n'ai pas trouvée.
Vois tu où est l'erreur ?

Merci Pierre1310je vois que tu suis l'évolution de la situation,et je t'en remercie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
22 sept. 2016 à 16:25
Bonjour à tous

As tu essayé la fonction MODE ?
=MODE(plage)

Cdlmnt
0
mmicbre Messages postés 32 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 22 septembre 2016
22 sept. 2016 à 16:37
Bonjour ccm81
Non,je ne suis pas capable de tester des formules moi même,car je ne sais pas les concocter.
J'ai une auxiliaire de vie qui peut m'aider,car elle est beaucoup plus compétente que moi,mais elle est en congé,c'est pourquoi je vous sollicite,mais,évidemment,il vous faut me mâcher le travail,et je sais ,par expérience,que ce n'est pas toujours bien perçu.
Mais,je te remercie pour ton intervention.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
22 sept. 2016 à 17:26
Bonjour,

1ère fois que je vois ça, pas effrayé par une macro mais hésitant à saisir une formule :-)

tu as juste à saisir dans une cellule =MODE(B2:M2) pour avoir le nombre le plus répété dans B2:M2
eric
0
mmicbre Messages postés 32 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 22 septembre 2016 > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
22 sept. 2016 à 17:55
Bonsoir eriiic
en effet,rien de plus simple et efficace
Tous mes remerciements

Je remercie également Pierre1310,michel_m,et ccm81pour leur participation,et leur gentillesse.
Bonne soirée à tous,
PROBLEME RESOLU
0