A voir également:
- Afficher uniquement des blocs de lignes.
- Afficher uniquement des blocs de lignes. ✓ - Forum - Excel
- Excel afficher uniquement les lignes contenant ✓ - Forum - Excel
- Afficher variable d'environnement windows ligne de commande - Articles
- Afficher uniquement les doublons excel ✓ - Forum - Excel
- Besoin d'extraire les doublons sous excel? - Forum - Excel
4 réponses
Raymond PENTIER
- Messages postés
- 53362
- Date d'inscription
- lundi 13 août 2007
- Statut
- Contributeur
- Dernière intervention
- 2 mars 2021
Bonjour.
Je crois que tu le sais parfaitement : on ne peut opérer de filtre que sur des cellules contigües en colonne.
S'il y a une solution macro, tu recevras des propositions.
Sans macro, tu peux contourner le problème en t'inspirant de la discussion : https://forums.commentcamarche.net/forum/affich-28286817-trier-des-tableaux-selon-leur-titre
Cordialement.
Je crois que tu le sais parfaitement : on ne peut opérer de filtre que sur des cellules contigües en colonne.
S'il y a une solution macro, tu recevras des propositions.
Sans macro, tu peux contourner le problème en t'inspirant de la discussion : https://forums.commentcamarche.net/forum/affich-28286817-trier-des-tableaux-selon-leur-titre
Cordialement.
ched64
- Messages postés
- 52
- Date d'inscription
- lundi 1 avril 2013
- Statut
- Membre
- Dernière intervention
- 9 mai 2016
Bonjour,
Merci de ta réponse.
J'ai apporté quelques modifications, j'ai créé un colonne A avec une couleur identique dans celle-ci pour chaque bloc. Je peux ainsi filtrer comme je le voulais par couleur.
J'ai cependant pensé à une autre solution plus facile a utiliser, il s'agit de créer des boutons en haut de la page avec l'intitulé des blocs, puis en cliquant sur un bouton on va affiche uniquement le bloc concerné.
Par exemple :
- en cliquant sur le bouton 1 on verra uniquement les lignes donc la couleur de la case de la colone A est bleue.
- en cliquant sur le bouton 2 on verra uniquement les lignes donc la couleur de la case de la colone A est rouge
- en cliquant sur le bouton TOUS on verra Toutes les lignes.
Quelqu'un saurait-il comment faire cela sous VBA.
Merci de votre aide ;)
Cédric
Merci de ta réponse.
J'ai apporté quelques modifications, j'ai créé un colonne A avec une couleur identique dans celle-ci pour chaque bloc. Je peux ainsi filtrer comme je le voulais par couleur.
J'ai cependant pensé à une autre solution plus facile a utiliser, il s'agit de créer des boutons en haut de la page avec l'intitulé des blocs, puis en cliquant sur un bouton on va affiche uniquement le bloc concerné.
Par exemple :
- en cliquant sur le bouton 1 on verra uniquement les lignes donc la couleur de la case de la colone A est bleue.
- en cliquant sur le bouton 2 on verra uniquement les lignes donc la couleur de la case de la colone A est rouge
- en cliquant sur le bouton TOUS on verra Toutes les lignes.
Quelqu'un saurait-il comment faire cela sous VBA.
Merci de votre aide ;)
Cédric
ched64
- Messages postés
- 52
- Date d'inscription
- lundi 1 avril 2013
- Statut
- Membre
- Dernière intervention
- 9 mai 2016
Bonjour,
Cela correspond tout à fait à mon classeur. Je n'arrive pas a l'utiliser quand je clique sur une commande cela ne fait rien, je peux juste la modifier.
Peut-etre car j'ai une vieille version d'Excel au travail...? On dirait que la macro n'est pas activé.
En tout cas c'est tout à fait cela l'idée
Merci beaucoup
Cela correspond tout à fait à mon classeur. Je n'arrive pas a l'utiliser quand je clique sur une commande cela ne fait rien, je peux juste la modifier.
Peut-etre car j'ai une vieille version d'Excel au travail...? On dirait que la macro n'est pas activé.
En tout cas c'est tout à fait cela l'idée
Merci beaucoup
pijaku
- Messages postés
- 12248
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 mars 2021
Bon!
Donc le principe est le suivant :
1- Activer les macros dans ton classeur,
2- colorier les groupes de cellules de la colonne A, de la couleur de ton choix,
3- Insérer les trois macros suivantes en
> taper ALT+F11 depuis le classeur
> Vous ouvrez donc l'éditeur VBA (de l'aide à ce sujet)
> Insertion/Module
> copié-collé ces codes dans le module
> fermer l'éditeur VBA
4- Dessiner un bouton (comme le petit prince...), attention à choisir un contrôle activeX, pas un bouton de formulaire!!!
5- Sélectionner une cellule précédemment colorée,
6- ALT+F8, choix testcouleur, Exécuter
7- relever le numéro communiqué, cliquez sur OK
8- en mode création, double cliquez sur le bouton de commande, l'éditeur VBA s'ouvre avec ces lignes :
9- remplacer ces lignes par :
10- Remplacer 46 par le nombre noté en 7.
11- fermer l'éditeur
12- passer en mode "pas création"
13- testez en cliquant sur le bouton.
14- répéter cette opération autant de fois que nécessaire.
Donc le principe est le suivant :
1- Activer les macros dans ton classeur,
2- colorier les groupes de cellules de la colonne A, de la couleur de ton choix,
3- Insérer les trois macros suivantes en
> taper ALT+F11 depuis le classeur
> Vous ouvrez donc l'éditeur VBA (de l'aide à ce sujet)
> Insertion/Module
> copié-collé ces codes dans le module
Sub FiltreSelonCouleurEnColonneA(Feuille As String, Couleur As Integer) Dim Lig As Long, DrLig As Long With Sheets(Feuille) Application.ScreenUpdating = False DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 3 To DrLig If .Cells(Lig, 1).Interior.ColorIndex = Couleur Or .Cells(Lig, 1) = "" Then .Rows(Lig).EntireRow.Hidden = False Else .Rows(Lig).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True End With End Sub Sub AfficherTout(Feuille As String) Dim Lig As Long, DrLig As Long With Sheets(Feuille) Application.ScreenUpdating = False DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 3 To DrLig .Rows(Lig).EntireRow.Hidden = False Next Application.ScreenUpdating = True End With End Sub Sub testcouleur() MsgBox ActiveCell.Interior.ColorIndex End Sub
> fermer l'éditeur VBA
4- Dessiner un bouton (comme le petit prince...), attention à choisir un contrôle activeX, pas un bouton de formulaire!!!
5- Sélectionner une cellule précédemment colorée,
6- ALT+F8, choix testcouleur, Exécuter
7- relever le numéro communiqué, cliquez sur OK
8- en mode création, double cliquez sur le bouton de commande, l'éditeur VBA s'ouvre avec ces lignes :
Private Sub CommandButton1_Click() End Sub
9- remplacer ces lignes par :
Private Sub CommandButton1_Click() FiltreSelonCouleurEnColonneA "Feuil1", 46 End Sub
10- Remplacer 46 par le nombre noté en 7.
11- fermer l'éditeur
12- passer en mode "pas création"
13- testez en cliquant sur le bouton.
14- répéter cette opération autant de fois que nécessaire.
ched64
- Messages postés
- 52
- Date d'inscription
- lundi 1 avril 2013
- Statut
- Membre
- Dernière intervention
- 9 mai 2016
J'ai bien suivi ta démarche et je t'en remercie.
J'ai un message d'erreur qui s'affiche sous VBA et je n'arrive pas a le déboguer.
Voir fichier ci-joint:
https://www.cjoint.com/c/CGFpwlBac4n
Merci
J'ai un message d'erreur qui s'affiche sous VBA et je n'arrive pas a le déboguer.
Voir fichier ci-joint:
https://www.cjoint.com/c/CGFpwlBac4n
Merci
ched64
- Messages postés
- 52
- Date d'inscription
- lundi 1 avril 2013
- Statut
- Membre
- Dernière intervention
- 9 mai 2016
A oui en effet je viens de voir cela fonctionne merci beaucoup.
Je voulais faire cela mais uniquement avec la couleur de la case initialement.
Cela n'est peut être pas possible, je vais donc mettre des lettres en trasparence...
Je voulais faire cela mais uniquement avec la couleur de la case initialement.
Cela n'est peut être pas possible, je vais donc mettre des lettres en trasparence...
pijaku
- Messages postés
- 12248
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 mars 2021
C'est possible, mais il faudrait alors boucler sur toutes les cellules de la colonne A (soit 65536) pour savoir lesquelles sont colorées.
En plus j'ai ajouté une condition, si une cellule colonne A est vide, la ligne apparait toujours...
En plus j'ai ajouté une condition, si une cellule colonne A est vide, la ligne apparait toujours...
ched64
- Messages postés
- 52
- Date d'inscription
- lundi 1 avril 2013
- Statut
- Membre
- Dernière intervention
- 9 mai 2016
Oui je viens de voir en faisant des tests.
Est-il difficile de faire en sorte que ça prene en compte uniquement la couleur, (regarder les 65536 lignes comme tu dis...) ou bien fixer de manière à examiner les 500 premières lignes par exemple.
Le problème est qu'une fois mon fichier créé, d'autres personnes vont être amenées à l'utiliser et insérer des lignes dans les différentes blocs de couleurs, elles ne sauront pas qu'il faut rajouter un caractére dans la colonne A et le système ne sera plus bon...
Si jamais tu sais le faire merci encore
Est-il difficile de faire en sorte que ça prene en compte uniquement la couleur, (regarder les 65536 lignes comme tu dis...) ou bien fixer de manière à examiner les 500 premières lignes par exemple.
Le problème est qu'une fois mon fichier créé, d'autres personnes vont être amenées à l'utiliser et insérer des lignes dans les différentes blocs de couleurs, elles ne sauront pas qu'il faut rajouter un caractére dans la colonne A et le système ne sera plus bon...
Si jamais tu sais le faire merci encore