MACRO ET FILTRE AUTOMATIQUE
Fermé
ludo
-
18 nov. 2008 à 10:50
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 - 18 nov. 2008 à 21:38
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 - 18 nov. 2008 à 21:38
A voir également:
- MACRO ET FILTRE AUTOMATIQUE
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Message automatique thunderbird - Guide
- Macro word - Guide
13 réponses
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 11:21
18 nov. 2008 à 11:21
Il faudrait que tu nous en montre un peu plus sur le format du tableau.
S'il ne contient pas de donnees confidentielles, poste le ici.
Sinon, cree une copie avec des donnees fictives et poste le.
S'il ne contient pas de donnees confidentielles, poste le ici.
Sinon, cree une copie avec des donnees fictives et poste le.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 11:56
18 nov. 2008 à 11:56
Repete moi ta procedure. Mais en t'appuyant sur un example concret pour que je comprenne bien.
Prends un exemple de selection a faire, et quand tu bloque, explique moi quel bouton tu voudrais, quels lignes tu voudrais exporter etc...
Prends un exemple de selection a faire, et quand tu bloque, explique moi quel bouton tu voudrais, quels lignes tu voudrais exporter etc...
Exemple d'une selection :
AULNAY SOUS BOIS AUTOROUTE A 3 / ZI DE LA BARBIERE AZE 1 41 ivu 16
2 14 7,5 669 312 62,4 234 2621 2855 0,4058
donc je fait une selection à l'aide du filtre, qui va retenir qu'une seule ligne ,je voudrais pouvoir la transférer avec juste l'aide d'un bouton sur un autre fichier , qui va comptabiliser toutes les selections effectuer par les opérateurs ( qui sont encore moins à l'aise que moi avec l'outil excel) .
je voudrai pouvoir faire une autre selection par exemple en changeant l'adresse retenu, la transferer dans le fichier qui comptabilisera le bilan carbone des différentes activités effectués. Mais ne sais pas et arrive pas à transférer qu'une seule ligne retenu par le filtre en appuyant toujours sur le meme bouton.
Je sais pas si c'est trés clair ce que je te dit , mais je l'espère
AULNAY SOUS BOIS AUTOROUTE A 3 / ZI DE LA BARBIERE AZE 1 41 ivu 16
2 14 7,5 669 312 62,4 234 2621 2855 0,4058
donc je fait une selection à l'aide du filtre, qui va retenir qu'une seule ligne ,je voudrais pouvoir la transférer avec juste l'aide d'un bouton sur un autre fichier , qui va comptabiliser toutes les selections effectuer par les opérateurs ( qui sont encore moins à l'aise que moi avec l'outil excel) .
je voudrai pouvoir faire une autre selection par exemple en changeant l'adresse retenu, la transferer dans le fichier qui comptabilisera le bilan carbone des différentes activités effectués. Mais ne sais pas et arrive pas à transférer qu'une seule ligne retenu par le filtre en appuyant toujours sur le meme bouton.
Je sais pas si c'est trés clair ce que je te dit , mais je l'espère
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 12:44
18 nov. 2008 à 12:44
ok je comprends. laisse moi un moment, je pense pouvoir t'aider cet aprem.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 13:54
18 nov. 2008 à 13:54
T'es pret a travailler en simultane avec moi ?
moi sur le doc exemple, toi sur le vrai ou le faux, peu importe.
moi sur le doc exemple, toi sur le vrai ou le faux, peu importe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 14:06
18 nov. 2008 à 14:06
deroulement general : on va creer des liens hypertext dans toutes les cellules du tableau qui vont lancer une fonction qui copie la ligne sur laquelle on a clique.
1) desactiver la mise en forme des liens hypertextes (sinon tout le tableau sera bleu et souligne)
2) creer tous les liens en 1 clic
3) Creer la fonction qui va capturer chaque clic et l'interpreter en copiant la ligne sur laquelle il a ete effectue.
1.1) Menu Format, Style
Nom du style = Lien hypertexte
Tu decoche tout, tu clique sur ajouter
Nom du style = Lien hypertexte visite
Tu decoche tout, tu clique sur ajouter
Tu clic sur OK
T'inquiete, cette modification n'a cours que dans le classeur ouvert.
J'attend ton roger pour passer au point 2.
1) desactiver la mise en forme des liens hypertextes (sinon tout le tableau sera bleu et souligne)
2) creer tous les liens en 1 clic
3) Creer la fonction qui va capturer chaque clic et l'interpreter en copiant la ligne sur laquelle il a ete effectue.
1.1) Menu Format, Style
Nom du style = Lien hypertexte
Tu decoche tout, tu clique sur ajouter
Nom du style = Lien hypertexte visite
Tu decoche tout, tu clique sur ajouter
Tu clic sur OK
T'inquiete, cette modification n'a cours que dans le classeur ouvert.
J'attend ton roger pour passer au point 2.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 14:16
18 nov. 2008 à 14:16
2) Tu selectionne tout le tableau (normalement A13:Q3212)
Menu Insertion, Lien Hypertexte
Tu clique sur Emplacement dans ce document et tu laisse A1 dans Feuil1
Tu clique sur OK
Tu verifie maintenant que quel que soit l'endroit ou on clique dans le tableau, on se retrouve dans la cellule A1.
T'inquiete, ca va nous servir pour la suite...
J'attend pour passer a la suite
Menu Insertion, Lien Hypertexte
Tu clique sur Emplacement dans ce document et tu laisse A1 dans Feuil1
Tu clique sur OK
Tu verifie maintenant que quel que soit l'endroit ou on clique dans le tableau, on se retrouve dans la cellule A1.
T'inquiete, ca va nous servir pour la suite...
J'attend pour passer a la suite
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 14:33
18 nov. 2008 à 14:33
3) Tu vas dans l'editeur Visual Basic (Alt+F11)
Tu vas dans l'explorateur de projet (Ctrl+R)
Tu double clique sur VBAProject (tondoc.xls) / Microsoft Excel Objects / ThisWorkbook
Normalement y'a une feuille blanche qui apparait avec eventuelement :
Tu efface tout et tu remplace par :
Je t'expliquerais ce que ca veut dire plus tard.
Tu me dis quand c'est bon
Tu vas dans l'explorateur de projet (Ctrl+R)
Tu double clique sur VBAProject (tondoc.xls) / Microsoft Excel Objects / ThisWorkbook
Normalement y'a une feuille blanche qui apparait avec eventuelement :
Option Explicit
Tu efface tout et tu remplace par :
Dim CurRow1 As Long, CurRow2 As Long Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) CurRow2 = CurRow1 CurRow1 = Target.Row End Sub Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Dim i As Long Cells(CurRow2, 1).Select Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1)) For j = 1 To 17 Feuil2.Cells(i, j) = Cells(CurRow1, j + 1) Next End Sub
Je t'expliquerais ce que ca veut dire plus tard.
Tu me dis quand c'est bon
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
>
ludo
18 nov. 2008 à 14:51
18 nov. 2008 à 14:51
Regarde plus bas, j'ai fait des modifs.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 14:35
18 nov. 2008 à 14:35
STOP ! Y'a une erreur de syntaxe
Dim CurRow1 As Long, CurRow2 As Long Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) CurRow2 = CurRow1 CurRow1 = Target.Row End Sub Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Dim i As Long Cells(CurRow2, 1).Select Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1)) For j = 1 To 17 Feuil2.Cells(i, j) = Cells(CurRow1, j) Next End Sub
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 14:41
18 nov. 2008 à 14:41
Aller, j'ai mieux encore :
J'attend que tu confirme que tu as bien applique la 3e version.
Dim CurCell1 As Range, CurCell2 As Range Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Set CurCell2 = CurCell1 Set CurCell1 = Target End Sub Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Dim i As Long CurCell2.Select Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1)) For j = 1 To 17 Feuil2.Cells(i, j) = Cells(CurCell1.Row, j) Next End Sub
J'attend que tu confirme que tu as bien applique la 3e version.
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 14:59
18 nov. 2008 à 14:59
Et maintenant sous vos yeux ebahis !
Roulement de tambour...
Va dans la Feuil1.
Fais 3 selections successives et clique sur chacune d'elle (il ne se passe rien a priori)
Va dans la Feuil2
Constate
Roulement de tambour...
Va dans la Feuil1.
Fais 3 selections successives et clique sur chacune d'elle (il ne se passe rien a priori)
Va dans la Feuil2
Constate
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 15:13
18 nov. 2008 à 15:13
de nada.
ameliorations possibles :
- afficher un message apres avoir copier la ligne (sinon on a l'impression qu'il se passe rien et on recommence)
- je crois que ce que tu voulais c'etait enregistrer le clic vers un autre classeur (je suppose que tu saura adapter)
@+
Santiago
ameliorations possibles :
- afficher un message apres avoir copier la ligne (sinon on a l'impression qu'il se passe rien et on recommence)
- je crois que ce que tu voulais c'etait enregistrer le clic vers un autre classeur (je suppose que tu saura adapter)
@+
Santiago
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 15:28
18 nov. 2008 à 15:28
Quelques pistes pour comprendre le code :
A chaque deplacement, on enregistre la position en cours
Parceque quand on clic sur une cellule, on saute vers A1 et on aimerais bien savoir ou on etait quand on a clique
Enchainement de operations :
- je clique sur CELLULE
- L'evenement SelectionChange se lance avec Target = CELLULE
- Le focus bouge vers A1 (la destination du lien hypertexte)
- L'evenement SelectionChange se lance avec Target = A1
- L'evenement FollowHyperlink se lance
Donc au moment ou je gere l'evenement FollowHyperlink, j'ai besoin de savoir ou j'etait 2 cellules avant. C'est pour ca que je memorise ma position dans 2 variables (CurCell1 et CurCell2)
D'abord je retourne en CurCell2 (ou j'etait 2 cran avant)
Mais a ce moment, l'evenement SelectionChange se lance a nouveau avec Target = CELLULE.
Donc quelques lignes plus loin, quand je veux copier la ligne en cours, je copie la ligne CurCell1.Row (et pas CurCell2 qui maintenant correspond a A1)
A chaque deplacement, on enregistre la position en cours
Parceque quand on clic sur une cellule, on saute vers A1 et on aimerais bien savoir ou on etait quand on a clique
Enchainement de operations :
- je clique sur CELLULE
- L'evenement SelectionChange se lance avec Target = CELLULE
- Le focus bouge vers A1 (la destination du lien hypertexte)
- L'evenement SelectionChange se lance avec Target = A1
- L'evenement FollowHyperlink se lance
Donc au moment ou je gere l'evenement FollowHyperlink, j'ai besoin de savoir ou j'etait 2 cellules avant. C'est pour ca que je memorise ma position dans 2 variables (CurCell1 et CurCell2)
D'abord je retourne en CurCell2 (ou j'etait 2 cran avant)
Mais a ce moment, l'evenement SelectionChange se lance a nouveau avec Target = CELLULE.
Donc quelques lignes plus loin, quand je veux copier la ligne en cours, je copie la ligne CurCell1.Row (et pas CurCell2 qui maintenant correspond a A1)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
18 nov. 2008 à 20:22
18 nov. 2008 à 20:22
Bonsoir,
une suggestion : en utilisant l'evenement double-clic ça pourrait alléger la préparation...
eric
une suggestion : en utilisant l'evenement double-clic ça pourrait alléger la préparation...
eric
santiago69
Messages postés
477
Date d'inscription
mercredi 7 mars 2001
Statut
Membre
Dernière intervention
12 septembre 2016
209
18 nov. 2008 à 21:38
18 nov. 2008 à 21:38
Effectivement, grace a eric, nous pouvons proposer une transformation tres simple.
1) Reprend ton document d'origine (avant toute transformation)
2) Ajoute ce code dans VBAProject (pbfiltreautomacro.xls) / Microsoft Excel Objects / ThisWorkbook
3) C'est tout ! Un double clic n'importe ou sur une ligne provoquera son ajout dans la Feuil2.
1) Reprend ton document d'origine (avant toute transformation)
2) Ajoute ce code dans VBAProject (pbfiltreautomacro.xls) / Microsoft Excel Objects / ThisWorkbook
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim i As Long Cancel = True Do: i = i + 1: Loop Until IsEmpty(Feuil2.Cells(i, 1)) For j = 1 To 17 Feuil2.Cells(i, j) = Cells(Target.Row, j) Next MsgBox "La sélection a bien été ajoutée.", vbInformation End Sub
3) C'est tout ! Un double clic n'importe ou sur une ligne provoquera son ajout dans la Feuil2.
18 nov. 2008 à 11:30
merci
18 nov. 2008 à 11:52
voila le lien, je n'est pas mis le fichier vers lequel devrait etre transférer chaque trajet décidé , on peut imaginer que c'est sur une nouvelle feuille.
merci d'avance, moi je bloque vraiment