Copier des lignes si une condition respectée

Bonjour à tous,

J'aurais besoin d'aide pour réussir à mettre en place une macro ( je débute) ou une fonction qui permet de copier les lignes entières de l'onglet ADHERENTS qui respecte la condition "Handicap" dans la colonne A sur la feuille HANDICAP. Avec la fonction SI cela est possible mais je me retrouve avec des blancs entre les lignes lorsque le critère n'est pas respecté. Cette macro sera également mise en place pour les conditions "Actions_Sociales", "Nutrition", "Bien_Vieillir".

Ci-joint le fichier.

Merci beaucoup pour l'aide que vous pourrez m'apporter.

435adherents.xlsx (14.95 Ko)
156adherents.xlsx (14.95 Ko)

Bonjour,

la fonction "rechercheV" ne correspond pas à ce que vous chercher ?

Bonjour,

Non cette fonction ne suffit pas car je souhaite créer une liste dans la feuille HANDICAP avec l'ensemble des personnes. J'aurais une RECHERCHE V sur la page ADHERENT pour rechercher les personnes par nom.

Est-ce que la RECHERCHE V permet d'avoir une liste entière si plusieurs personnes répondent aux critères ?

Merci pour votre réactivité!

non pas du tout la rechercheV s'arrete au 1er personne trouver

Très bien merci. Donc je reste sur l'idée de Macro. Si jamais vous avez des idées je prends.

Merci

je n'ai pas le temps de vous donnée un code mais dans l'idée :

  • comparer les 2 colonne avec qui contient l'information pour valider la condition (2 boucle for),
  • si la condition est validé,
-> récupéré les ligne où la condition est validé ,

->copier les ligne dans la feuille 1 et la coller dans la feuille 2 ()

Bonjour violainee, (minanse)

Pourrais-tu expliquer ce que tu veux faire exactement (ton tableau, ou plutôt tes tableaux sont difficiles à lire)

violainee a écrit :

J'aurais besoin d'aide pour réussir à mettre en place une macro ( je débute)

donc tu es pardonnée !

Bonjour andrea73,

Je souhaite copier toutes les lignes du feuillet ADHERENTS où dans la colonne A il y a écrit "Handicap" vers le feuillet HANDICAP.

Je ferais la même opération pour l'ensemble des feuillets NUTRITION, BIEN VIEILLIR, ACTIONS SOCIALES.

J'espère que c'est un peu plus clair.

Merci beaucoup.

violainee a écrit :

Bonjour,

Non cette fonction ne suffit pas car je souhaite créer une liste dans la feuille HANDICAP avec l'ensemble des personnes. J'aurais une RECHERCHE V sur la page ADHERENT pour rechercher les personnes par nom.

Est-ce que la RECHERCHE V permet d'avoir une liste entière si plusieurs personnes répondent aux critères ?

Merci pour votre réactivité!

Il est possible d'avoir plusieurs réponses à partir d'un index/equiv qui remplace avantageusement (à mon avis) rechercheV

Un filtre élaboré peut aussi ramener dans la feuille Handicap les lignes qui répondent au(x) critère(s)

En passant: il n'est PAS DU TOUT recommandé de fusionner des cellules

1'043adherents.xlsx (24.37 Ko)

Bonjour violainee (patrick1957, minanse)

Voici une version VBA...

Notice ... pour voir le résultat du filtrage il suffit de se placer sur l'un des onglets HANDICAP, BIEN VIEILLIR...

3'932adherents-v1.xlsm (52.02 Ko)

Bonjour Andrea73,

Merci beaucoup pour votre solution!

Cela fonctionne à merveille.

Petite question : si jamais je rajoute des pôles qu'est-ce que je dois modifier dans la programmation VBA ?

Merci encore !

Bonjour violainee

violainee a écrit :

Merci beaucoup pour votre solution! Cela fonctionne à merveille.

Maintenant pour répondre à

violainee a écrit :

Petite question : si jamais je rajoute des pôles qu'est-ce que je dois modifier dans la programmation VBA ?

il faut

  1. ajouter dans l'onglet OUTIL le nom du "nouveau" Pôle en bas du "tableau que j'ai ajouté" avec en face le nom de l'onglet qui lui correspond cf fig ci-dessous.
  2. puis étendre le nom de ce tableau (obligatoirement selCorresp) de correspondance cf "petite vidéo" ci-dessous

la figure

capture 01

Rebonjour Andrea73,

J'ai suivis votre vidéo pas à pas mais lorsque je me place dans la nouvel onglet les adhérents ne sont pas copié.

Est-ce que dans la VBA je doit modifier tabCorresp en selCorresp ?

Merci

(re)

Oui effectivement c'est de ma faute j'ai oublié de te donner le point 3 (que voici donc) :

3. il faut copier le code VBA qui figure sur chaque onglet "Pôle" and le nouvel onglet "Pôle"

Private Sub Worksheet_Activate()
    Application.EnableEvents = False
    FiltrerAdherents
    Application.EnableEvents = True
End Sub

ce code "Procedure événementielle" indique que le code se déclenche à chaque "activation" de l'onglet en question.

il y a

application.enableEvents à faux (false) pour inhiber la gestion des événements qui ferait tourner le code en boucle

FiltrerAdherents est la procédure que j'ai inséré dans le module 1

puis on remet en place la gestion des événements (true)

Milles excuses !

(re),

j'ai donc ouvert la macro pour la modifier je suis allé dans la programmation de ma nouvelle feuille et j'ai copié le code VBA. Lorsque je quitte la macro et que je reviens sur ma feuille lorsque je clique sur l'onglet ajouté un message avec : "Placez-vous sur un onglet de Pôle avant de commencer le traitement". Est-ce que j'ai oublié de modifier quelque chose ?

Merci encore,

Rechercher des sujets similaires à "copier lignes condition respectee"