VBA: Maximum d'un tableau

tut -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. koji56 Messages postés 35 Statut Membre 6
     
    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
  3. seb
     
    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