OVH Cloud OVH Cloud

Eliminer...seulement

19 réponses
Avatar
Denys
Bonjour =E0 tous,

Petit probl=E8me =E0 vous soumettre. Sur une feuille Excel, je=20
re=E7ois mensuellement des donn=E9es qui peuvent facilement=20
atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le=20
montant des transactions. Je vous fais gr=E2ce des infos=20
contenues dans les autres colonnes.

Je dois =E9liminer toutes les lignes suaf celles appartenant=20
disons =E0 la cie ABC, GHI et les trois compagnies dont le=20
montant total des transactions est le plus =E9lev=E9.

Le probl=E8me que j'ai est de la fa=E7on dont se pr=E9sente ces=20
donn=E9es... En voici un aper=E7u:

B C

ABC $5.00=20
$5.10=20
$5.20=20
$5.30=20
$5.40=20
$5.50=20
DEF $12.32=20
$13.25=20
$14.18=20
$15.11=20
$16.04=20
$16.97=20
$17.90=20
$18.83=20
GHI $7.54=20
$7.91=20
$8.28=20
$8.65=20
$9.02=20
$9.39=20
$9.76=20
$10.13=20
JKLMN $1.67=20
$2.01=20
$2.35=20
$2.69=20
$3.03=20
$3.37=20
$3.71=20
$4.05=20
$4.39=20
PQR $3.23=20
$3.44=20
$3.65=20
$3.86=20
$4.07=20
$4.28=20
$4.49=20
$4.70=20
$4.91=20
$5.12=20
$5.33=20
$15.54=20
$15.75=20
$15.96=20
$16.17=20
$16.38=20
$16.59=20
$16.80=20
$17.01=20
$17.22=20
STU $4.33=20
$4.44=20
$4.55=20

Les noms de cie ne se r=E9p=E9tant pas dans la colonne B,=20
Comment faire pour dire =E0 Excel de faire le calcul dans C,=20
trouver les 3 qui ont le montant le plus =E9lev=E9, et ensuite=20
=E9liminer toutes les autres except=E9es ABC, GHI et les 3=20
plus performantes (sans tenir compte de la performance de=20
ABC et GHI...

Compliqu=E9 n'est-ce pas ????

Si vous avez une id=E9e, vous =EAtes les bienvenus...

Merci pour votre temps

Denys

10 réponses

1 2
Avatar
isabelle
bonjour Denys,

voici un exemple,

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End(xlUp).Row)
If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
GV1 = Application.Large([C:C], 1)
GV2 = Application.Large([C:C], 2)
GV3 = Application.Large([C:C], 3)
Ci1 = Application.Index([B:B], Application.Match(GV1, [C:C], 0))
Ci2 = Application.Index([B:B], Application.Match(GV2, [C:C], 0))
Ci3 = Application.Index([B:B], Application.Match(GV3, [C:C], 0))
For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille Excel, je
reçois mensuellement des données qui peuvent facilement
atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des infos
contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles appartenant
disons à la cie ABC, GHI et les trois compagnies dont le
montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente ces
données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul dans C,
trouver les 3 qui ont le montant le plus élevé, et ensuite
éliminer toutes les autres exceptées ABC, GHI et les 3
plus performantes (sans tenir compte de la performance de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys


Avatar
isabelle
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande valeur sont pour une
même cie, seulement celle ci et les cie ABC, GHI ne seront pas éliminé.
est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille Excel, je
reçois mensuellement des données qui peuvent facilement
atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des infos
contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles appartenant
disons à la cie ABC, GHI et les trois compagnies dont le
montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente ces
données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul dans C,
trouver les 3 qui ont le montant le plus élevé, et ensuite
éliminer toutes les autres exceptées ABC, GHI et les 3
plus performantes (sans tenir compte de la performance de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys


Avatar
Denys
Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas sûr de ce
que tu veux dire, mais ce n'est pas la plus grande valeur
que je recherche dans la colonne C, mais bien la somme
totale des transactions conclues pour chaque compagnie. Et
c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche les 3
plus grandes valeurs. Pardon si je n'ai pas été assez
explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys


-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande valeur
sont pour une

même cie, seulement celle ci et les cie ABC, GHI ne
seront pas éliminé.

est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille Excel,
je


reçois mensuellement des données qui peuvent facilement
atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des infos
contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies dont le
montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente
ces


données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul dans
C,


trouver les 3 qui ont le montant le plus élevé, et
ensuite


éliminer toutes les autres exceptées ABC, GHI et les 3
plus performantes (sans tenir compte de la performance
de


ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys
.





Avatar
isabelle
re bonjour Denys,

voilà la modification,
j'ai pris la colonne "D" pour mettre le résultat "somme totale des
transactions"

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End(xlUp).Row)
If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End(xlUp).Row).Address
plgM = Range("C2:C" & Range("C65536").End(xlUp).Row).Address
If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" & plgC & "=B" &
i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
x = 4
If GV1 = "ABC" Or GV1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If GV2 = "ABC" Or GV2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If GV3 = "ABC" Or GV3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1, [D:D], 0))
Ci2 = Application.Index([B:B], Application.Match(GV2, [D:D], 0))
Ci3 = Application.Index([B:B], Application.Match(GV3, [D:D], 0))
For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas sûr de ce
que tu veux dire, mais ce n'est pas la plus grande valeur
que je recherche dans la colonne C, mais bien la somme
totale des transactions conclues pour chaque compagnie. Et
c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche les 3
plus grandes valeurs. Pardon si je n'ai pas été assez
explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys

