VBA: Maximum d'un tableau
tut
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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
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
-
Bonjour
peut-^tre + simple avec les formules Excel et l'objet Application
pour trouver le maximumSub trouver_maximum() Msgbox Application.Max(Range("B1:B7")) End Sub
et pour qui est au maximumSub quiestaumaxi() With Application MsgBox .Index(Range("A1:A7"), .Match(.Max(Range("B1:B7")), Range("B1:B7"), 0)) End With End Sub
et encore + courtSub 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 -
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)). -
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