OVH Cloud OVH Cloud

nombre le plus élévé en VBA

6 réponses
Avatar
bernard
Bonjour =E0 tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1=20
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 =3D 5, B1=3D2, C1=3D8, D1=3D15, E1=3D 0
le nombre le plus grand est 15 et je voudrai afficher 1=20
dans la colonne D (en D2 par exemple).

merci =E0 ceux qui voudraient bien m'aider
bernard

6 réponses

Avatar
Alain CROS
Bonjour.

A2 =SI(EQUIV(MAX($A$1:$E$1);$A$1:$E$1)=COLONNE();1;"")
puis tu tire jusqu'a E2.

Alain CROS.

"bernard" a écrit dans le message de news: 34de01c3744b$31978a50$
Bonjour à tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).

merci à ceux qui voudraient bien m'aider
bernard
Avatar
Pierre Fauconnier
Selection.Find(Max).Offset(1) = 1


Attention à l'Offset. Dans ta solution, tu décales d'une ligne vers le bas
et tu risques d'écraser une valeur.
Pour placer 1 dans la cellule à droite du plus grand nombre trouvé, il faut
utiliser
Selection.Find(Max).Offset(0,1) = 1
ou
Selection.Find(Max)(1,2) = 1

Pierre




Michel Gaboly wrote:
Bonjour,

Utilise cette procédure, après avoir sélectionné la plage qui
t'intéresse (A1:E1 dans ton exemple).

Sub ValeurMaxi()
Dim Max As Double
Max = Application.WorksheetFunction.Max(Selection)
Selection.Find(Max).Offset(1) = 1
End Sub

J'ai défini Max comme Double pour une + grande souplesse,
mais on peut aussi se passer de variable :

Sub ValeurMaxi2()
Dim Max As Double
Selection.Find(Application.WorksheetFunction. _
Max(Selection)).Offset(1) = 2
End Sub



Bonjour à tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).

merci à ceux qui voudraient bien m'aider
bernard




Avatar
Jacky
Salut Bernard

Ou encore...

A2 =SI(MODE($B$1:$F$1)¡;1;"")
puis tu tire jusqu'a E2.

JJ

"bernard" a écrit dans le message news:
34de01c3744b$31978a50$
Bonjour à tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).

merci à ceux qui voudraient bien m'aider
bernard
Avatar
Jacky
Mes excuses, la demande était en VBA
JJ

"Jacky" a écrit dans le message news:

Salut Bernard

Ou encore...

A2 =SI(MODE($B$1:$F$1)¡;1;"")
puis tu tire jusqu'a E2.

JJ

"bernard" a écrit dans le message news:
34de01c3744b$31978a50$
Bonjour à tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).

merci à ceux qui voudraient bien m'aider
bernard




Avatar
Michel Gaboly
Salut Pierre,

Mon Offset fait exactement ce qui est demandé : il met la valeur
en dessous du plus grand nombre trouvé

Je suppose que tu n'as pas fait suffisamment attention
à l'énoncé ; les valeurs indiquées sont dans l'exemple
sur une ligne et non en colonne :

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).



Il faut donc bien écrire sur la ligne en-dessous et non
dans la colonne voisine.



Selection.Find(Max).Offset(1) = 1


Attention à l'Offset. Dans ta solution, tu décales d'une ligne vers le bas
et tu risques d'écraser une valeur.
Pour placer 1 dans la cellule à droite du plus grand nombre trouvé, il faut
utiliser
Selection.Find(Max).Offset(0,1) = 1
ou
Selection.Find(Max)(1,2) = 1

Pierre

Michel Gaboly wrote:
Bonjour,

Utilise cette procédure, après avoir sélectionné la plage qui
t'intéresse (A1:E1 dans ton exemple).

Sub ValeurMaxi()
Dim Max As Double
Max = Application.WorksheetFunction.Max(Selection)
Selection.Find(Max).Offset(1) = 1
End Sub

J'ai défini Max comme Double pour une + grande souplesse,
mais on peut aussi se passer de variable :

Sub ValeurMaxi2()
Dim Max As Double
Selection.Find(Application.WorksheetFunction. _
Max(Selection)).Offset(1) = 2
End Sub



Bonjour à tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).

merci à ceux qui voudraient bien m'aider
bernard




--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
Michel Gaboly
Bonsoir,

minima culpa ;-)))


Mea culpa ;-)

Pierre

"Michel Gaboly" a écrit dans le message de news:

Salut Pierre,

Mon Offset fait exactement ce qui est demandé : il met la valeur
en dessous du plus grand nombre trouvé

Je suppose que tu n'as pas fait suffisamment attention
à l'énoncé ; les valeurs indiquées sont dans l'exemple
sur une ligne et non en colonne :

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).



Il faut donc bien écrire sur la ligne en-dessous et non
dans la colonne voisine.



Selection.Find(Max).Offset(1) = 1


Attention à l'Offset. Dans ta solution, tu décales d'une ligne vers le
bas


et tu risques d'écraser une valeur.
Pour placer 1 dans la cellule à droite du plus grand nombre trouvé, il
faut


utiliser
Selection.Find(Max).Offset(0,1) = 1
ou
Selection.Find(Max)(1,2) = 1

Pierre

Michel Gaboly wrote:
Bonjour,

Utilise cette procédure, après avoir sélectionné la plage qui
t'intéresse (A1:E1 dans ton exemple).

Sub ValeurMaxi()
Dim Max As Double
Max = Application.WorksheetFunction.Max(Selection)
Selection.Find(Max).Offset(1) = 1
End Sub

J'ai défini Max comme Double pour une + grande souplesse,
mais on peut aussi se passer de variable :

Sub ValeurMaxi2()
Dim Max As Double
Selection.Find(Application.WorksheetFunction. _
Max(Selection)).Offset(1) = 2
End Sub



Bonjour à tous,
J'ai une liste de nombres entiers en A1, B1, C1, D1, E1
Trouver le nombre le plus grand est facile avec Max(A1:E1).
Comment en VBA faire ajouter 1 sous le plus grand nombre.

Par exemple A1 = 5, B1=2, C1=8, D1, E1= 0
le nombre le plus grand est 15 et je voudrai afficher 1
dans la colonne D (en D2 par exemple).

merci à ceux qui voudraient bien m'aider
bernard




--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com