Workbook_open vs ShowAllData

Le
xaal432
Bonjour,
Dans un fichier partagé, afin qu'aucune ligne ne reste inutilisée malgré les
filtres automatiques, j'ai ajouté une petite macro au démarrage:

Private Sub Workbook_Open()
Worksheets("Feuil1").ShowAllData
End Sub

Elle fonctionne trés bien quand un filtre avait été activé lors du de
l'ouverture du fichier. Mais quand aucun filtre n'était actif la macro plante
en me renvoyant un code erreur 1004 !!

Une idée ?
Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21160421
Bonjour,

Juste avant cette ligne de code, tu peux utiliser :
On error resume next

OU

Tu peux tester si le filtre contient au moins un enregistrement
pour ce faire, tu as la ligne de code suivante :

Le code suppose que les étiquettes du filtre sont en ligne 1
et que les données débutent en ligne 2. La plage "A:A"
est présumée n'avoir pas de cellules vides. Tu pourrais
choisir la colonne de ton choix dans la plage filtrée.
.--------------------------------------------
with Worksheets("Feuil1")
if Application.Subtotal(3, .Range("A:A")) - 1 > 0 then
.ShowAllData
end if
End with
.--------------------------------------------




"xaal432" groupe de discussion :
Bonjour,
Dans un fichier partagé, afin qu'aucune ligne ne reste inutilisée malgré
les
filtres automatiques, j'ai ajouté une petite macro au démarrage:

Private Sub Workbook_Open()
Worksheets("Feuil1").ShowAllData
End Sub

Elle fonctionne trés bien... quand un filtre avait été activé lors du de
l'ouverture du fichier. Mais quand aucun filtre n'était actif la macro
plante
en me renvoyant un code erreur 1004 !!

Une idée ?
Merci d'avance


JC Duce
Le #21160511
Bonjour,

Tu peux tester si un filtre est actif à l'ouverture par la méthode FilterMode.

If Worksheets("Feuil1").FilterMode = True Then ...

Bonne journée.


"xaal432" wrote:

Bonjour,
Dans un fichier partagé, afin qu'aucune ligne ne reste inutilisée malgré les
filtres automatiques, j'ai ajouté une petite macro au démarrage:

Private Sub Workbook_Open()
Worksheets("Feuil1").ShowAllData
End Sub

Elle fonctionne trés bien... quand un filtre avait été activé lors du de
l'ouverture du fichier. Mais quand aucun filtre n'était actif la macro plante
en me renvoyant un code erreur 1004 !!

Une idée ?
Merci d'avance


xaal432
Le #21166271
MERCI MERCI MERCI
c'est tout simple et ça marche
Merci encore
A+
Xaal432


"JC Duce" a écrit :

Bonjour,

Tu peux tester si un filtre est actif à l'ouverture par la méthode FilterMode.

If Worksheets("Feuil1").FilterMode = True Then ...

Bonne journée.


"xaal432" wrote:

> Bonjour,
> Dans un fichier partagé, afin qu'aucune ligne ne reste inutilisée malgré les
> filtres automatiques, j'ai ajouté une petite macro au démarrage:
>
> Private Sub Workbook_Open()
> Worksheets("Feuil1").ShowAllData
> End Sub
>
> Elle fonctionne trés bien... quand un filtre avait été activé lors du de
> l'ouverture du fichier. Mais quand aucun filtre n'était actif la macro plante
> en me renvoyant un code erreur 1004 !!
>
> Une idée ?
> Merci d'avance


Publicité
Poster une réponse
Anonyme