OVH Cloud OVH Cloud

Recopie partielle d'une liste

13 réponses
Avatar
Indigo
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes.
Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur
la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.

10 réponses

1 2
Avatar
Ardus Petus
Données>Filtre>Filtre automatique ou Filtre élaboré

Cordialement,
--
AP

"Indigo" a écrit dans le message de
news:
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2
colonnes.

Je voudrais les extraire automatiquement au fur et à mesure de la saisie
sur

la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.


Avatar
Indigo
J'y ai pensé mais je ne veux pas que soit recopiée toute la liste mais
seulement les éléments du filtrage.

Comment faire?
Avatar
michdenis
Bonjour Indigo,

Tu peux utiliser ce type de code dans la feuille module où l'action se déroule.
L'exemple a retenu la colonne 1 (A:A) comme source du filtre élaboré et
la Range("A1") de la feuil2 comme plage de destination... à toi d'adapter
selon ton application :

'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
With Rg.EntireColumn
.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:þuil2.Range("A1"), Unique:=True
End With
End If

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


Salutations!



"Indigo" a écrit dans le message de news:
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes.
Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur
la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.
Avatar
Indigo
La question est SANS UTILISER DE MACRO.


Bonjour Indigo,

Tu peux utiliser ce type de code dans la feuille module où l'action se déroule.
L'exemple a retenu la colonne 1 (A:A) comme source du filtre élaboré et
la Range("A1") de la feuil2 comme plage de destination... à toi d'adapter
selon ton application :

'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
With Rg.EntireColumn
.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:þuil2.Range("A1"), Unique:=True
End With
End If

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


Salutations!



"Indigo" a écrit dans le message de news:
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes.
Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur
la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.





Avatar
michdenis
Lorsque ton filtre élaboré (sans doublon) est réalisé,

tu sélectionnes ta colonne à copier du résultat de ton filtre,
Barre de menu / édition / atteindre / cellules / visible seulement
et par copier/coller vers ta plage de destination.


Salutations!



"Indigo" a écrit dans le message de news:
La question est SANS UTILISER DE MACRO.


Bonjour Indigo,

Tu peux utiliser ce type de code dans la feuille module où l'action se déroule.
L'exemple a retenu la colonne 1 (A:A) comme source du filtre élaboré et
la Range("A1") de la feuil2 comme plage de destination... à toi d'adapter
selon ton application :

'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
With Rg.EntireColumn
.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:þuil2.Range("A1"), Unique:=True
End With
End If

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


Salutations!



"Indigo" a écrit dans le message de news:
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes.
Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur
la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.





Avatar
Indigo
J'ai du mal expliquer le problème.

Il ne s'agit pas d'utiliser des macros, il ne s'agit pas non plus de
recopier à la main la feuille Base, ni d'utiliser la fonction filtrage sur la
feuille Résultat.

Il s'agit de taper des données sur la feuille base et que celles-ci se
recopient automatiquement sur la feuille Résultat si elles correspondent au
critère. Ici (voir l'image
http://oooforum.free.fr/cijoint/fichier/060407012721.gif )

Pourquoi pas de filtre ? Parce qu'après des opérations vont être réalisées
sur ces résultats et qu'il y a par ailleurs plusieurs centaines de données
même si ici je n'ai indiqué qu'une seule données : Patricia.

Pourquoi pas les macros : parce que je ne les maîtrises pas assez pour
pouvoir ensuite les expliquer.

Il doit bien y avoir une solution? Merci pour votre aide.


Lorsque ton filtre élaboré (sans doublon) est réalisé,

tu sélectionnes ta colonne à copier du résultat de ton filtre,
Barre de menu / édition / atteindre / cellules / visible seulement
et par copier/coller vers ta plage de destination.


Salutations!



"Indigo" a écrit dans le message de news:
La question est SANS UTILISER DE MACRO.


Bonjour Indigo,

Tu peux utiliser ce type de code dans la feuille module où l'action se déroule.
L'exemple a retenu la colonne 1 (A:A) comme source du filtre élaboré et
la Range("A1") de la feuil2 comme plage de destination... à toi d'adapter
selon ton application :

'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Columns(1))
If Not Rg Is Nothing Then
With Rg.EntireColumn
.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:þuil2.Range("A1"), Unique:=True
End With
End If

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


Salutations!



"Indigo" a écrit dans le message de news:
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes.
Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur
la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.










Avatar
JB
Bonjour,

http://cjoint.com/?ehpB3tjtBA

Nommer la BD champ et le nom Nom

-Sélectionner A2:A34

=SI(ESTNUM(PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)& LIGNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0)) ;LIGNE(INDIRECT("1:"&LIGNES(champ)))));
INDEX(champ;PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&L IGNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0)); LIGNE(INDIRECT("1:"&LIGNES(champ))));1);"")

Recopier en colonne B et changer le dernier 1 par 2 (colonne à
récupérer)

-Valider avec Maj+Ctrl+Entrée

Cordialement JB
Avatar
Indigo
C'est tout à fait le genre de procédé que j'attendais. Merci beaucoup JB.


Bonjour,

http://cjoint.com/?ehpB3tjtBA

Nommer la BD champ et le nom Nom

-Sélectionner A2:A34

=SI(ESTNUM(PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIGNE(INDIRECT("1:"&LIGNES(champ)))));
INDEX(champ;PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIGNE(INDIRECT("1:"&LIGNES(champ))));1);"")

Recopier en colonne B et changer le dernier 1 par 2 (colonne à
récupérer)

-Valider avec Maj+Ctrl+Entrée

Cordialement JB




Avatar
JB
Une autre solution non matricielle:

http://cjoint.com/?ehp2pa1fD3

JB
Avatar
Indigo
Quelle est la méthode la plus rapide? À propos, le fichier 1 contient une
macro.
1 2