Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le contenu
est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les lignes
comportant des données visibles apparaissent dans un tableau sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce contexte)
?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le contenu
est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les lignes
comportant des données visibles apparaissent dans un tableau sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce contexte)
?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le contenu
est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les lignes
comportant des données visibles apparaissent dans un tableau sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce contexte)
?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça
rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B)
a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça
rame !
@+
JP
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
O9aZbWlSIHA.6060@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B)
a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça
rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B)
a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai jamais
fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le contenu
est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau sans
"vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce contexte)
?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai jamais
fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça rame !
@+
JP
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
O9aZbWlSIHA.6060@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le contenu
est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau sans
"vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce contexte)
?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai jamais
fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le contenu
est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau sans
"vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce contexte)
?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A le
critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il n'y a
peut-être même pas besoin de macro.
Jac
"j-pascal" a écrit dans le message de news:
%Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça
rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau sans
"vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment
?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A le
critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il n'y a
peut-être même pas besoin de macro.
Jac
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23cMNRalSIHA.1184@TK2MSFTNGP04.phx.gbl...
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça
rame !
@+
JP
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
O9aZbWlSIHA.6060@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau sans
"vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment
?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A le
critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il n'y a
peut-être même pas besoin de macro.
Jac
"j-pascal" a écrit dans le message de news:
%Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins, ça
rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B) a
été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau sans
"vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui, comment
?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonsoir Jac,
Merci pour ta proposition, mais je souhaite laisser le moins
d'initiatives possibles aux différents utilisateurs ...
Par ailleurs, j'imagine que le filtre en question ne s'actualisera pas
tout seul ?!
Le problème de rapidité semble résolu et en plus je suis surpris de
l'actualisation radicale de l'affichage de nouvelles lignes par la
procédure "Private Sub Worksheet_Activate()" (sans passer par le
ré-affichage total des lignes masquées !).
Mon pb maintenant c'est les "Shapes" qui ne sont plus à leurs places ;-(
@+ ?
JP
"Jac" a écrit dans le message de news:Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A
le critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il
n'y a peut-être même pas besoin de macro.
Jac
"j-pascal" a écrit dans le message de news:
%Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins,
ça rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne
B) a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui,
comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonsoir Jac,
Merci pour ta proposition, mais je souhaite laisser le moins
d'initiatives possibles aux différents utilisateurs ...
Par ailleurs, j'imagine que le filtre en question ne s'actualisera pas
tout seul ?!
Le problème de rapidité semble résolu et en plus je suis surpris de
l'actualisation radicale de l'affichage de nouvelles lignes par la
procédure "Private Sub Worksheet_Activate()" (sans passer par le
ré-affichage total des lignes masquées !).
Mon pb maintenant c'est les "Shapes" qui ne sont plus à leurs places ;-(
@+ ?
JP
"Jac" <Jsansp@mfra.net> a écrit dans le message de news:
u6bDajmSIHA.4280@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A
le critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il
n'y a peut-être même pas besoin de macro.
Jac
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23cMNRalSIHA.1184@TK2MSFTNGP04.phx.gbl...
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins,
ça rame !
@+
JP
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
O9aZbWlSIHA.6060@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne
B) a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui,
comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
Bonsoir Jac,
Merci pour ta proposition, mais je souhaite laisser le moins
d'initiatives possibles aux différents utilisateurs ...
Par ailleurs, j'imagine que le filtre en question ne s'actualisera pas
tout seul ?!
Le problème de rapidité semble résolu et en plus je suis surpris de
l'actualisation radicale de l'affichage de nouvelles lignes par la
procédure "Private Sub Worksheet_Activate()" (sans passer par le
ré-affichage total des lignes masquées !).
Mon pb maintenant c'est les "Shapes" qui ne sont plus à leurs places ;-(
@+ ?
JP
"Jac" a écrit dans le message de news:Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A
le critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il
n'y a peut-être même pas besoin de macro.
Jac
"j-pascal" a écrit dans le message de news:
%Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins,
ça rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne
B) a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui,
comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
bonjour Jp,
une possibilité,
With ActiveSheet
For i = 1 To 12
.Shapes("Aide" & i).Visible = False
.Shapes("Aide" & i).Top = 5 * i 'à modifier selon la
dimention des shapes
.Shapes("Aide" & i).Left = 10
Next
.Shapes("Aide13").Visible = True 'ok
End With
isabelleBonsoir Jac,
Merci pour ta proposition, mais je souhaite laisser le moins
d'initiatives possibles aux différents utilisateurs ...
Par ailleurs, j'imagine que le filtre en question ne s'actualisera pas
tout seul ?!
Le problème de rapidité semble résolu et en plus je suis surpris de
l'actualisation radicale de l'affichage de nouvelles lignes par la
procédure "Private Sub Worksheet_Activate()" (sans passer par le
ré-affichage total des lignes masquées !).
Mon pb maintenant c'est les "Shapes" qui ne sont plus à leurs places ;-(
@+ ?
JP
"Jac" a écrit dans le message de news:Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A le
critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il n'y
a peut-être même pas besoin de macro.
Jac
"j-pascal" a écrit dans le message de news:
%Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins,
ça rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B)
a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui,
comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
bonjour Jp,
une possibilité,
With ActiveSheet
For i = 1 To 12
.Shapes("Aide" & i).Visible = False
.Shapes("Aide" & i).Top = 5 * i 'à modifier selon la
dimention des shapes
.Shapes("Aide" & i).Left = 10
Next
.Shapes("Aide13").Visible = True 'ok
End With
isabelle
Bonsoir Jac,
Merci pour ta proposition, mais je souhaite laisser le moins
d'initiatives possibles aux différents utilisateurs ...
Par ailleurs, j'imagine que le filtre en question ne s'actualisera pas
tout seul ?!
Le problème de rapidité semble résolu et en plus je suis surpris de
l'actualisation radicale de l'affichage de nouvelles lignes par la
procédure "Private Sub Worksheet_Activate()" (sans passer par le
ré-affichage total des lignes masquées !).
Mon pb maintenant c'est les "Shapes" qui ne sont plus à leurs places ;-(
@+ ?
JP
"Jac" <Jsansp@mfra.net> a écrit dans le message de news:
u6bDajmSIHA.4280@TK2MSFTNGP06.phx.gbl...
Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A le
critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il n'y
a peut-être même pas besoin de macro.
Jac
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
%23cMNRalSIHA.1184@TK2MSFTNGP04.phx.gbl...
Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins,
ça rame !
@+
JP
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
O9aZbWlSIHA.6060@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B)
a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui,
comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
bonjour Jp,
une possibilité,
With ActiveSheet
For i = 1 To 12
.Shapes("Aide" & i).Visible = False
.Shapes("Aide" & i).Top = 5 * i 'à modifier selon la
dimention des shapes
.Shapes("Aide" & i).Left = 10
Next
.Shapes("Aide13").Visible = True 'ok
End With
isabelleBonsoir Jac,
Merci pour ta proposition, mais je souhaite laisser le moins
d'initiatives possibles aux différents utilisateurs ...
Par ailleurs, j'imagine que le filtre en question ne s'actualisera pas
tout seul ?!
Le problème de rapidité semble résolu et en plus je suis surpris de
l'actualisation radicale de l'affichage de nouvelles lignes par la
procédure "Private Sub Worksheet_Activate()" (sans passer par le
ré-affichage total des lignes masquées !).
Mon pb maintenant c'est les "Shapes" qui ne sont plus à leurs places ;-(
@+ ?
JP
"Jac" a écrit dans le message de news:Bonjour j-pascal,
plutôt que de masquer le lignes les unes après les autres, essaye de
mettre en place un filtre automatique et d'appliquer sur la colonne A le
critère "Vides".
Si le temps de réponse est dans le domaine de l'acceptable, alors il n'y
a peut-être même pas besoin de macro.
Jac
"j-pascal" a écrit dans le message de news:
%Re,
J'ai oublié de préciser qu'en réalité mon tableau comporte plusieurs
dizaines de colonnes, contenant elles-mêmes de nombreuses formules de
recherche (RECHERCHEV).
Je me demande si la macro en question (masquer les lignes) n'est pas
ralentie par un calcul intempestif ??
Peut-être faudrait-il désactiver le calcul automatique ? Je ne l'ai
jamais fait, et je ne suis pas sûr que le pb vienne de là. Néanmoins,
ça rame !
@+
JP
"j-pascal" a écrit dans le message de news:Bonsoir à tous,
Sur la Feuil1, j'ai un tableau de 500 lignes x 10 colonnes.
Dans la colonne B de la Feuil1, j'ai des noms classés en ordre
alphabétique.
Dans la colonne A de la Feuil1, j'ai ">>" si le nom (de la colonne B)
a été saisi dans la Feuil2.
Seuls les noms précédés de ">>" s'affichent (via une MEFC).
Résultat : les données visibles alternent avec des lignes dont le
contenu est masqué par la MEFC.
Je ne sais pas quelle est la meilleure solution pour que seules les
lignes comportant des données visibles apparaissent dans un tableau
sans "vides".
J'ai essayé ceci :
'-------------
Sub MasquageLignes()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To 500
ActiveSheet.Rows(i).Hidden = InStr(Cells(i, 1), ">>") > 0
Next
End Sub
'-------------
Ca fonctionne, mais c'est incroyablement long !!
Pensez-vous qu'il y a un pb dans ce bout de code (appliqué à ce
contexte) ?
Serait-il préférable de passer par une macro "Filtre" ? Si oui,
comment ?
Merci d'avance pour vos lumières,
Cordialement,
JP
J'imagine que si l'on omet "xlAutomatic" en fin de procédure, le calcul
reste en manuel ??
procédures sans "Application.ScreenUpdating = True" n'ont (en général ?)
pas d'effet sur l'efficacité du code.
Question subsidiaire :
Est-il possible de compacter sous une forme telle que :
With Application
.Calculation = ----
.ScreenUpdating = ---
End With
(je ne suis pas sûr que cette question soit intelligente ;-) )
J'imagine que si l'on omet "xlAutomatic" en fin de procédure, le calcul
reste en manuel ??
procédures sans "Application.ScreenUpdating = True" n'ont (en général ?)
pas d'effet sur l'efficacité du code.
Question subsidiaire :
Est-il possible de compacter sous une forme telle que :
With Application
.Calculation = ----
.ScreenUpdating = ---
End With
(je ne suis pas sûr que cette question soit intelligente ;-) )
J'imagine que si l'on omet "xlAutomatic" en fin de procédure, le calcul
reste en manuel ??
procédures sans "Application.ScreenUpdating = True" n'ont (en général ?)
pas d'effet sur l'efficacité du code.
Question subsidiaire :
Est-il possible de compacter sous une forme telle que :
With Application
.Calculation = ----
.ScreenUpdating = ---
End With
(je ne suis pas sûr que cette question soit intelligente ;-) )