Macro en sortie de tri

Résolu/Fermé
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 - 24 nov. 2007 à 18:40
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 - 26 nov. 2007 à 22:34
Bonjour,

Bonjour,

Sur la feuil1, dans la colonne B, j'ai une seir de noms, titi, toto, tutu, tete. je fais un filtre automatique sur ces noms.
Est il possible que en sélectionnant un nom dans la liste, qu'une macro puisse me copier la ligne correspondant au nom choisi dans la feuil2 .
merci de votre aide

cdlt
A voir également:

14 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
24 nov. 2007 à 21:07
Bonsoir,

A coller dans le code vba de ta feuille 1:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ActiveCell.EntireRow.Copy
    ActiveSheet.Paste (Worksheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0))
    Application.CutCopyMode = False
    Cancel = True
End Sub

Un double-clic sur une cellule de ta ligne la copie sous la dernière cellule occupée de la colonne A feuille 2.

eric
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
25 nov. 2007 à 16:05
bonjour
merci eric pour ta reponse rapide et efficace. ca fonctionne bien avec un double clic mais ne peut on pas se passer d'un double clic ?
est ce que le fait de selectionner un nom ne pourrait pas lancer la copie de la ligne dans la deuxième feuille.
En fait est ce le fait de cliquer sur une cellule une fois pourrait entrainer le lancement automatique d'une macro ?

merci de ton aide
cdlt
pascal
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
25 nov. 2007 à 16:31
Bonjour,

Si...
personnellement je préfère une action plus volontaire comme le double-clic (surtout qu'il peut-être défini sur le bouton central de la souris) pour éviter les erreurs de manip mais tu peux utiliser l'évènement 'selectionchange'
J'ai ajouté une petite tempo avant le CutCopyMode = False pour visualiser que ton clic a été pris en compte (1/10e de sec, tu mets la valeur que tu veux ou tu mets en commentaires si tu n'en veux pas).
Donc ça devient:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveCell.EntireRow.Copy
    ActiveSheet.Paste (Worksheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0))
    t = Timer
    Do While Timer < t + 0.1
        DoEvents
    Loop
    Application.CutCopyMode = False
End Sub

et le Cancel = True devient inutile
eric
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
25 nov. 2007 à 17:29
bonjour eric

je viens de l'essayer et voilà le résultat
lorsque j'ouvre ma liste de noms et que j'en sélectionne 1, RIEN NE SE PASSE. je suis obligé que recliquer une fois sur la cellule pour que l'action soit prise en compte. n'est il pas possible que l'action se produise dès la selection du nom?

Sinon est ce que la copie de la ligne pourrait se faire toujours au meme endroit sur la feuil2 (toujours sur la ligne 2 par exemple) ?

j'espère que je t'ennuie pas trop avec mes questions mais je ne suis pas balaise dans ce domaine
merci d'avance
pascal
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
25 nov. 2007 à 18:01
Si tu cliques sur la cellule déjà sélectionnée il est normal que rien ne se passe puisque l'évenement est SELECTION CHANGE.
Bien sûr que c'est possible d'inscrire tjs sur la même ligne de la feuille2 (c'est même plus simple) mais il faudra que tu m'expliques l'interet car là il m'échappe. Si c'est juste pour lire les données et les perdre au clic suivant... (???)
Et n'annonces pas tes besoins au fur et à mesure, dit une bonne fois pour toute quel est ton besoin, ton projet, ton but, le pourquoi et le comment.
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
25 nov. 2007 à 18:40
OK Voilà ce que j’aimerai obtenir :
J’ai un gros tableau, une base de données dans laquelle il y a des noms (colonne A) et des habilitations avec des dates de validité (colonne B,C,D,E etc …).
A partir de cette base il faudrait qu’en sélectionnant un nom, je puisse créer un tableau en feuil2 dans lequel j’aurais en A3, A4, A5, A6, les différents items d’habilitation en B2 le nom sélectionné et en B3, B4, B5, B6 les différentes dates de validité correspondant à chaque ITEM pour la personne concernée. tout cela pour pouvoir sortir sur imprimante ce tableau qui sera donné à la personne concernée.
Chaque fois qu’une modification interviendra dans la base de donnée concernant une personne en particulier il faudra pouvoir éditer un tableau récapitulatif de cette personne avec ses habilitations et ses validités.
C’est pourquoi je voulais au max automatiser cette procédure et qu’en sélectionnant le nom dans mon tri je puisse automatiquement avoir en feuil2 le tableau de la personne à imprimer.
Voilà si tu peux m’aider ….
Merci
cdlt
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
25 nov. 2007 à 18:55
si ce que tu dois mettre sur feuil2 en A3:A6 et B3:B6 est présent dans la feuil1, décrit qui est où et chaque donnée pourra être inscrite a sa place définitive
En résumé sii tu cliques sur la ligne 2 feuil1 en quelle colonne se trouve feuil2!A3, feuil2!A4,... feuil2!B3, feuil2!B4 etc ?
eric
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
25 nov. 2007 à 19:52
puis je envoyer un exemple de fichier ici et comment faire ou dois je te l'envoyer en privé ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
25 nov. 2007 à 20:42
Tu peux déposer ton fichier sur www.cijoint.fr et coller le lien ici
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
25 nov. 2007 à 20:52
ok
voici le lien http://www.cijoint.fr/cij114832088832844.xls

à partir du "registre" si je sélectionne un nom, automatiquement le tableau dans "fiche perso" va etre renseigné en conséquence et l'on pourra (j'ai pris l'exemple d'avoir sélectionné ROUDAUT par la fonction "filtre automatique")
imprimer ce tableau pour la personne concernée

