Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Workbook_open vs ShowAllData

3 réponses
Avatar
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

3 réponses

Avatar
michdenis
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" a écrit dans le message de
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


Avatar
JC Duce
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


Avatar
xaal432
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