Afficher uniquement des blocs de lignes.
Résolu
ched64
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Voici mon problème, j'aimerai mettre un filtre qui agit sur un bloc de ligne.
Cela sera sans doute plus simple a comprendre avec le fichier ci-dessous.
https://www.cjoint.com/c/CGDxdOxN54P
En cliquant sur "choix", j'aimerai pouvoir choisir d'afficher uniquement le bloc AAAAA (l4 à l7), le bloc BBBBB (l9 à l12), CCCCC (l14 à l17).
Je ne sais pas si cela est possible en utilisant simplement un filtre, ou bien s'il faut utiliser une macro avec plusieurs bouton (choix A, choix B, choix C).
Je dois faire ceci d'ici jeudi si possible, merci de votre aide :)
Cédric
Voici mon problème, j'aimerai mettre un filtre qui agit sur un bloc de ligne.
Cela sera sans doute plus simple a comprendre avec le fichier ci-dessous.
https://www.cjoint.com/c/CGDxdOxN54P
En cliquant sur "choix", j'aimerai pouvoir choisir d'afficher uniquement le bloc AAAAA (l4 à l7), le bloc BBBBB (l9 à l12), CCCCC (l14 à l17).
Je ne sais pas si cela est possible en utilisant simplement un filtre, ou bien s'il faut utiliser une macro avec plusieurs bouton (choix A, choix B, choix C).
Je dois faire ceci d'ici jeudi si possible, merci de votre aide :)
Cédric
A voir également:
- Afficher uniquement des blocs de lignes.
- Partager des photos en ligne - Guide
- Dans le diaporama à télécharger, les diapositives s’enchaînent automatiquement. combien de temps la diapositive crayon met-elle à s’afficher ? combien de temps reste-t-elle affichée à l’écran ? ✓ - Forum Powerpoint
- Afficher mot de passe wifi android - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
4 réponses
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.
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
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
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.
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
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