En supposant que A2:G2 représente l'étendue des colonnes,
Tu ajoutes une colonne dans laquelle tu mets la formule : =Max(A2:G2) que tu recopies sur l'ensemble des lignes et tu exécutes un filtre avancé (élaboré) sur la colonne affichant les formules et n'oubliant pas de cocher la case à cocher "sans doublon".
Bonjour,
La manière la plus simple,
En supposant que A2:G2 représente l'étendue des colonnes,
Tu ajoutes une colonne dans laquelle tu mets la formule : =Max(A2:G2) que tu recopies sur
l'ensemble des lignes
et tu exécutes un filtre avancé (élaboré) sur la colonne affichant les formules et
n'oubliant pas de cocher la case
à cocher "sans doublon".
En supposant que A2:G2 représente l'étendue des colonnes,
Tu ajoutes une colonne dans laquelle tu mets la formule : =Max(A2:G2) que tu recopies sur l'ensemble des lignes et tu exécutes un filtre avancé (élaboré) sur la colonne affichant les formules et n'oubliant pas de cocher la case à cocher "sans doublon".
Apitos
Bonjour Denis,
Le max des valeurs doit être trouvé dans la colonne F et dans G pour un même objet.
Bonjour Denis,
Le max des valeurs doit être trouvé dans la colonne F et dans G pour un même objet.
A ) Tu fais un filtre avancé sur la colonne A:A en cochant la case à cocher sans doublon. Le résultat du filtre va donner pour chaque nomenclature de la colonne A:A une occurrence de chaque item.
B ) Pour obtenir le max() dans chacune des colonnes B et C dans le nouveau tableau, fais appel à des formules pour compléter le tableau.
Résultat du filtre élaboré : Supposons que la copie du résultat se fait dans la colonne G1:G6 avec en-tête de colonne en G1
G H i Object C T BOA =MAX(SI($A$2:$A$8=G2;$B$2:$B$8)) =MAX(SI($A$2:$A$8=G2;$C$2:$C$8)) BOD DHA DHD FA
Tu recopies les formules sur leur colonne respective.
Les 2 formules sont matricielles, elles requièrent comme validation : Ctrl + Maj + Enter
2 étapes :
A ) Tu fais un filtre avancé sur la colonne A:A en cochant la case à cocher sans doublon.
Le résultat du filtre va donner pour chaque nomenclature de la colonne A:A une
occurrence de chaque item.
B ) Pour obtenir le max() dans chacune des colonnes B et C dans le nouveau tableau,
fais appel à des formules pour compléter le tableau.
Résultat du filtre élaboré : Supposons que la copie du résultat se fait dans la
colonne G1:G6 avec en-tête de colonne en G1
G H
i
Object C
T
BOA =MAX(SI($A$2:$A$8=G2;$B$2:$B$8)) =MAX(SI($A$2:$A$8=G2;$C$2:$C$8))
BOD
DHA
DHD
FA
Tu recopies les formules sur leur colonne respective.
Les 2 formules sont matricielles, elles requièrent comme validation : Ctrl + Maj + Enter
A ) Tu fais un filtre avancé sur la colonne A:A en cochant la case à cocher sans doublon. Le résultat du filtre va donner pour chaque nomenclature de la colonne A:A une occurrence de chaque item.
B ) Pour obtenir le max() dans chacune des colonnes B et C dans le nouveau tableau, fais appel à des formules pour compléter le tableau.
Résultat du filtre élaboré : Supposons que la copie du résultat se fait dans la colonne G1:G6 avec en-tête de colonne en G1
G H i Object C T BOA =MAX(SI($A$2:$A$8=G2;$B$2:$B$8)) =MAX(SI($A$2:$A$8=G2;$C$2:$C$8)) BOD DHA DHD FA
Tu recopies les formules sur leur colonne respective.
Les 2 formules sont matricielles, elles requièrent comme validation : Ctrl + Maj + Enter
Apitos
Bonsoir Denis,
Pourrais-je avoir cette solution avec du code VBA ?
Merci.
Bonsoir Denis,
Pourrais-je avoir cette solution avec du code VBA ?
Pourrais-je avoir cette solution avec du code VBA ?
Merci.
MichD
Exemple dans ton fichier : http://cjoint.com/?BECnrcT83Ph
Le code contenu dans le fichier :
'------------------------------------------------ Sub test() Dim Sh As Worksheet, DerLig As Long Set Sh = Worksheets("Feuil2")
Application.ScreenUpdating = False With Sh With .Range("A1:A" & .Range("A65536").End(xlUp).Row) .AdvancedFilter Action:=xlFilterCopy, _ Copytorange:=Sh.Range("G1"), _ Unique:=True DerLig = .Range("G65536").End(xlUp).Row End With With .Range("G1:G" & .Range("G65536").End(xlUp).Row) .Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes End With .Range("H1") = .Range("B1") .Range("i1") = .Range("C1") .Range("H1:i1").HorizontalAlignment = xlCenter .Range("H2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$B$2:$B$8))" .Range("H2:H" & DerLig).FillDown 'Pour faire disparaître les formules pour 'obtenir seulement les valeurs si nécessaire '.Range("H2:H" & DerLig).Value = .Range("H2:H" & DerLig).Value
.Range("i2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$C$2:$C$8))" .Range("i2:i" & DerLig).FillDown 'Pour faire disparaître les formules pour 'obtenir seulement les valeurs si nécessaire '.Range("i2:i" & DerLig).Value = .Range("i2:i" & DerLig).Value
'Application du format % .Range("H2:I" & DerLig).NumberFormat = "0%" End With Application.ScreenUpdating = True End Sub '------------------------------------------------
Exemple dans ton fichier : http://cjoint.com/?BECnrcT83Ph
Le code contenu dans le fichier :
'------------------------------------------------
Sub test()
Dim Sh As Worksheet, DerLig As Long
Set Sh = Worksheets("Feuil2")
Application.ScreenUpdating = False
With Sh
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter Action:=xlFilterCopy, _
Copytorange:=Sh.Range("G1"), _
Unique:=True
DerLig = .Range("G65536").End(xlUp).Row
End With
With .Range("G1:G" & .Range("G65536").End(xlUp).Row)
.Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes
End With
.Range("H1") = .Range("B1")
.Range("i1") = .Range("C1")
.Range("H1:i1").HorizontalAlignment = xlCenter
.Range("H2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$B$2:$B$8))"
.Range("H2:H" & DerLig).FillDown
'Pour faire disparaître les formules pour
'obtenir seulement les valeurs si nécessaire
'.Range("H2:H" & DerLig).Value = .Range("H2:H" & DerLig).Value
.Range("i2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$C$2:$C$8))"
.Range("i2:i" & DerLig).FillDown
'Pour faire disparaître les formules pour
'obtenir seulement les valeurs si nécessaire
'.Range("i2:i" & DerLig).Value = .Range("i2:i" & DerLig).Value
'Application du format %
.Range("H2:I" & DerLig).NumberFormat = "0%"
End With
Application.ScreenUpdating = True
End Sub
'------------------------------------------------
Exemple dans ton fichier : http://cjoint.com/?BECnrcT83Ph
Le code contenu dans le fichier :
'------------------------------------------------ Sub test() Dim Sh As Worksheet, DerLig As Long Set Sh = Worksheets("Feuil2")
Application.ScreenUpdating = False With Sh With .Range("A1:A" & .Range("A65536").End(xlUp).Row) .AdvancedFilter Action:=xlFilterCopy, _ Copytorange:=Sh.Range("G1"), _ Unique:=True DerLig = .Range("G65536").End(xlUp).Row End With With .Range("G1:G" & .Range("G65536").End(xlUp).Row) .Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes End With .Range("H1") = .Range("B1") .Range("i1") = .Range("C1") .Range("H1:i1").HorizontalAlignment = xlCenter .Range("H2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$B$2:$B$8))" .Range("H2:H" & DerLig).FillDown 'Pour faire disparaître les formules pour 'obtenir seulement les valeurs si nécessaire '.Range("H2:H" & DerLig).Value = .Range("H2:H" & DerLig).Value
.Range("i2").FormulaArray = "=MAX(IF($A$2:$A$8=G2,$C$2:$C$8))" .Range("i2:i" & DerLig).FillDown 'Pour faire disparaître les formules pour 'obtenir seulement les valeurs si nécessaire '.Range("i2:i" & DerLig).Value = .Range("i2:i" & DerLig).Value
'Application du format % .Range("H2:I" & DerLig).NumberFormat = "0%" End With Application.ScreenUpdating = True End Sub '------------------------------------------------
Apitos
Bonsoir Denis,
Merci pour le fichier.
Je vais en faire d'autres essaies et voir les résultats.
Bonsoir Denis,
Merci pour le fichier.
Je vais en faire d'autres essaies et voir les résultats.
Je vais en faire d'autres essaies et voir les résultats.
Apitos
Bonsoir Denis,
Voila un autre essai en utilisant les tableaux, en plus d'une colonne B qu' on devra trouver sa valeur la plus grande en dépendant des valeurs de la colonne D et E.
http://cjoint.com/?BEDsT2NrjzN
Bonsoir Denis,
Voila un autre essai en utilisant les tableaux, en plus d'une colonne B qu' on devra trouver sa valeur la plus grande en dépendant des valeurs de la colonne D et E.
Voila un autre essai en utilisant les tableaux, en plus d'une colonne B qu' on devra trouver sa valeur la plus grande en dépendant des valeurs de la colonne D et E.