je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication.
dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec
l'opération associée la plus haute.
il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant
OF OP
1234 10
1234 20
1234 30
1234 40
5678 5
5678 10
5678 20
.... ....
.... ....
après traitement
OF OP
1234 40
5678 20
-- Une formule permettant de mettre un 1 devant les lignes à conserver :
Si OF est en colonne A1:A8, OP en colonne B1:B8. =SI(B2=MAX(SI(A2=$A$2:$A$8;$B$2:$B$8));1;0)
Après pour la suppression proprement dit, je ne sais pas (faut une macro et j'aime pas les macros).
A+
Vincent.
Salut Vincent ;-) J'utiliserai plutôt la formule suivante pour mettre des zéros et des uns (pour la macro, j'ai mis cette formule en colonne E) : =SI(SOMMEPROD(MAX($B$2:$B$8*($A$2:$A$8¢)))²;1;0) Evidemment, tu peux aller plus loin que 8 en ligne...
Ensuite, la macro pourrait être :
Sub DoublonsSPéc() For i = 6 To 0 Step -1 If Range("E2").Offset(i).Value <> 1 Then Range("E2").Offset(i).EntireRow.Delete End If Next End Sub
Ca te va ?
-----Message d'origine----- bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec
l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 ..... .... ..... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
.
Salut Vincent ;-)
J'utiliserai plutôt la formule suivante pour mettre des
zéros et des uns (pour la macro, j'ai mis cette formule en
colonne E) :
=SI(SOMMEPROD(MAX($B$2:$B$8*($A$2:$A$8=A2)))=B2;1;0)
Evidemment, tu peux aller plus loin que 8 en ligne...
Ensuite, la macro pourrait être :
Sub DoublonsSPéc()
For i = 6 To 0 Step -1
If Range("E2").Offset(i).Value <> 1 Then
Range("E2").Offset(i).EntireRow.Delete
End If
Next
End Sub
Ca te va ?
-----Message d'origine-----
bonjour,
je souhaiterai automatiser la suppression de certaines
lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication.
dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de
fabrication avec
l'opération associée la plus haute.
il s'agit donc de supprimer des doublons, voire triplé ou
plus de la colonne
A mais en tenant compte de la valeur la plus haute de la
colonne B.
ex: avant
OF OP
1234 10
1234 20
1234 30
1234 40
5678 5
5678 10
5678 20
..... ....
..... ....
après traitement
OF OP
1234 40
5678 20
Salut Vincent ;-) J'utiliserai plutôt la formule suivante pour mettre des zéros et des uns (pour la macro, j'ai mis cette formule en colonne E) : =SI(SOMMEPROD(MAX($B$2:$B$8*($A$2:$A$8¢)))²;1;0) Evidemment, tu peux aller plus loin que 8 en ligne...
Ensuite, la macro pourrait être :
Sub DoublonsSPéc() For i = 6 To 0 Step -1 If Range("E2").Offset(i).Value <> 1 Then Range("E2").Offset(i).EntireRow.Delete End If Next End Sub
Ca te va ?
-----Message d'origine----- bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec
l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 ..... .... ..... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
.
AV
Plages à adapter (colonne C vide) Sub zzz_Sup() With [C2] .FormulaArray = "²=MAX(($A$2:$A$10¢)*$B$2:$B$10)" .AutoFill Destination:=[C2:C10] End With [C1:C10].AutoFilter Field:=1, Criteria1:úlse [C2:C10].SpecialCells(xlCellTypeVisible).EntireRow.Delete Selection.AutoFilter: [C:C].Clear End Sub
AV
"vincent" a écrit dans le message news:
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 .... .... .... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
Plages à adapter (colonne C vide)
Sub zzz_Sup()
With [C2]
.FormulaArray = "²=MAX(($A$2:$A$10¢)*$B$2:$B$10)"
.AutoFill Destination:=[C2:C10]
End With
[C1:C10].AutoFilter Field:=1, Criteria1:úlse
[C2:C10].SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter: [C:C].Clear
End Sub
AV
"vincent" <NO_spamnonononon_vincentmtmt@hotmail.com> a écrit dans le message
news: ugC7e2ukDHA.2416@TK2MSFTNGP10.phx.gbl...
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication.
dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec
l'opération associée la plus haute.
il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant
OF OP
1234 10
1234 20
1234 30
1234 40
5678 5
5678 10
5678 20
.... ....
.... ....
après traitement
OF OP
1234 40
5678 20
Plages à adapter (colonne C vide) Sub zzz_Sup() With [C2] .FormulaArray = "²=MAX(($A$2:$A$10¢)*$B$2:$B$10)" .AutoFill Destination:=[C2:C10] End With [C1:C10].AutoFilter Field:=1, Criteria1:úlse [C2:C10].SpecialCells(xlCellTypeVisible).EntireRow.Delete Selection.AutoFilter: [C:C].Clear End Sub
AV
"vincent" a écrit dans le message news:
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 .... .... .... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
vincent
merci à tous celà marche très bien...
vincent
"AV" a écrit dans le message de news:bmjlo4$nbh$
Plages à adapter (colonne C vide) Sub zzz_Sup() With [C2] .FormulaArray = "²=MAX(($A$2:$A$10¢)*$B$2:$B$10)" .AutoFill Destination:=[C2:C10] End With [C1:C10].AutoFilter Field:=1, Criteria1:úlse [C2:C10].SpecialCells(xlCellTypeVisible).EntireRow.Delete Selection.AutoFilter: [C:C].Clear End Sub
AV
"vincent" a écrit dans le message
news:
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 .... .... .... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
merci à tous celà marche très bien...
vincent
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:bmjlo4$nbh$1@news-reader3.wanadoo.fr...
Plages à adapter (colonne C vide)
Sub zzz_Sup()
With [C2]
.FormulaArray = "²=MAX(($A$2:$A$10¢)*$B$2:$B$10)"
.AutoFill Destination:=[C2:C10]
End With
[C1:C10].AutoFilter Field:=1, Criteria1:úlse
[C2:C10].SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter: [C:C].Clear
End Sub
AV
"vincent" <NO_spamnonononon_vincentmtmt@hotmail.com> a écrit dans le
message
news: ugC7e2ukDHA.2416@TK2MSFTNGP10.phx.gbl...
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui
possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication.
dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec
l'opération associée la plus haute.
il s'agit donc de supprimer des doublons, voire triplé ou plus de la
colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant
OF OP
1234 10
1234 20
1234 30
1234 40
5678 5
5678 10
5678 20
.... ....
.... ....
après traitement
OF OP
1234 40
5678 20
Plages à adapter (colonne C vide) Sub zzz_Sup() With [C2] .FormulaArray = "²=MAX(($A$2:$A$10¢)*$B$2:$B$10)" .AutoFill Destination:=[C2:C10] End With [C1:C10].AutoFilter Field:=1, Criteria1:úlse [C2:C10].SpecialCells(xlCellTypeVisible).EntireRow.Delete Selection.AutoFilter: [C:C].Clear End Sub
AV
"vincent" a écrit dans le message
news:
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 .... .... .... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
Alain CROS
Bonjour.
Cette proc te créer une nouvelle feuille avec les informations qui t'intéresse. Tes données en colonne A et B de Feuil1. Insertion Nom Définir OF = DECALER(Feuil1!$A$A;;;NBVAL(Feuil1!$A:$A))
Sub Doublonspeciaux() Dim WS As Worksheet, LeNom As String, NbRow As Long Set WS = Worksheets.Add WS.Name = "PageSansDoublons" NbRow = [OF].Rows.Count Range([OF].Address(external:=True)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=WS.Range("A1:A" & NbRow), Unique:=True LeNom = [OF].Parent.Name WS.[B1] = Worksheets(LeNom).[B1] WS.[B2].FormulaArray = "=MAX(IF(" & LeNom & "!A$2:A$" & NbRow & _ "¢," & LeNom & "!B$2:B$" & NbRow & ",""""))" WS.[B2].Resize(Application.CountA(WS.[A:A]) - 1).FillDown Set WS = Nothing End Sub
Alain CROS.
"vincent" a écrit dans le message de news:
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 .... .... .... .... après traitement OF OP 1234 40 5678 20
merci de votre aide
vincent
Bonjour.
Cette proc te créer une nouvelle feuille avec les informations qui t'intéresse.
Tes données en colonne A et B de Feuil1.
Insertion Nom Définir OF = DECALER(Feuil1!$A$A;;;NBVAL(Feuil1!$A:$A))
Sub Doublonspeciaux()
Dim WS As Worksheet, LeNom As String, NbRow As Long
Set WS = Worksheets.Add
WS.Name = "PageSansDoublons"
NbRow = [OF].Rows.Count
Range([OF].Address(external:=True)).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=WS.Range("A1:A" & NbRow), Unique:=True
LeNom = [OF].Parent.Name
WS.[B1] = Worksheets(LeNom).[B1]
WS.[B2].FormulaArray = "=MAX(IF(" & LeNom & "!A$2:A$" & NbRow & _
"¢," & LeNom & "!B$2:B$" & NbRow & ",""""))"
WS.[B2].Resize(Application.CountA(WS.[A:A]) - 1).FillDown
Set WS = Nothing
End Sub
Alain CROS.
"vincent" <NO_spamnonononon_vincentmtmt@hotmail.com> a écrit dans le message de news: ugC7e2ukDHA.2416@TK2MSFTNGP10.phx.gbl...
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent
les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication.
dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec
l'opération associée la plus haute.
il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne
A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant
OF OP
1234 10
1234 20
1234 30
1234 40
5678 5
5678 10
5678 20
.... ....
.... ....
après traitement
OF OP
1234 40
5678 20
Cette proc te créer une nouvelle feuille avec les informations qui t'intéresse. Tes données en colonne A et B de Feuil1. Insertion Nom Définir OF = DECALER(Feuil1!$A$A;;;NBVAL(Feuil1!$A:$A))
Sub Doublonspeciaux() Dim WS As Worksheet, LeNom As String, NbRow As Long Set WS = Worksheets.Add WS.Name = "PageSansDoublons" NbRow = [OF].Rows.Count Range([OF].Address(external:=True)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=WS.Range("A1:A" & NbRow), Unique:=True LeNom = [OF].Parent.Name WS.[B1] = Worksheets(LeNom).[B1] WS.[B2].FormulaArray = "=MAX(IF(" & LeNom & "!A$2:A$" & NbRow & _ "¢," & LeNom & "!B$2:B$" & NbRow & ",""""))" WS.[B2].Resize(Application.CountA(WS.[A:A]) - 1).FillDown Set WS = Nothing End Sub
Alain CROS.
"vincent" a écrit dans le message de news:
bonjour,
je souhaiterai automatiser la suppression de certaines lignes qui possèdent les caractéristiques suivantes:
dans la colonne A se trouvent les ordres de fabrication. dans la colonne B se trouvent leurs opérations associées.
je souhaiterais ne conserver qu'un seul ordre de fabrication avec l'opération associée la plus haute. il s'agit donc de supprimer des doublons, voire triplé ou plus de la colonne A mais en tenant compte de la valeur la plus haute de la colonne B.
ex: avant OF OP 1234 10 1234 20 1234 30 1234 40 5678 5 5678 10 5678 20 .... .... .... .... après traitement OF OP 1234 40 5678 20