Sélectionner et comparer des cellules en VBA
FM38
-
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
je suis débutant en VBA, je m'exerce donc à quelques exercices.
Je cherche à sélectionner les valeurs des cellules de trois colonnes pour ensuite les comparées entres-elles et sélectionner la plus haute des valeurs de chaque ligne.
je cherche maintenant à associer les étapes.
Si quelqu'un peut m'aider à avancer un peu? merci d'avance.
Voici ce que j'ai fait pour le moment étape par étape:
---------------------------------------------------------------
code pour comparer les cellules entres-elles et sortir la plus haute:
---------------------------------------------------------
Sub coco()
With ActiveSheet
Nb_col = .Cells(1, 1).End(xlToRight).Column + 1
For j = 1 To 40
I = 1
cellule1 = .Cells(j, I).Value
cellule2 = .Cells(j, I + 1).Value
cellule3 = .Cells(j, I + 2).Value
If cellule2 >= cellule1 And cellule2 >= cellule3 Then
Feuil1.Cells(j, I + 4) = Feuil1.Cells(j, I + 1).Value
'MsgBox ("La cellule 2 sup a 1 et 3")
End If
If cellule1 >= cellule2 And cellule1 >= cellule3 Then
Feuil1.Cells(j, I + 4) = Feuil1.Cells(j, I).Value
'MsgBox ("La cellule 1 sup a 2 et 3")
End If
If cellule3 >= cellule1 And cellule3 >= cellule2 Then
Feuil1.Cells(j, I + 4) = Feuil1.Cells(j, I + 2).Value
' MsgBox ("La cellule 3 sup a 2 et 1")
End If
Next j
End With
End Sub
----------------------------------------------------
Code pour sélectionner les cellules:
--------------------------------
Sub copy()
Sheets("Feuil1").Select
'Prix
Dim Plage As Range
Set Plage = ActiveWindow.RangeSelection
Selection.copy
Range("d1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
------------------------------------------------
Merci à tous.
Cdt
je suis débutant en VBA, je m'exerce donc à quelques exercices.
Je cherche à sélectionner les valeurs des cellules de trois colonnes pour ensuite les comparées entres-elles et sélectionner la plus haute des valeurs de chaque ligne.
je cherche maintenant à associer les étapes.
Si quelqu'un peut m'aider à avancer un peu? merci d'avance.
Voici ce que j'ai fait pour le moment étape par étape:
---------------------------------------------------------------
code pour comparer les cellules entres-elles et sortir la plus haute:
---------------------------------------------------------
Sub coco()
With ActiveSheet
Nb_col = .Cells(1, 1).End(xlToRight).Column + 1
For j = 1 To 40
I = 1
cellule1 = .Cells(j, I).Value
cellule2 = .Cells(j, I + 1).Value
cellule3 = .Cells(j, I + 2).Value
If cellule2 >= cellule1 And cellule2 >= cellule3 Then
Feuil1.Cells(j, I + 4) = Feuil1.Cells(j, I + 1).Value
'MsgBox ("La cellule 2 sup a 1 et 3")
End If
If cellule1 >= cellule2 And cellule1 >= cellule3 Then
Feuil1.Cells(j, I + 4) = Feuil1.Cells(j, I).Value
'MsgBox ("La cellule 1 sup a 2 et 3")
End If
If cellule3 >= cellule1 And cellule3 >= cellule2 Then
Feuil1.Cells(j, I + 4) = Feuil1.Cells(j, I + 2).Value
' MsgBox ("La cellule 3 sup a 2 et 1")
End If
Next j
End With
End Sub
----------------------------------------------------
Code pour sélectionner les cellules:
--------------------------------
Sub copy()
Sheets("Feuil1").Select
'Prix
Dim Plage As Range
Set Plage = ActiveWindow.RangeSelection
Selection.copy
Range("d1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
------------------------------------------------
Merci à tous.
Cdt
A voir également:
- Sélectionner et comparer des cellules en VBA
- Verrouiller des cellules excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel compter cellule couleur sans vba - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Selectionner texte sur pdf - Guide
2 réponses
Bonjour,
Une autre manière, de trouver la valeur max, ainsi que son adresse :
Bon apprentissage
Une autre manière, de trouver la valeur max, ainsi que son adresse :
Sub essai() Dim Plg As Range Dim LeMax As Long Dim AdresseDuMax As String Set Plg = Range("A1:C1") LeMax = Application.Max(Plg) AdresseDuMax = Cells(1, Application.Match(Application.Max(Plg), Plg, 0)).Address MsgBox "Valeur Max : " & LeMax MsgBox "Cellule contenant la plus grande valeur : " & AdresseDuMax End Sub
Bon apprentissage
Bonjour,
Effectivement, tu ne peux trouver que dans la ligne 1.
Pour modifier, tu peux essayer ainsi :
PS : non testé....
Bon courage
Effectivement, tu ne peux trouver que dans la ligne 1.
Pour modifier, tu peux essayer ainsi :
Sub essai()
Dim Plg As Range
Dim LeMax As Long
Dim AdresseDuMax As String
Set Plg = Range("A1:A3")
LeMax = Application.Max(Plg)
AdresseDuMax = Cells(Application.Match(Application.Max(Plg), Plg, 0), 1).Address
MsgBox "Valeur Max : " & LeMax
MsgBox "Cellule contenant la plus grande valeur : " & AdresseDuMax
End Sub
PS : non testé....
Bon courage
Si je change la plage "A1:c1" en "a1:a3" avec les valeurs 100,200,300 en a1, a2, et a3 respectivement, la routine trouve bien 300 comme MAX mais me donne l'adresse $c$1!!!
Quelqu'un peut-il me dire ce qui se passe?J'attendais l'adresse $a$3!
il y a la meme incoherence avec "column" & "row"
Y a-t-il une logique que je percois pas?
merci car pour le debutant en vba que je suis je m'inspire bcp des reponses trouvees sue des sites comme comment ca marche et bcp des questions y trouvent reponse