-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande valeur
sont pour une

même cie, seulement celle ci et les cie ABC, GHI ne
seront pas éliminé.

est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille Excel,
je


reçois mensuellement des données qui peuvent facilement
atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des infos
contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies dont le
montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente
ces


données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul dans
C,


trouver les 3 qui ont le montant le plus élevé, et
ensuite


éliminer toutes les autres exceptées ABC, GHI et les 3
plus performantes (sans tenir compte de la performance
de


ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys
.







Avatar
Denys
Re-bonjour Isabelle,

Wow !!! ça fonctionne à merveille. C'est tout à fait
brillant !!! T'es super !!

Merci infiniment et bonne fin de semaine

Denys


-----Original Message-----
re bonjour Denys,

voilà la modification,
j'ai pris la colonne "D" pour mettre le résultat "somme
totale des

transactions"

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" &
plgC & "=B" &

i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
x = 4
If GV1 = "ABC" Or GV1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If GV2 = "ABC" Or GV2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If GV3 = "ABC" Or GV3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas sûr de
ce


que tu veux dire, mais ce n'est pas la plus grande
valeur


que je recherche dans la colonne C, mais bien la somme
totale des transactions conclues pour chaque compagnie.
Et


c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche les 3
plus grandes valeurs. Pardon si je n'ai pas été assez
explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys

-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande valeur
sont pour une

même cie, seulement celle ci et les cie ABC, GHI ne
seront pas éliminé.

est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille
Excel,




je
reçois mensuellement des données qui peuvent
facilement




atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des
infos




contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies
dont le




montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente
ces


données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul
dans




C,
trouver les 3 qui ont le montant le plus élevé, et
ensuite


éliminer toutes les autres exceptées ABC, GHI et les
3




plus performantes (sans tenir compte de la
performance




de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys
.


.








Avatar
isabelle
:-) au plaisir ! Denys, bonne fin de semaine à toi aussi,

isabelle


Re-bonjour Isabelle,

Wow !!! ça fonctionne à merveille. C'est tout à fait
brillant !!! T'es super !!

Merci infiniment et bonne fin de semaine

Denys

-----Original Message-----
re bonjour Denys,

voilà la modification,
j'ai pris la colonne "D" pour mettre le résultat "somme
totale des

transactions"

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" &
plgC & "=B" &

i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
x = 4
If GV1 = "ABC" Or GV1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If GV2 = "ABC" Or GV2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If GV3 = "ABC" Or GV3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas sûr de
ce


que tu veux dire, mais ce n'est pas la plus grande
valeur


que je recherche dans la colonne C, mais bien la somme
totale des transactions conclues pour chaque compagnie.
Et


c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche les 3
plus grandes valeurs. Pardon si je n'ai pas été assez
explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys

-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande valeur
sont pour une

même cie, seulement celle ci et les cie ABC, GHI ne
seront pas éliminé.

est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille
Excel,




je
reçois mensuellement des données qui peuvent
facilement




atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des
infos




contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies
dont le




montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente
ces


données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul
dans




C,
trouver les 3 qui ont le montant le plus élevé, et
ensuite


éliminer toutes les autres exceptées ABC, GHI et les
3




plus performantes (sans tenir compte de la
performance




de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys
.


.










Avatar
isabelle
oup's correction,

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End(xlUp).Row)
If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End(xlUp).Row).Address
plgM = Range("C2:C" & Range("C65536").End(xlUp).Row).Address
If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" & plgC & "=B" &
i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
Ci1 = Application.Index([B:B], Application.Match(GV1, [D:D], 0))
Ci2 = Application.Index([B:B], Application.Match(GV2, [D:D], 0))
Ci3 = Application.Index([B:B], Application.Match(GV3, [D:D], 0))
x = 4
If Ci1 = "ABC" Or Ci1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If Ci2 = "ABC" Or Ci2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If Ci3 = "ABC" Or Ci3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1, [D:D], 0))
Ci2 = Application.Index([B:B], Application.Match(GV2, [D:D], 0))
Ci3 = Application.Index([B:B], Application.Match(GV3, [D:D], 0))
For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