merci encore

pascal
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
25 nov. 2007 à 23:29
Voici ton fichier,

En fait, je m'en doutais, on s'est éloigné de la demande du début...
Je t'ai ajouté une case à cocher (non imprimable) pour activer/désactiver la copie que la macro ne s'active pas dès que tu saisis une donnée sur la feuille.
Et j'ai supposé et non contrôlé que les champs étaient dans le même ordre sur les 2 feuilles.
http://www.cijoint.fr/cij3240924632854.xls
Teste et si ça te parait ok n'oublie pas de mettre en résolu stp. merci

Bonne soirée
eric
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
26 nov. 2007 à 06:33
bonjour
merci pour ton aide ca fonctionne correctement et je ferais avec.
Pourtant ma requête d'origine était la possibilité dès la sélection d'un nom dans la liste déroulante en B2, de provoquer automatiquement la copie des données.
Là je le fais en trois temps :
1) clic en B2
2) clic sur le nom choisi
3) validation de la cellule

En fait c'est le 3) que j'espérais éviter

cdlt
et bonne journée Eric
pascal
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
26 nov. 2007 à 07:18
Bonjour,

Tu avais dit "j'ai une seir de noms, titi, toto, tutu, tete. je fais un filtre automatique sur ces noms.
Est il possible que en sélectionnant un nom dans la liste
"
Tu n'as pas dit "dans une liste déroulante" en feuille 2...
Je ne vois pas pourquoi tu valides la cellule, l'évènement étant 'sélection change' il n'y a aucune raison que ça réagisse autrement chez toi. Si tu sélectionnes une nouvelle cellule de la ligne qui t'intereresse, les données se copient.

eriic
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
26 nov. 2007 à 08:03
PS:
je viens de comprendre que c'était à la liste déroulante de ton filtre automatique que tu faisais allusion..
Puisque tu es économe en clic tu crois que tu seras gagnant ?
Une fois un nom de sélectionné pour passer au suivant il faudra cliquer sur la liste, cliquer pour sélectionner 'tous', cliquer sur la liste et cliquer sur le nom suivant..
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4 > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
26 nov. 2007 à 18:45
c'était surtout dans le cas ou la liste était très longue, c'est plus rapide via la liste déroulante . ce n'est pas grave je fais avec et c'est déja très bien.
J'ai un peu modifié mon fichier et me suis exposé à deux autres soucis.
Le sujet étant différent je propose de clore ce sujet et d'en ouvrir un autre dans lequel je joins mon fichier
titre du message : ajout et suppression de noms dans tableaux

merci encore pour ton aide et ton savoir
cdlt
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
26 nov. 2007 à 19:42
ok, n'oublie pas de mettre en résolu ici stp. Merci
eric
0
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 4
26 nov. 2007 à 22:34
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.EntireRow.Copy
ActiveSheet.Paste (Worksheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0))
t = Timer
Do While Timer < t + 0.1
DoEvents
Loop
Application.CutCopyMode = False
End Sub

je remercie vivement eric pour son aide et sa patience
cdlt
0