Extraire les 3 Grandes valeurs d'une ligne

Le
Apitos
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Apitos
Le #4997831
J'ai oublié de préciser qu'il sera préférable par VBA.
Corto
Le #4997391
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.




ChrisV
Le #4997281
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"
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.
Apitos
Le #4996851
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.
Apitos
Le #4996831
Bonsoir ChrisV,

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

Merci.
ChrisV
Le #4996661
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"

Bonsoir ChrisV,

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

Merci.
Apitos
Le #5004111
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.
ChrisV
Le #5003641
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"
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.
Corto
Le #5003621
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.




Apitos
Le #5003241
Bonjour Chris, Corto.

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

Merci Corto pour l'explication
Publicité
Poster une réponse
Anonyme