Recopiage Cellules avec Filtre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

paco22

XLDnaute Junior
Bonjour à tous,

j'aimerais recopier des cellules d'une feuille sur une autre en cliquant sur un bouton, avec comme contrainte un filtre sur une colonne.
Je vous joins le fichier exemple, avec une feuille du resultat voulu.
Le filtre est que l'on ne prends que les personnel ACTIF.
Merci de votre aide.

Paco22
 

Pièces jointes

Re : Recopiage Cellules avec Filtre

Bonjour Skoobi,

c'est vraiment cela que j'espérais... c'est parfait.
Y-aurait-il moyen d'avoir un peu de commentaires pour les lignes suivantes

Set personne = Range(etat.Offset(0, -3), etat.Offset(0, -1))
Set enf1 = Range(etat.Offset(0, 1), etat.Offset(0, 3))

et cela

Set suite = .[A65536].End(xlUp).Offset(1, 0)
If enf1(1).Value <> "" Then
personne.Copy suite
enf1.Copy .Range(suite.Offset(0, 3), suite.Offset(0, 5))
Set suite = .[A65536].End(xlUp).Offset(1, 0)
End If


Merci d'avance
Paco22
 
Re : Recopiage Cellules avec Filtre

Re paco22,
pas de problème.

set personne: la plage personne

etat.Offset(0, -3): la 3e cellule à gauche de le cellule état
etat.Offset(0, -1): la 1ere cellule à gauche de le cellule état
etat.Offset(0, 1): la 1ere cellule à droite de le cellule état

là je pense que tu as compris ce que veut dire offset.

[A65536].End(xlUp): c'est possible de "simuler" celà en faisant:
1-va sur la cellule "A65536"
2- appuie sur la touche "fin"
3- appuie sur la touche "flèche haut"
Offset(1, 0): la 1ere cellule au-dessous

If enf1(1).Value <> "" Then: si la 1ere cellule de la palge "enf1" est vide alors

Edit: si tu veux plus d'explication, n'hésite pas, ne connaissant pas ton niveau en VBA...
 
Dernière édition:
Re : Recopiage Cellules avec Filtre

Bonjour Skoobi,

c'est ok pour les explications.
J'avais une autre question....
est-il possible lors du recopiage des noms prenoms naissances des enfants, de mettre un filtre également sur la date de naissance ?
C'est à dire, que je ne veux pas par exemple prendre les enfants nés avant 01/01/1995.
Merci

Paco22
 
Re : Recopiage Cellules avec Filtre

Re,

oui c'est possible, avec VBA presque tout est possible 😀:

voici les modifications à faire:

Code:
        With Sheets("resultats")
            Set suite = .[A65536].End(xlUp).Offset(1, 0)
            If enf1(1).Value <> ""[B][COLOR="Teal"] And enf1(3).Value >= #1/1/1995#[/COLOR][/B] Then
                personne.Copy suite
                enf1.Copy .Range(suite.Offset(0, 3), suite.Offset(0, 5))
                Set suite = .[A65536].End(xlUp).Offset(1, 0)
            End If
            If enf2(1).Value <> ""[B][COLOR="Teal"] And enf2(3).Value >= #1/1/1995# [/COLOR][/B]Then
                personne.Copy suite
                enf2.Copy .Range(suite.Offset(0, 3), suite.Offset(0, 5))
                Set suite = .[A65536].End(xlUp).Offset(1, 0)
            End If
            If enf3(1).Value <> ""[B][COLOR="Teal"] And enf3(3).Value >= #1/1/1995# [/COLOR][/B]Then
                personne.Copy suite
                enf3.Copy .Range(suite.Offset(0, 3), suite.Offset(0, 5))
                Set suite = .[A65536].End(xlUp).Offset(1, 0)
            End If
            If enf4(1).Value <> "" [COLOR="Teal"][B]And enf4(3).Value >= #1/1/1995#[/B][/COLOR] Then
                personne.Copy suite
                enf4.Copy .Range(suite.Offset(0, 3), suite.Offset(0, 5))
                Set suite = .[A65536].End(xlUp).Offset(1, 0)
            End If
            If enf5(1).Value <> "" [COLOR="Teal"][B]And enf5(3).Value >= #1/1/1995# [/B][/COLOR]Then
                personne.Copy suite
                enf5.Copy .Range(suite.Offset(0, 3), suite.Offset(0, 5))
                Set suite = .[A65536].End(xlUp).Offset(1, 0)
            End If
        End With

et l'explication:
If enf1(1).Value <> "" And enf1(3).Value >= #1/1/1995# Then:
si la 1ere cellule de la plage "enf1" est vide et la 3eme cellule (naissance) est sup. ou égal au 01/01/1995 alors..
Voilà. 🙂
 
Dernière édition:
Re : Recopiage Cellules avec Filtre

Merci Skoobi,

c'est vraiment parfait....c'est ce que je voulais.
C'est vrai que l'on peut tout faire avec VBA.... pour ma part, je débute vraiment... je viens d'avoir un stage de 3 jours sur les Userform... et VBA, et cela m'a donné envie de m'y mettre pour simplifier mes fichiers, et créer des Formulaires plus conviviaux à remplir...

Y-a-t-il un site internet sympa pour les débutants, ou des livres ?
Merci d'avance et à l'occas.

Paco22
 
Re : Recopiage Cellules avec Filtre

Re bonjour,

je suppose que tu parles d'un userform.
Et bien il faudra remplacer la date par la valeur du controle se trouvant dans le userform.
exemple:
#1/1/1995# à remplacer par DateValue(lecontrole.value).
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
178
Réponses
5
Affichages
371
Réponses
3
Affichages
170
Réponses
16
Affichages
1 K
Retour