valeur maximale parmi plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion Yohann
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

Yohann

Guest
Bonjour,
Je galere un peu, je cherche a obtenir le chiffre le plus eleve parmi les differents feuillets de mon classeur (ces differents feuillets representant chacun un jour du mois)ensuite ce quil me faudrait cest quen plus de lindication de ce chiffre jobtienne le nom de la feuille dans laquelle il a ete trouve afin davoir le jour du mois avec le meilleur resultat.
Jespere que jaurais ete a peu pres clair.
Je vous remercie davance pour votre aide precieuse.
 
bonjour yohann

un exemple de code VBA à adapter à tes besoins, surtout concernant la plage à scanner.


Sub Bouton1_QuandClic()
Dim ws As Worksheet
Dim maxi As Double
Dim feuille As String

For Each ws In Worksheets
       
If maxi < Application.Max(ws.Cells) Then
                maxi = Application.Max(ws.Cells)
                feuille = ws.Name
       
End If
Next ws

MsgBox 'le maximum (' & maxi & ') se trouve en feuille : ' & feuille
               
End Sub


salut
 
re

Le meme code permettant de scanner une plage défini, ici A1:C10


Sub Bouton1_QuandClic()
Dim ws As Worksheet
Dim plage As Range
Dim maxi As Double
Dim feuille As String

For Each ws In Worksheets
       
Set plage = ws.Range('a1:c10') ' a adapter
       
If maxi < Application.Max(plage) Then
                maxi = Application.Max(plage)
                feuille = ws.Name
       
End If
Next ws

MsgBox 'le maximum (' & maxi & ') se trouve en feuille : ' & feuille
               
End Sub


salut
 
Herve,
Merci vraiment pour ton aide et la rapidite a laquelle tu mas repondu, moi jai mis un peu de temps a men sortir vu que vba cetait un peu une decouverte, enfin ca a lair de marcher(et ca fait vraiment plaisir).
Reste quelques soucis, en plus du chiffre maximum, jaimerais aussi le minimum pour le mois, mais le souci cest que je ne veux pas prendre en compte les jours ou il ny a pas dactivite(cest a dire 0) est ce que tu peux maider a nouveau, et aussi autre leger probleme, cest que jaimerais obtenir le chiffre avec seulement deux decimales, cest possible?
Merci encore une fois, cest promis je me mets au visual basic des ce soir...
 
re yohann

pour trouver le mini des feuilles en excluant les 0 et cellules vides, je ne vois qu'une boucle qui scanne toutes les cellules.

si on utilise une boucle il te faut absolument définir une plage (cas de la deuxieme macro), sinon tu va scanner quelques 16 millions de cellule par feuilles 😱


essaye ce code, en pensant bien à définir ta plage ici :Set plage = ws.Range('a1:c10') ' a adapter


Sub Bouton1_QuandClic()
Dim ws As Worksheet
Dim plage As Range, c As Range
Dim maxi As Double, mini As Double
Dim feuillemaxi As String, feuillemini As String

For Each ws In Worksheets
       
Set plage = ws.Range('a1:c10') ' a adapter
       
If maxi < Application.Max(plage) Then
                maxi = Format(Application.Max(plage), '# ###.00')
                feuillemaxi = ws.Name
       
End If
       
For Each c In plage
               
If mini = 0 Then mini = 1
               
Select Case c
                       
Case 0, ''
                       
Case Is < mini:
                        mini = Format(c, '# ###.00')
                        feuillemini = ws.Name
               
End Select
       
Next c
Next ws

MsgBox 'Maximum = ' & maxi & ' en feuille : ' & feuillemaxi & vbNewLine _
& 'Minimum = ' & mini & ' en feuille : ' & feuillemini

End Sub


salut
 
cest encore moi,
cest presque bon, le seul souci, cest que si le chiffre est superieur a 1 ca deconne. Quand cest inferieur, il nya pas de probleme il me donne le chiffre ainsi que la date par contre si cest superieur il indique obligatoirement minimum=1 sans indiquer de feuilles. Etant un pur novice je nai aucune idee dou peut provenir ce bug...
 
re

ah oui j'avais pas pensé à ce souci

explication : la variable mini si elle n'est pas initialisé, est egale à 0, donc, à moins d'avoir des chiffres négatif, tu ne trouveras jamais d'inferieur.

il nous faut donc initialiser cette variable, c'est ce que fait ce code :

If mini = 0 Then mini = 1

mais la valeur 1 est déjà inférieur à tes propres données, d'ou le bug, il suffit donc d'initialiser avec une valeur tres haute, par exemple :

If mini = 0 Then mini = 100000

voilà

salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour