VBA: Maximum d'un tableau

Fermé
tut - 27 mai 2010 à 15:04
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 10 avril 2013 à 11:40
Bonjour,
J'ai une feuille appelé "valeur"
Dans la feuille "valeur" j'ai un tableau comme ci dessous :

Cell Valeur
1 15
2 7
3 29
5 30
6 2
7 6



J'ai une userForm avec un bouton de commande : Maximum
Je voudrais que ce bouton reproduise la fonction "Max" déjà présente dans excell
C'est à dire ke lorsque ke je clique sur le bouton de commande, la valeur renvoyée soit le maximum de la colonne "valeur" soit 30.

Je suis sur la piste suivante :

Private Sub Maximum_Click()
Dim i As Integer
Dim Max

For i = 1 To 7
Max=........la partie qui me manque.......besoin d'aide ici.......
Next i
MsgBox ("Le maximum est", Max)

End Sub

Merci de votre aide

3 réponses

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 10/04/2013 à 12:05
Bonjour

peut-^tre + simple avec les formules Excel et l'objet Application

pour trouver le maximum
Sub trouver_maximum()   
Msgbox Application.Max(Range("B1:B7"))   
End Sub   

et pour qui est au maximum
Sub quiestaumaxi()   
With Application   
     MsgBox .Index(Range("A1:A7"), .Match(.Max(Range("B1:B7")), Range("B1:B7"), 0))   
End With   
End Sub 

et encore + court
Sub quiestaumaxi2() 
     MsgBox [Index(A1:A7, Match(Max(B1:B7), B1:B7, 0))] 
End Sub 


et encore Une si la plage de recherche est dynamique(ajout d'une ligne par exemple)
Sub quiestaumaxi()
     Dim fin As Byte, col_A As String, col_B As String
     fin = Columns("A").Find("*", , , , , xlPrevious).Row
     col_A = Range("A1:A" & fin).Address
     col_B = Range("B1:B" & fin).Address
     MsgBox Evaluate("Index(" & col_A & ", Match(Max(" & col_B & ")," & col_B & ", 0))")
End Sub


Michel
1
koji56 Messages postés 30 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 5 juillet 2010 6
27 mai 2010 à 15:50
Private Sub Maximum_Click() 
Dim i As Integer 
Dim Max 
Max = Cells(1,1).value

For i = 1 To 7 
   If Cells(i,1).Value > Max then
      Max = Cells(i,1).Value
   End If
Next i 
MsgBox ("Le maximum est", Max) 

End Sub

Ca devrait fonctionner avec quelquechose de ce genre (en supposant que les valeurs sont dans les cellules (A1 à A7)).
0
Bonjour,

Je suis entrain de faie le même style de programme. Cependant je souhaite que le programme me donne le nom qui est associé au maximum. Dans l'exemple au dessus ce serait 5.
En espérant avoir était assez clair.

Merci d'avance
0