OVH Cloud OVH Cloud

Bug sur Filtre automatique ? - Pour michdenis

2 réponses
Avatar
Comres.metz
Rebonjour,

Cette demande s'adresse plus particulierement à Michdenis.

J'ai recopié le code que vous m'avez fournis et cela fonctionne presque ;-)

Cette procédure va recopier toutes tes données (sans les en-têtes de
colonne) en évitant d'y inclure les doublons trouvés.
>
> '-------------------------
> Sub FiltreElabore()
>
> Application.ScreenUpdating = False
> With Worksheets("Feuil1") 'à déterminer
> With .Range("A4:C250")
> .AdvancedFilter _
> Action:=xlFilterInPlace, _
> CriteriaRange:=.Item(1, 1), unique:=True
> .Offset(1).SpecialCells(xlCellTypeVisible).Copy _
> Sheets(.Parent.Name).Range("CA4")
> .Parent.ShowAllData
> End With
> End With
>
> End Sub
> '-------------------------

Je me suis aperçu que si la ligne 4 contient une donnée unique : AA A10
OUI
par rapport à la ligne 5 : BB B20 NON
la ligne 4 n'est pas recopié.
Alors que si la ligne 4 est identique à la ligne 5, la ligne 4 est bien
prise en compte.

Savez vous pourquoi et surtout, comment faire pour capturer la ligne 4 si
elle est unique.

Merci d'avance.

2 réponses

Avatar
michdenis
Bonjour Comres.met,

Le filtre élaboré demande OBLIGATOIREMENT une étiquette de colonne pour chaque champ de ton tableau. En conséquence la ligne A4 qui
est la première ligne de ton tableau représente la ligne d'étiquette... ou est considérée comme tel par excel. Dans ma compréhension
de ta problématique, j' ai conclu que tu voulais obtenir seulement les données sans la ligne d'étiquettes dans ta plage de résultat,
j'ai donc pris l'initiative de faire disparaître la ligne A4 (ligne d'étiquette) de la plage de résultat. Cela explique pourquoi tes
données n'apparaissent pas ... ces données se retrouvent sur la ligne d'étiquette...!!!!!!!


Salutations!




"Comres.metz" a écrit dans le message de news: 4337c389$0$1734$
Rebonjour,

Cette demande s'adresse plus particulierement à Michdenis.

J'ai recopié le code que vous m'avez fournis et cela fonctionne presque ;-)

Cette procédure va recopier toutes tes données (sans les en-têtes de
colonne) en évitant d'y inclure les doublons trouvés.

'-------------------------
Sub FiltreElabore()

Application.ScreenUpdating = False
With Worksheets("Feuil1") 'à déterminer
With .Range("A4:C250")
.AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=.Item(1, 1), unique:=True
.Offset(1).SpecialCells(xlCellTypeVisible).Copy _
Sheets(.Parent.Name).Range("CA4")
.Parent.ShowAllData
End With
End With

End Sub
'-------------------------


Je me suis aperçu que si la ligne 4 contient une donnée unique : AA A10
OUI
par rapport à la ligne 5 : BB B20 NON
la ligne 4 n'est pas recopié.
Alors que si la ligne 4 est identique à la ligne 5, la ligne 4 est bien
prise en compte.

Savez vous pourquoi et surtout, comment faire pour capturer la ligne 4 si
elle est unique.

Merci d'avance.

Avatar
lolo
Bonjour, c'est Comres mais depuis la maison.
En fait, je pensais à la lecture du code, que c'était une version ne
prenant pas en compte la ligne d'etiquette.
Cette derniere étant obligatoire, j'ai modifié mes tableaux en rajoutant
en ligne 4, une cellule vide, et que je masque.
Votre code fonctionne donc nickel. Je n'en doutais pas :-)

Encore merci pour tout.

Bonjour Comres.met,

Le filtre élaboré demande OBLIGATOIREMENT une étiquette de colonne pour chaque champ de ton tableau. En conséquence la ligne A4 qui
est la première ligne de ton tableau représente la ligne d'étiquette... ou est considérée comme tel par excel. Dans ma compréhension
de ta problématique, j' ai conclu que tu voulais obtenir seulement les données sans la ligne d'étiquettes dans ta plage de résultat,
j'ai donc pris l'initiative de faire disparaître la ligne A4 (ligne d'étiquette) de la plage de résultat. Cela explique pourquoi tes
données n'apparaissent pas ... ces données se retrouvent sur la ligne d'étiquette...!!!!!!!


Salutations!




"Comres.metz" a écrit dans le message de news: 4337c389$0$1734$
Rebonjour,

Cette demande s'adresse plus particulierement à Michdenis.

J'ai recopié le code que vous m'avez fournis et cela fonctionne presque ;-)

Cette procédure va recopier toutes tes données (sans les en-têtes de
colonne) en évitant d'y inclure les doublons trouvés.

'-------------------------
Sub FiltreElabore()

Application.ScreenUpdating = False
With Worksheets("Feuil1") 'à déterminer
With .Range("A4:C250")
.AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=.Item(1, 1), unique:=True
.Offset(1).SpecialCells(xlCellTypeVisible).Copy _
Sheets(.Parent.Name).Range("CA4")
.Parent.ShowAllData
End With
End With

End Sub
'-------------------------



Je me suis aperçu que si la ligne 4 contient une donnée unique : AA A10
OUI
par rapport à la ligne 5 : BB B20 NON
la ligne 4 n'est pas recopié.
Alors que si la ligne 4 est identique à la ligne 5, la ligne 4 est bien
prise en compte.

Savez vous pourquoi et surtout, comment faire pour capturer la ligne 4 si
elle est unique.

Merci d'avance.