Excel tri et (macro ou pas)

Fermé
toni - Modifié par toni le 29/07/2010 à 12:04
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 - 30 juil. 2010 à 21:36
Bonjour,

je suis actuellement en stage et je doit optimiser un fichier excel. jaimerai que la fonction tri s'execute a partir d'un resultat dans une case . jaimerai que en choisissant le numkero de moi elle affiche toutes les lignes dont la conne date correspond au mois choisit.
si vous savez comment peut on s'y prendre avec des macro ou si ce n'est pas necessaire, svp rep mi

merci davance

A voir également:

13 réponses

Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
30 juil. 2010 à 19:29
Re,

Récupère le fichier joint, Feuille1 tri avec colonne supplémentaire et sans code VBA

Feuille2 tableau de la feuille 1 avec colonne (supplémentaire) et code VBA simple

Feuille 3 tout VBA

https://www.cjoint.com/?hEtDw20SKU
1
Bonjour,
C'est il suffit de créer un filtre (tu sélectionnes la cellule juste en haut (date), onglet données puis fitre et cliques sur filtre automatique .
Tu choisis le mois désiré en cliquant sur la cellule ou se trouve la flèche.
Tu auras donc toutes les lignes correspondant à ce mois.
0
smartway14 Messages postés 822 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 8 octobre 2011 185
29 juil. 2010 à 12:31
bonjour;
pour votre problème le tableau croisé dynamique sera plus efficace (TCD)
ou avec cette formule:
=SI(MOIS(A1)=1;A1;" ")
0
je connais tous ca mais j aimerais que cela se fasse automatiquement quand on choisit dans la case A1= 7 (juillet) le filtre automatiquement fasse le tri et n'affiche que les lignes ou les dates sont au mois de juillet
0

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

Posez votre question
svp personne na une idee?
0
Raymond PENTIER Messages postés 58777 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 24 décembre 2024 17 259
29 juil. 2010 à 18:09
Impossible à obtenir avec les fonctions classiques.
Il faudrait recourir à une macro en VBA ; te sens-tu prêt pour ça ?
0
oui oui je me sent pret pour ca je connais pas tres bien les macro mais j en ai deja fait quelques unes dans le fichier
tu as une idee de comment presenter ca sous macro?
0
Raymond PENTIER Messages postés 58777 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 24 décembre 2024 17 259
30 juil. 2010 à 13:39
moi personnellement, non ; mais il y a plusieurs amis dans ce forum qui en seraient capables ...
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
Modifié par Mike-31 le 30/07/2010 à 14:46
Salut,

Tu peux faire sans VBA, il suffit d'ajouter une colonne, avec cette formule en supposant que les dates à filtrer sur ton tableau sont en colonne C et commence en C2. En F2 par exemple colle cette formule, incrémente la vers le bas et filtre à partir de cette colonne

=SI(C2<>"";TEXTE(C2;"mmm");"")

Il est bien sur possible d'écrire un code simple pour automatiser le tri à partir de ma proposition ci-dessus, on masque la colonne F et en G1 on crée une liste déroulante contenant les mois janvier, février etc ... complété par Tous pour un affichage de toute les données

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$1" Then
Range("A1:H30").AutoFilter
Range("A1:H30").AutoFilter Field:=8, Criteria1:=[K1]
If [K1] = "Tous" Then Selection.AutoFilter
End If
End Sub

Il est possible d'aller plus loin avec un code VBA plus complexe

Si tu as besoin d'un modèle je te ferai ça dans la soirée
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
le code que vous avez ecrit ne marche pas chez moi.
Que signifie la la valeur 8 prise par auto field et que dois je inscrire en K1?
et qu'entend tu par plus complexe ? cela pourrait m'interesser
0
j'avais mal retranscris ca marche mais le probleme c'est qu'il prend comme en tete de tri la premiere ligne de donnee et nom pas les titres des colonnes, comment peut on regler ca. Et jaimerai savoir si il est possible que le programme s'execute tant qu'il y a des donnee au lieu de choisir une plage "Range("A1:H30")"
.
merci de ton aide en tout cas il m'est tres precieux ^^
0
merci c est parfait sauf 1 chose qui est que que le tri commence en ligne 4 au lieu de la 2eme comme dans votre fichier (j ai contourner le probleme en cachant ces deux lignes)

merci beaucoup
0
Mike-31 Messages postés 18352 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 décembre 2024 5 110
30 juil. 2010 à 21:36
Re,

Tout dépend de la solution retenue, si tu me le précises je te modifierais le code
0