Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir
que les lignes dont la colonne A contient "1", ou toutes les lignes dont la
colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de
titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire
autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à
voir les fameuses flèches du filtre, d'où la motivation de passer par la
macro.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Greg
J'ai oublié : si je lance la première macro puis la deuxième, elle doivent se cumuler : Dans l'exemple pris dans le post précédent, on verra toutes les lignes dont la colonne A contient "1" ET la colonne E contient "toto".
Quelle macro permet également d'annuler tous les filtres ? Tous les filtres en colonne E ?
Merci à vous
Greg
"Greg" a écrit dans le message de groupe de discussion : 4d4e9fc3$0$4854$
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
J'ai oublié : si je lance la première macro puis la deuxième, elle doivent
se cumuler : Dans l'exemple pris dans le post précédent, on verra toutes les
lignes dont la colonne A contient "1" ET la colonne E contient "toto".
Quelle macro permet également d'annuler tous les filtres ? Tous les filtres
en colonne E ?
Merci à vous
Greg
"Greg" <kln@LJKnd> a écrit dans le message de groupe de discussion :
4d4e9fc3$0$4854$426a74cc@news.free.fr...
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir
que les lignes dont la colonne A contient "1", ou toutes les lignes dont
la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la
ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire
autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à
voir les fameuses flèches du filtre, d'où la motivation de passer par la
macro.
J'ai oublié : si je lance la première macro puis la deuxième, elle doivent se cumuler : Dans l'exemple pris dans le post précédent, on verra toutes les lignes dont la colonne A contient "1" ET la colonne E contient "toto".
Quelle macro permet également d'annuler tous les filtres ? Tous les filtres en colonne E ?
Merci à vous
Greg
"Greg" a écrit dans le message de groupe de discussion : 4d4e9fc3$0$4854$
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
Greg
Merci de ne pas répondre... à force de chercher, je me suis rendu compte que je pouvais faire mieux...
Greg
"Greg" a écrit dans le message de groupe de discussion : 4d4ea0be$0$31298$
J'ai oublié : si je lance la première macro puis la deuxième, elle doivent se cumuler : Dans l'exemple pris dans le post précédent, on verra toutes les lignes dont la colonne A contient "1" ET la colonne E contient "toto".
Quelle macro permet également d'annuler tous les filtres ? Tous les filtres en colonne E ?
Merci à vous
Greg
"Greg" a écrit dans le message de groupe de discussion : 4d4e9fc3$0$4854$
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
Merci de ne pas répondre... à force de chercher, je me suis rendu compte que
je pouvais faire mieux...
Greg
"Greg" <kln@LJKnd> a écrit dans le message de groupe de discussion :
4d4ea0be$0$31298$426a74cc@news.free.fr...
J'ai oublié : si je lance la première macro puis la deuxième, elle doivent
se cumuler : Dans l'exemple pris dans le post précédent, on verra toutes
les lignes dont la colonne A contient "1" ET la colonne E contient "toto".
Quelle macro permet également d'annuler tous les filtres ? Tous les
filtres en colonne E ?
Merci à vous
Greg
"Greg" <kln@LJKnd> a écrit dans le message de groupe de discussion :
4d4e9fc3$0$4854$426a74cc@news.free.fr...
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne
voir que les lignes dont la colonne A contient "1", ou toutes les lignes
dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est
la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite
faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je
continue à voir les fameuses flèches du filtre, d'où la motivation de
passer par la macro.
Merci de ne pas répondre... à force de chercher, je me suis rendu compte que je pouvais faire mieux...
Greg
"Greg" a écrit dans le message de groupe de discussion : 4d4ea0be$0$31298$
J'ai oublié : si je lance la première macro puis la deuxième, elle doivent se cumuler : Dans l'exemple pris dans le post précédent, on verra toutes les lignes dont la colonne A contient "1" ET la colonne E contient "toto".
Quelle macro permet également d'annuler tous les filtres ? Tous les filtres en colonne E ?
Merci à vous
Greg
"Greg" a écrit dans le message de groupe de discussion : 4d4e9fc3$0$4854$
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
raphael-diaz
Greg a écrit le 06/02/2011 à 14h18 :
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
Une macro fait à l'arrache et non testé mais au moins tu as les idées copie colle là et travaille là dessus. Dans l'exemple j'ai prit la colonne A et j'ai testé avec plusieurs possibilité pour masquer ou réduire et inversement développer quand tu veux repasser dans l'autre sens. Regarde surtout Hidden, ShowDetail. En esperant que cela t'aidera. Dans tout les cas c'est de la matiere grise. ^^
Sub ExpandShowNullRows(ByVal myChoice As Integer, ByVal mySelector As Boolean) '----------------------------------------------------------------------------------------- ' mySelector = CST_SHOW ou CST_HIDE ' myChoice=1: Développe/Réduit ; myChoice=2: Affiche/masque '----------------------------------------------------------------------------------------- 'On Error GoTo Err Dim c As Range
For Each c In ActiveSheet.Range("A1:A" & Range("Fin").Row - 1) 'pour toutes les cellules de la feuille de calcul jusqu'au une cellule marquée d'un nom défini Fin If IsNumeric(c) And Not IsEmpty(c.Value) And c = 1 Then ' si la valeur de la cellule est numérique et égale à 1 alors Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = mySelector Then 'si le curseur cellule de la cellule n'est pas réduit ou développer Rows(c.Row).ShowDetail = mySelector ' réduire ou développer le curseur lié à la cellule Rows(c.Row).Hidden = Not mySelector 'masquer ou affiche End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = Not mySelector 'masquer les cellules du niveau End Select
Else ' si la valeur de la cellule n'est pas 0 Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = True Then 'Si le curseur cellule n'est pas ouvert Rows(c.Row).ShowDetail = True 'ouvrir le cuseur de la cellule End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = False 'Afficher les cellules masquées End Select
End If
Next
Exit Sub
Err: Select Case Err.Number Case 1004 MsgBox "Nom de cellule Fin absente", vbExclamation, "Erreur" Case Else MsgBox Err.Description, vbExclamation, "Erreur" End Select End Sub
Greg a écrit le 06/02/2011 à 14h18 :
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander
à ne voir
que les lignes dont la colonne A contient "1", ou toutes les lignes
dont la
colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la
ligne de
titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire
autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue
à
voir les fameuses flèches du filtre, d'où la motivation de passer
par la
macro.
Une macro fait à l'arrache et non testé mais au moins tu as les idées copie colle là et travaille là dessus. Dans l'exemple j'ai prit la colonne A et j'ai testé avec plusieurs possibilité pour masquer ou réduire et inversement développer quand tu veux repasser dans l'autre sens.
Regarde surtout Hidden, ShowDetail. En esperant que cela t'aidera. Dans tout les cas c'est de la matiere grise. ^^
Sub ExpandShowNullRows(ByVal myChoice As Integer, ByVal mySelector As Boolean)
'-----------------------------------------------------------------------------------------
' mySelector = CST_SHOW ou CST_HIDE
' myChoice=1: Développe/Réduit ; myChoice=2: Affiche/masque
'-----------------------------------------------------------------------------------------
'On Error GoTo Err
Dim c As Range
For Each c In ActiveSheet.Range("A1:A" & Range("Fin").Row - 1) 'pour toutes les cellules de la feuille de calcul jusqu'au une cellule marquée d'un nom défini Fin
If IsNumeric(c) And Not IsEmpty(c.Value) And c = 1 Then
' si la valeur de la cellule est numérique et égale à 1 alors
Select Case myChoice
Case CST_EXPAND_REDUCE
If Not Rows(c.Row).ShowDetail = mySelector Then 'si le curseur cellule de la cellule n'est pas réduit ou développer
Rows(c.Row).ShowDetail = mySelector ' réduire ou développer le curseur lié à la cellule
Rows(c.Row).Hidden = Not mySelector 'masquer ou affiche
End If
Case CST_SHOW_HIDE 'Pour les niveaux de masquage
Rows(c.Row).Hidden = Not mySelector 'masquer les cellules du niveau
End Select
Else ' si la valeur de la cellule n'est pas 0
Select Case myChoice
Case CST_EXPAND_REDUCE
If Not Rows(c.Row).ShowDetail = True Then 'Si le curseur cellule n'est pas ouvert
Rows(c.Row).ShowDetail = True 'ouvrir le cuseur de la cellule
End If
Case CST_SHOW_HIDE 'Pour les niveaux de masquage
Rows(c.Row).Hidden = False 'Afficher les cellules masquées
End Select
End If
Next
Exit Sub
Err:
Select Case Err.Number
Case 1004
MsgBox "Nom de cellule Fin absente", vbExclamation, "Erreur"
Case Else
MsgBox Err.Description, vbExclamation, "Erreur"
End Select
End Sub
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
Une macro fait à l'arrache et non testé mais au moins tu as les idées copie colle là et travaille là dessus. Dans l'exemple j'ai prit la colonne A et j'ai testé avec plusieurs possibilité pour masquer ou réduire et inversement développer quand tu veux repasser dans l'autre sens. Regarde surtout Hidden, ShowDetail. En esperant que cela t'aidera. Dans tout les cas c'est de la matiere grise. ^^
Sub ExpandShowNullRows(ByVal myChoice As Integer, ByVal mySelector As Boolean) '----------------------------------------------------------------------------------------- ' mySelector = CST_SHOW ou CST_HIDE ' myChoice=1: Développe/Réduit ; myChoice=2: Affiche/masque '----------------------------------------------------------------------------------------- 'On Error GoTo Err Dim c As Range
For Each c In ActiveSheet.Range("A1:A" & Range("Fin").Row - 1) 'pour toutes les cellules de la feuille de calcul jusqu'au une cellule marquée d'un nom défini Fin If IsNumeric(c) And Not IsEmpty(c.Value) And c = 1 Then ' si la valeur de la cellule est numérique et égale à 1 alors Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = mySelector Then 'si le curseur cellule de la cellule n'est pas réduit ou développer Rows(c.Row).ShowDetail = mySelector ' réduire ou développer le curseur lié à la cellule Rows(c.Row).Hidden = Not mySelector 'masquer ou affiche End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = Not mySelector 'masquer les cellules du niveau End Select
Else ' si la valeur de la cellule n'est pas 0 Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = True Then 'Si le curseur cellule n'est pas ouvert Rows(c.Row).ShowDetail = True 'ouvrir le cuseur de la cellule End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = False 'Afficher les cellules masquées End Select
End If
Next
Exit Sub
Err: Select Case Err.Number Case 1004 MsgBox "Nom de cellule Fin absente", vbExclamation, "Erreur" Case Else MsgBox Err.Description, vbExclamation, "Erreur" End Select End Sub
michdenis
| Merci de ne pas répondre... à force de chercher, | je me suis rendu compte que je pouvais faire mieux...
Bonjour,
Ici, les répondeurs sont des bénévoles, il est difficile de leur demander d'assurer la permanence 24 heures sur 24, 7 jours par semaine...Si tu as du temps, merci de te joindre à l'équipe. ;-)
| Merci de ne pas répondre... à force de chercher,
| je me suis rendu compte que je pouvais faire mieux...
Bonjour,
Ici, les répondeurs sont des bénévoles, il est difficile de leur
demander d'assurer la permanence 24 heures sur 24, 7 jours
par semaine...Si tu as du temps, merci de te joindre à
l'équipe.
;-)
| Merci de ne pas répondre... à force de chercher, | je me suis rendu compte que je pouvais faire mieux...
Bonjour,
Ici, les répondeurs sont des bénévoles, il est difficile de leur demander d'assurer la permanence 24 heures sur 24, 7 jours par semaine...Si tu as du temps, merci de te joindre à l'équipe. ;-)
Aucun reproche dans cette réponse, aucun message subliminal..... juste ce qui écrit, rien de plus........
Greg
"michdenis" a écrit dans le message de groupe de discussion : iip2t8$36r$
| Merci de ne pas répondre... à force de chercher, | je me suis rendu compte que je pouvais faire mieux...
Bonjour,
Ici, les répondeurs sont des bénévoles, il est difficile de leur demander d'assurer la permanence 24 heures sur 24, 7 jours par semaine...Si tu as du temps, merci de te joindre à l'équipe. ;-)
Aucun reproche dans cette réponse, aucun message subliminal..... juste ce
qui écrit, rien de plus........
Greg
"michdenis" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion : iip2t8$36r$1@speranza.aioe.org...
| Merci de ne pas répondre... à force de chercher,
| je me suis rendu compte que je pouvais faire mieux...
Bonjour,
Ici, les répondeurs sont des bénévoles, il est difficile de leur
demander d'assurer la permanence 24 heures sur 24, 7 jours
par semaine...Si tu as du temps, merci de te joindre à
l'équipe.
;-)
Aucun reproche dans cette réponse, aucun message subliminal..... juste ce qui écrit, rien de plus........
Greg
"michdenis" a écrit dans le message de groupe de discussion : iip2t8$36r$
| Merci de ne pas répondre... à force de chercher, | je me suis rendu compte que je pouvais faire mieux...
Bonjour,
Ici, les répondeurs sont des bénévoles, il est difficile de leur demander d'assurer la permanence 24 heures sur 24, 7 jours par semaine...Si tu as du temps, merci de te joindre à l'équipe. ;-)
"raphael-diaz" a écrit dans le message de groupe de discussion :
Greg a écrit le 06/02/2011 à 14h18 :
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
Une macro fait à l'arrache et non testé mais au moins tu as les idées copie colle là et travaille là dessus. Dans l'exemple j'ai prit la colonne A et j'ai testé avec plusieurs possibilité pour masquer ou réduire et inversement développer quand tu veux repasser dans l'autre sens. Regarde surtout Hidden, ShowDetail. En esperant que cela t'aidera. Dans tout les cas c'est de la matiere grise. ^^
Sub ExpandShowNullRows(ByVal myChoice As Integer, ByVal mySelector As Boolean) '----------------------------------------------------------------------------------------- ' mySelector = CST_SHOW ou CST_HIDE ' myChoice=1: Développe/Réduit ; myChoice=2: Affiche/masque '----------------------------------------------------------------------------------------- 'On Error GoTo Err Dim c As Range
For Each c In ActiveSheet.Range("A1:A" & Range("Fin").Row - 1) 'pour toutes les cellules de la feuille de calcul jusqu'au une cellule marquée d'un nom défini Fin If IsNumeric(c) And Not IsEmpty(c.Value) And c = 1 Then ' si la valeur de la cellule est numérique et égale à 1 alors Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = mySelector Then 'si le curseur cellule de la cellule n'est pas réduit ou développer Rows(c.Row).ShowDetail = mySelector ' réduire ou développer le curseur lié à la cellule Rows(c.Row).Hidden = Not mySelector 'masquer ou affiche End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = Not mySelector 'masquer les cellules du niveau End Select
Else ' si la valeur de la cellule n'est pas 0 Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = True Then 'Si le curseur cellule n'est pas ouvert Rows(c.Row).ShowDetail = True 'ouvrir le cuseur de la cellule End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = False 'Afficher les cellules masquées End Select
End If
Next
Exit Sub
Err: Select Case Err.Number Case 1004 MsgBox "Nom de cellule Fin absente", vbExclamation, "Erreur" Case Else MsgBox Err.Description, vbExclamation, "Erreur" End Select End Sub
Bonjour et merci pour cette proposition.
Ca fonctionne!
"raphael-diaz" <raphael-diaz@domain-xyz.in> a écrit dans le message de
groupe de discussion : 6P-dnYGYD5J4X9LQ4p2dnAA@giganews.com...
Greg a écrit le 06/02/2011 à 14h18 :
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander
à ne voir
que les lignes dont la colonne A contient "1", ou toutes les lignes
dont la
colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la
ligne de
titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite
faire
autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue
à
voir les fameuses flèches du filtre, d'où la motivation de passer
par la
macro.
Une macro fait à l'arrache et non testé mais au moins tu as les idées
copie
colle là et travaille là dessus. Dans l'exemple j'ai prit la colonne A et
j'ai
testé avec plusieurs possibilité pour masquer ou réduire et inversement
développer quand tu veux repasser dans l'autre sens.
Regarde surtout Hidden, ShowDetail. En esperant que cela t'aidera. Dans
tout
les cas c'est de la matiere grise. ^^
Sub ExpandShowNullRows(ByVal myChoice As Integer, ByVal mySelector As
Boolean)
'-----------------------------------------------------------------------------------------
' mySelector = CST_SHOW ou CST_HIDE
' myChoice=1: Développe/Réduit ; myChoice=2: Affiche/masque
'-----------------------------------------------------------------------------------------
'On Error GoTo Err
Dim c As Range
For Each c In ActiveSheet.Range("A1:A" & Range("Fin").Row - 1) 'pour
toutes
les cellules de la feuille de calcul jusqu'au une cellule marquée d'un nom
défini Fin
If IsNumeric(c) And Not IsEmpty(c.Value) And c = 1 Then
' si la valeur de la cellule est numérique et égale à 1
alors
Select Case myChoice
Case CST_EXPAND_REDUCE
If Not Rows(c.Row).ShowDetail = mySelector Then 'si le
curseur
cellule de la cellule n'est pas réduit ou développer
Rows(c.Row).ShowDetail = mySelector ' réduire ou
développer le curseur lié à la cellule
Rows(c.Row).Hidden = Not mySelector 'masquer ou
affiche
End If
Case CST_SHOW_HIDE 'Pour les niveaux de masquage
Rows(c.Row).Hidden = Not mySelector 'masquer les cellules
du
niveau
End Select
Else ' si la valeur de la cellule n'est pas 0
Select Case myChoice
Case CST_EXPAND_REDUCE
If Not Rows(c.Row).ShowDetail = True Then 'Si le curseur
cellule n'est pas ouvert
Rows(c.Row).ShowDetail = True 'ouvrir le cuseur de
la
cellule
End If
Case CST_SHOW_HIDE 'Pour les niveaux de masquage
Rows(c.Row).Hidden = False 'Afficher les cellules masquées
End Select
End If
Next
Exit Sub
Err:
Select Case Err.Number
Case 1004
MsgBox "Nom de cellule Fin absente", vbExclamation, "Erreur"
Case Else
MsgBox Err.Description, vbExclamation, "Erreur"
End Select
End Sub
"raphael-diaz" a écrit dans le message de groupe de discussion :
Greg a écrit le 06/02/2011 à 14h18 :
Bonjour,
Pourriez-vous m'aider à écrire les lignes de codes pour demander à ne voir que les lignes dont la colonne A contient "1", ou toutes les lignes dont la colonne E contient "toto". La ligne 1 ne doit pas bouger (c'est la ligne de titre). Merci à vous
Greg
PS : Je sais que je peux utiliser les filtres Excel mais je souhaite faire autrement. Quand j'enregistre à l'aide de l'enregistreur VB, je continue à voir les fameuses flèches du filtre, d'où la motivation de passer par la macro.
Une macro fait à l'arrache et non testé mais au moins tu as les idées copie colle là et travaille là dessus. Dans l'exemple j'ai prit la colonne A et j'ai testé avec plusieurs possibilité pour masquer ou réduire et inversement développer quand tu veux repasser dans l'autre sens. Regarde surtout Hidden, ShowDetail. En esperant que cela t'aidera. Dans tout les cas c'est de la matiere grise. ^^
Sub ExpandShowNullRows(ByVal myChoice As Integer, ByVal mySelector As Boolean) '----------------------------------------------------------------------------------------- ' mySelector = CST_SHOW ou CST_HIDE ' myChoice=1: Développe/Réduit ; myChoice=2: Affiche/masque '----------------------------------------------------------------------------------------- 'On Error GoTo Err Dim c As Range
For Each c In ActiveSheet.Range("A1:A" & Range("Fin").Row - 1) 'pour toutes les cellules de la feuille de calcul jusqu'au une cellule marquée d'un nom défini Fin If IsNumeric(c) And Not IsEmpty(c.Value) And c = 1 Then ' si la valeur de la cellule est numérique et égale à 1 alors Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = mySelector Then 'si le curseur cellule de la cellule n'est pas réduit ou développer Rows(c.Row).ShowDetail = mySelector ' réduire ou développer le curseur lié à la cellule Rows(c.Row).Hidden = Not mySelector 'masquer ou affiche End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = Not mySelector 'masquer les cellules du niveau End Select
Else ' si la valeur de la cellule n'est pas 0 Select Case myChoice Case CST_EXPAND_REDUCE If Not Rows(c.Row).ShowDetail = True Then 'Si le curseur cellule n'est pas ouvert Rows(c.Row).ShowDetail = True 'ouvrir le cuseur de la cellule End If Case CST_SHOW_HIDE 'Pour les niveaux de masquage Rows(c.Row).Hidden = False 'Afficher les cellules masquées End Select
End If
Next
Exit Sub
Err: Select Case Err.Number Case 1004 MsgBox "Nom de cellule Fin absente", vbExclamation, "Erreur" Case Else MsgBox Err.Description, vbExclamation, "Erreur" End Select End Sub