:-) au plaisir ! Denys, bonne fin de semaine à toi aussi,

isabelle


Re-bonjour Isabelle,

Wow !!! ça fonctionne à merveille. C'est tout à fait
brillant !!! T'es super !!

Merci infiniment et bonne fin de semaine

Denys

-----Original Message-----
re bonjour Denys,

voilà la modification,
j'ai pris la colonne "D" pour mettre le résultat "somme
totale des

transactions"

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" &
plgC & "=B" &

i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
x = 4
If GV1 = "ABC" Or GV1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If GV2 = "ABC" Or GV2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If GV3 = "ABC" Or GV3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas sûr de
ce


que tu veux dire, mais ce n'est pas la plus grande
valeur


que je recherche dans la colonne C, mais bien la somme
totale des transactions conclues pour chaque compagnie.
Et


c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche les 3
plus grandes valeurs. Pardon si je n'ai pas été assez
explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys

-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande valeur
sont pour une

même cie, seulement celle ci et les cie ABC, GHI ne
seront pas éliminé.

est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille
Excel,




je
reçois mensuellement des données qui peuvent
facilement




atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne D, le
montant des transactions. Je vous fais grâce des
infos




contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies
dont le




montant total des transactions est le plus élevé.

Le problème que j'ai est de la façon dont se présente
ces


données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la colonne B,
Comment faire pour dire à Excel de faire le calcul
dans




C,
trouver les 3 qui ont le montant le plus élevé, et
ensuite


éliminer toutes les autres exceptées ABC, GHI et les
3




plus performantes (sans tenir compte de la
performance




de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les bienvenus...

Merci pour votre temps

Denys
.


.












Avatar
Denys
Merci Isabelle,

Au plaisir de te revoir si jamais un autre souper MPFE est
organisé....au Québec bien sûr...

Denys


-----Original Message-----
oup's correction,

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" &
plgC & "=B" &

i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

x = 4
If Ci1 = "ABC" Or Ci1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If Ci2 = "ABC" Or Ci2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If Ci3 = "ABC" Or Ci3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


:-) au plaisir ! Denys, bonne fin de semaine à toi
aussi,



