Filtre automatique sous VBA Excel 2010

Fermé
clark...kent - 11 avril 2012 à 12:13
mousekey Messages postés 68 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 22 novembre 2014 - 12 avril 2012 à 20:25
Bonjour à tous et à toutes,

Novice sous VBA, je vais vous expliquer du mieux que je peux mon problème.

J'ai une feuille nommé "Total". Cette feuille répertorie une liste d'agents et leurs résultats, équipes et attributions en tableau que l'on peut trié.

Je souhaite, à partir d'une feuille 1 nommée Chargement, éxecuté un tri automatique en fonction de l'agent, ou de son équipe. C'est à dire un bouton qui m'affiche l'agent et ses résultats dans une feuille "résultat", un autre bouton qui m'affiche la totalité des agents d'une équipe toujours dans cette feuille résultat.

Afin de lier les données de la liste déroulante de la feuille 1 Chargement, j'ai lié les données dans une feuille 2 nommée base elle même lié à une fonction recherche dans la feuille Total.

Ainsi à chaque fois que l'utilisateur sélectionnera un nom dans une liste déroulante, celui ci lié à un identifiant dans la feuille Base, sera alors lié à la recherche qui affichera le nom de l'agent dans la feuille Totale dans une case éloigné de mon tableau.

Plusieurs problèmes :
- Tout d'abord, mon code ne m'affiche pas le résultat attendu
- Ensuite il faut que les résultats soit effacés à chaque nouveau clic, pour être remplacé par les nouveau résultats. (je ne sais pas faire cela)
- Bizarrement, quand je clique sur le bouton, il me réduit à 0 la taille des lignes de la feuille Total en me conservant que l'en tête des colonnes.

Voici mon code :

Sub chargement()

'Déclaration de la variable Agent
Dim Agent As String
Agent = Sheets("Total").UsedRange.Rows.Count

'Activation de la feuille Total
Sheets("Total").Activate

'Filtre en fonction de l'agent
Range("$H" & Agent).Select
Selection.AutoFilter
ActiveSheet.Range("$H" & Agent).AutoFilter Field:=2, Criteria1:=("M1")

'Copie de la ligne filtrée sous condition
If (Range("$H$2")) = (Range("$M$1")) Then
Rows("2").Copy

'Activation de la feuille résultat
Sheets("Resultats").Activate
Sheets("Resultats").Select

'Sélection de la ligne 2
Rows("2").Select

'Coller le résultat
ActiveSheet.Paste

End If

End Sub

Pour ceux qui sont intéréssés, je peux envoyer mon fichier si vous le souhaitez. Merci de votre aide, car ca fait deux jours que je m'arrache les cheveux pour un bout de code. :(


A voir également:

12 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 11/04/2012 à 18:58
Ton classeur en retour tu n'a que de cliquer sur les boutons.
J'ai adapter les 2 premiers filtres, Agent et Equipe, à toi la suite...
Note que je ne vois pas l'utilité des boutons.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
1
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 avril 2012 à 12:48
Bonjour,
Oui, vaudrait mieux avoir ton fichier, ce serait trop long à corriger toutes les erreurs sans avoir toutes les données à disposition.
A+
0
Clark...kent Messages postés 44 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 1 mars 2020 2
11 avril 2012 à 14:27
Comment je peux t'envoyer mon fichier ou mieux l'attacher dans ce post? Par mail ca serait le plus simple.
Merci
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
11 avril 2012 à 15:15
Sur CCM c'est pas possible mais tu peu déposer ton fichier sur Cjoint.com et mettre le lien dans un poste suivant.
0

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

Posez votre question
Clark...kent Messages postés 44 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 1 mars 2020 2
11 avril 2012 à 15:19
0
clark...kent
11 avril 2012 à 20:48
Merci de ton travail et de ton aide lermite222 mais quand je télécharge le fichier, il me sort plusieurs dossiers et fichiers dans un rar que je ne sais pas me servir...

La plupart s'ouvre avec excel d'autre pas... peu tu m'éclairer sur ton travail s'il te plait.

L'intérêt est de faire un outil simple que tout à chacun puisse utiliser,
le bouton sert tout simplement à valider la sélection si on se trompe
mais aussi à faire jolie :)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 11/04/2012 à 22:05
J'ai essayé le lien et il fonctionne normalement ?? Je l'ai fait avec Excel 2007 mais ça ne devrait pas poser de problème ?
Et il n'est certainement pas en "rar" je n'ai pas le logiciel qui compresse en rar ??
Est-tu certain d'avoir ouvert le bon classeur.
Concernant ->> Faire joli <<- je préfère une appli fonctionnelle plutôt que jolie mais ça c'est mon avis.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
clark...kent
12 avril 2012 à 07:20
J'ai modifié l'extension car il me le télécharge bien en zip et pas xls et maintenant ca s'ouvre impec et ca fonctionne, vraiment merci beaucoup à toi.... je regarde ca dans la journée car j'ai d'autres modifs à faire...

Je sais moi aussi le jolie ca me botte pas plus que ca mais c'est les consignes qu'on m'a donné :|
0
clark...kent
12 avril 2012 à 17:43
Merci à toi j'ai un peu regardé, le code est vraiment, vraiment différent de ce que j'ai fait. Vu que j'arrivais pas a affecter comme critère le contenu d'une cellule, j'essayais un filtre élaboré.

Bref un grand merci

J'ai du par contre supprimé le tous ou toutes, car à chaque chargement, j'avais un bug de la macro donc à la limite tant pis.

Je vais encore t'embeter car j'aimerais vraiment comprendre le code que tu as fait, le but étant pas que je revienne ici tous les 4 matins tu comprends.

Notamment la deuxieme partie du code apres On erreur.

Car pour la suite je veux ressortir toujours avec des chargements les agens inférieurs ou supérieurs à 100%.

Merci beaucoup de ton aide en tout cas.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 12/04/2012 à 19:45
re,
J'ai du par contre supprimé le tous ou toutes, car à chaque chargement, j'avais un bug de la macro donc à la limite tant pis.
Tous/toutes ? Pourquoi ? si tu veux voir la liste au complet tu n'a que de regarder la feuille Total, non ?

Notamment la deuxieme partie du code apres On erreur.
1ère ligne,
Copie uniquement les cellules visibles, ça évite un tas de test.
2èm ligne
Désactive la sélection du filtre et remet toutes les lignes.

le but étant pas que je revienne ici tous les 4 matins tu comprends.
Ca dépend sur combien. (de matin). :DD
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
clark...kent
12 avril 2012 à 20:12
merci de tes lumières, j'a supprimé tous et toutes car effectivement autant tout regardé.

Je comprend mieux ton code maintenant encore merci, je te dois combien? :=)

J'ai juste changé la varibale en string car j'ai collé les noms aux agents et aux équipes.

La prochaine étape est de créer des graphiques de comparaison automatique et de faire ressortir ceux en dessous ou au dessus de 100%.


Je ferme bientot le sujet.

Merci encore.
0
mousekey Messages postés 68 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 22 novembre 2014 4
Modifié par crapoulou le 13/04/2012 à 22:40
-1