Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire les 3 Grandes valeurs d'une ligne

15 réponses
Avatar
Apitos
Bonsoir,

Dans une ligne j'ai en A2 la nom Nm, et dans B2 =E0 F2 j'ai cinq valeurs
de Nm.

Comment extraire les trois grandes valeurs de Nm et les copier dans
Feuil2 ?

Merci.

10 réponses

1 2
Avatar
Apitos
J'ai oublié de préciser qu'il sera préférable par VBA.
Avatar
Corto
Bonjour Apitos,
J'ai une macro qui fait ce que tu demande mais si tu veux la faire
tourner sur de grandes plages, il faut changer la partie tri du tableau
qui est un bête tri à bulle.

Sub GrandesValeurs(XZONE As Range, XNB As Long, XDST As Range)
ReDim T2(1 To XNB, 1 To 1)

T = XZONE.Value
' Tri du tableau
For XCPT = LBound(T) To UBound(T)
For X = LBound(T) To UBound(T) - 1
For Y = UBound(T) To X Step -1
If T(X, 1) < T(Y, 1) Then
TRANS = T(X, 1)
T(X, 1) = T(Y, 1)
T(Y, 1) = TRANS
End If
Next
Next
Next XCPT ' Fin du tri
If XDST.Rows.Count <> XNB Then Set XDST = XDST.Resize(RowSize:=XN B)
For XCPT = LBound(T) To XNB
T2(XCPT, 1) = T(XCPT, 1)
Next XCPT
XDST.Value = T2
End Sub

Corto

Bonsoir,

Dans une ligne j'ai en A2 la nom Nm, et dans B2 à F2 j'ai cinq valeur s
de Nm.

Comment extraire les trois grandes valeurs de Nm et les copier dans
Feuil2 ?

Merci.




Avatar
ChrisV
Bonjour Apitos,

Avec la plage de données nommée ici "Zn", et la plage de destination (en
feuille2) nommée ici "reS"

Sub zaza()
With [reS]
.FormulaArray = "=LARGE(Zn,{1;2;3})"
.Value = .Value
End With
End Sub


ChrisV


"Apitos" a écrit dans le message de news:

Bonsoir,

Dans une ligne j'ai en A2 la nom Nm, et dans B2 à F2 j'ai cinq valeurs
de Nm.

Comment extraire les trois grandes valeurs de Nm et les copier dans
Feuil2 ?

Merci.
Avatar
Apitos
Bonsoir Corto,

Je voulais essayé ta macro, mais je n'ai pas su le faire ....


Private Sub CommandButton1_Click()
GrandesValeurs(XZONE, 1, XDST)
End Sub

Ca me donne toujours une erreur de compilation.
Avatar
Apitos
Bonsoir ChrisV,

Ton code me donne les trois grandes valeurs de tout mon tableau à
plusieurs lignes et non pas pour une seule ligne.

Merci.
Avatar
ChrisV
Bonjour Apitos,

Il faudrait que tu donnes d'avantages d'explications sur l'organisation de
tes données et sur les résultats souhaités...


ChrisV


"Apitos" a écrit dans le message de news:


Bonsoir ChrisV,

Ton code me donne les trois grandes valeurs de tout mon tableau à
plusieurs lignes et non pas pour une seule ligne.

Merci.
Avatar
Apitos
Bonsoir Chris,

:: Dans une ligne j'ai en A2 la nom Nm, et dans B2 à F2 j'ai cinq
valeurs
de Nm :

A B C D E F
1 N1 10 5 100 87 56
2 N2 147 1.5 .12 45 88
3 N3 41 220 91 250 30

Je devrais avoir les trois grandes valeurs de chaque ligne, à savoir :

1 N1 100 87 56
2 N2 147 88 45
3 N3 250 220 91

Merci.
Avatar
ChrisV
Bonjour Apitos,

Selon les données de ton dernier exemple, pourquoi ne pas utiliser une
formule...?
(sur une plage de 3 cellules horizontales contigues, valider par
Ctrl+Shift+Entrée)

=GRANDE.VALEUR(Feuil1!B1:F1;{1.2.3})

puis à recopier 2 lignes vers la bas.

Par VBA, en supposant que la plage de destination débute en A1

Sub zaza()
With Worksheets("Feuil2")
.[A1:C1].FormulaArray = "=LARGE(Feuil1!B1:F1,{1,2,3})"
.[A1:C1].AutoFill Destination:=.[A1:C3]
.[A1:C3] = .[A1:C3].Value
End With
End Sub


ChrisV



"Apitos" a écrit dans le message de news:

Bonsoir Chris,

:: Dans une ligne j'ai en A2 la nom Nm, et dans B2 à F2 j'ai cinq
valeurs
de Nm :

A B C D E F
1 N1 10 5 100 87 56
2 N2 147 1.5 .12 45 88
3 N3 41 220 91 250 30

Je devrais avoir les trois grandes valeurs de chaque ligne, à savoir :

1 N1 100 87 56
2 N2 147 88 45
3 N3 250 220 91

Merci.
Avatar
Corto
Bonjour Apitos,
C'est normal que ce que tu as écris provoque une erreur car dois donner
des valeurs en appelant la fonction.
par exemple GrandesValeurs([A1:A100], 3, [B2])
XZONE = Zone de données
XNB = Nombre de données à extraire
XDST = Zone de destination

Corto

Bonsoir Corto,

Je voulais essayé ta macro, mais je n'ai pas su le faire ....


Private Sub CommandButton1_Click()
GrandesValeurs(XZONE, 1, XDST)
End Sub

Ca me donne toujours une erreur de compilation.




Avatar
Apitos
Bonjour Chris, Corto.

Chris ton code déclenche une erreur d'Autofill.

Merci Corto pour l'explication
1 2