isabelle


Re-bonjour Isabelle,

Wow !!! ça fonctionne à merveille. C'est tout à fait
brillant !!! T'es super !!

Merci infiniment et bonne fin de semaine

Denys

-----Original Message-----
re bonjour Denys,

voilà la modification,
j'ai pris la colonne "D" pour mettre le
résultat "somme




totale des
transactions"

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*
(" &




plgC & "=B" &
i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
x = 4
If GV1 = "ABC" Or GV1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If GV2 = "ABC" Or GV2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If GV3 = "ABC" Or GV3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas
sûr de





ce
que tu veux dire, mais ce n'est pas la plus grande
valeur


que je recherche dans la colonne C, mais bien la
somme





totale des transactions conclues pour chaque
compagnie.





Et
c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche
les 3





plus grandes valeurs. Pardon si je n'ai pas été
assez





explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys

-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande
valeur






sont pour une
même cie, seulement celle ci et les cie ABC, GHI
ne






seront pas éliminé.
est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille
Excel,




je
reçois mensuellement des données qui peuvent
facilement




atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne
D, le







montant des transactions. Je vous fais grâce des
infos




contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies
dont le




montant total des transactions est le plus
élevé.








Le problème que j'ai est de la façon dont se
présente







ces
données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la
colonne B,







Comment faire pour dire à Excel de faire le
calcul







dans
C,
trouver les 3 qui ont le montant le plus élevé,
et







ensuite
éliminer toutes les autres exceptées ABC, GHI
et les







3
plus performantes (sans tenir compte de la
performance




de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les
bienvenus...








Merci pour votre temps

Denys
.


.



.












Avatar
Starwing
Bonjour Isabelle,

T'as travaillé fort...WOW!!!

Starwing

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End(xlUp).Row)
If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address
plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address
If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" &
plgC & "=B" &
i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))
Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))
Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))
x = 4
If Ci1 = "ABC" Or Ci1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If Ci2 = "ABC" Or Ci2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If Ci3 = "ABC" Or Ci3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))
Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))
Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))
For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle
Avatar
Clément Marcotte
Bonjour,

Moi je vais être à Montréal mercredi prochain pour cela:

http://www.microsoft.com/technet/canada/springtour2004/

Ce n'est pas très Excel, mais il va y avoir une activité "Ask the
experts"

Serge pourra toujours aller à celle de Québec, au mois de juin.




"Denys" a écrit dans le message
de news:d39001c439d0$64167270$
Merci Isabelle,

Au plaisir de te revoir si jamais un autre souper MPFE est
organisé....au Québec bien sûr...

Denys


-----Original Message-----
oup's correction,

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*(" &
plgC & "=B" &

i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

x = 4
If Ci1 = "ABC" Or Ci1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If Ci2 = "ABC" Or Ci2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If Ci3 = "ABC" Or Ci3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


:-) au plaisir ! Denys, bonne fin de semaine à toi
aussi,



isabelle


Re-bonjour Isabelle,

Wow !!! ça fonctionne à merveille. C'est tout à fait
brillant !!! T'es super !!

Merci infiniment et bonne fin de semaine

Denys

-----Original Message-----
re bonjour Denys,

voilà la modification,
j'ai pris la colonne "D" pour mettre le
résultat "somme




totale des
transactions"

Sub Macro6()
For Each c In Range("B2:B" & Range("C65536").End
(xlUp).Row)

If c = Empty Then
Range(c.Address) = Ci
Else: Ci = c
End If
Next
For i = 2 To Range("C65536").End(xlUp).Row
plgC = Range("B2:B" & Range("C65536").End
(xlUp).Row).Address

plgM = Range("C2:C" & Range("C65536").End
(xlUp).Row).Address

If Range("B" & i) <> Range("B" & i - 1) Then _
Range("D" & i) = Evaluate("SUMPRODUCT((" & plgM & ")*
(" &




plgC & "=B" &
i & "))")
Next
GV1 = Application.Large([D:D], 1)
GV2 = Application.Large([D:D], 2)
GV3 = Application.Large([D:D], 3)
x = 4
If GV1 = "ABC" Or GV1 = "GHI" Then
GV1 = Application.Large([D:D], x)
x = x + 1
End If
If GV2 = "ABC" Or GV2 = "GHI" Then
GV2 = Application.Large([D:D], x)
x = x + 1
End If
If GV3 = "ABC" Or GV3 = "GHI" Then
GV3 = Application.Large([D:D], x)
End If
Ci1 = Application.Index([B:B], Application.Match(GV1,
[D:D], 0))

Ci2 = Application.Index([B:B], Application.Match(GV2,
[D:D], 0))

Ci3 = Application.Index([B:B], Application.Match(GV3,
[D:D], 0))

For i = Range("C65536").End(xlUp).Row To 2 Step -1
Select Case Range("B" & i)
Case Ci1, Ci2, Ci3, "ABC", "GHI"
Case Else
Rows(i).Delete
End Select
Next
End Sub

isabelle


Bonjour Isabelle,

Merci infiniment pour ta réponse. Je ne suis pas
sûr de





ce
que tu veux dire, mais ce n'est pas la plus grande
valeur


que je recherche dans la colonne C, mais bien la
somme





totale des transactions conclues pour chaque
compagnie.





Et
c'est à partir de cette somme que je choisis les 3
compagnies en plus de ABC et GHI.

Je crois que tu mentionnes que ton code recherche
les 3





plus grandes valeurs. Pardon si je n'ai pas été
assez





explicite.

Merci beaucoup pour ton temps...

Bonne journée

Denys

-----Original Message-----
re bonjour Denys,

dans l'exemple donnée, si les 3 des plus grande
valeur






sont pour une
même cie, seulement celle ci et les cie ABC, GHI
ne






seront pas éliminé.
est ce bien ce qu'il fallait faire ?

isabelle


Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille
Excel,




je
reçois mensuellement des données qui peuvent
facilement




atteindre plus de 15,000 lignes.

En colonne C j'ai le nom des cies, en colonne
D, le







montant des transactions. Je vous fais grâce des
infos




contenues dans les autres colonnes.

Je dois éliminer toutes les lignes suaf celles
appartenant


disons à la cie ABC, GHI et les trois compagnies
dont le




montant total des transactions est le plus
élevé.








Le problème que j'ai est de la façon dont se
présente







ces
données... En voici un aperçu:

B C

ABC $5.00
$5.10
$5.20
$5.30
$5.40
$5.50
DEF $12.32
$13.25
$14.18
$15.11
$16.04
$16.97
$17.90
$18.83
GHI $7.54
$7.91
$8.28
$8.65
$9.02
$9.39
$9.76
$10.13
JKLMN $1.67
$2.01
$2.35
$2.69
$3.03
$3.37
$3.71
$4.05
$4.39
PQR $3.23
$3.44
$3.65
$3.86
$4.07
$4.28
$4.49
$4.70
$4.91
$5.12
$5.33
$15.54
$15.75
$15.96
$16.17
$16.38
$16.59
$16.80
$17.01
$17.22
STU $4.33
$4.44
$4.55

Les noms de cie ne se répétant pas dans la
colonne B,







Comment faire pour dire à Excel de faire le
calcul







dans
C,
trouver les 3 qui ont le montant le plus élevé,
et







ensuite
éliminer toutes les autres exceptées ABC, GHI
et les







3
plus performantes (sans tenir compte de la
performance




de
ABC et GHI...

Compliqué n'est-ce pas ????

Si vous avez une idée, vous êtes les
bienvenus...








Merci pour votre temps

Denys
.


.



.












1 2