OVH Cloud OVH Cloud

Filtres Automatiques

5 réponses
Avatar
Vanessa TILLIER
Avant de faire un traitement sur mon fichier je souhaite=20
remettre toutes mes listes sans filtres.

=E7a marche tr=E8s bien sous Excel2000 mais en Excel97 j'ai=20
l'erreur " Erreur d'execution 1004 : La methode Range a=20
=E9chou=E9e"=20

Voici le code qui =E9choue :

Dim intlCompteur As Long

For intlCompteur =3D 3 To 10

' C'est cette ligne qui pose probl=E8me
ThisWorkbook.ActiveSheet.Columns.AutoFilter=20
Field:=3DintlCompteur

Next

Mon fichier est verrouill=E9 avec le code suivant :
' Protection de la feuille sans blocage des filtres :
ThisWorkbook.Sheets("X").EnableAutoFilter =3D True
ThisWorkbook.Sheets("X").Protect Password:=3DcstgProtect,=20
Contents:=3DTrue, UserInterfaceOnly:=3DTrue

Si vous avez un moyen de d=E9bloquer mon probl=E8me...

Merci d'avance

5 réponses

Avatar
Vincent.
Salut !
De mémoire, il me semble qu'XL97 ne supporte pas la
protection en userinterfaceonly, ou plutôt que les macros
ne peuvent modifier des feuilles protégées de cette façon.
Du coup, je pense que si tu déprotéges avant la boucle et
que tu reprotèges derrière, ça devrait marcher...
Sinon, je ne vois pas !
A+

V.

-----Message d'origine-----
Avant de faire un traitement sur mon fichier je souhaite
remettre toutes mes listes sans filtres.

ça marche très bien sous Excel2000 mais en Excel97 j'ai
l'erreur " Erreur d'execution 1004 : La methode Range a
échouée"

Voici le code qui échoue :

Dim intlCompteur As Long

For intlCompteur = 3 To 10

' C'est cette ligne qui pose problème
ThisWorkbook.ActiveSheet.Columns.AutoFilter
Field:=intlCompteur

Next

Mon fichier est verrouillé avec le code suivant :
' Protection de la feuille sans blocage des filtres :
ThisWorkbook.Sheets("X").EnableAutoFilter = True
ThisWorkbook.Sheets("X").Protect Password:=cstgProtect,
Contents:=True, UserInterfaceOnly:=True

Si vous avez un moyen de débloquer mon problème...

Merci d'avance

.



Avatar
Michel Gaboly
Bonjour,

Pas pu tester car à cause d'un plantage récent, je n'ai plus
Excel 97 ;-((

Extrait d'une réponse récente de Papyty

If Worksheets("Feuil1").AutoFilterMode Then
Selection.AutoFilter
End If

Je ne sais si cela fonctionne avec Excel 97 et une feuille
protégée, mais si oui, éviterait de devoir passer par
une boucle (s'applique globalement, pour une feuille).



Avant de faire un traitement sur mon fichier je souhaite
remettre toutes mes listes sans filtres.

ça marche très bien sous Excel2000 mais en Excel97 j'ai
l'erreur " Erreur d'execution 1004 : La methode Range a
échouée"

Voici le code qui échoue :

Dim intlCompteur As Long

For intlCompteur = 3 To 10

' C'est cette ligne qui pose problème
ThisWorkbook.ActiveSheet.Columns.AutoFilter
Field:=intlCompteur

Next

Mon fichier est verrouillé avec le code suivant :
' Protection de la feuille sans blocage des filtres :
ThisWorkbook.Sheets("X").EnableAutoFilter = True
ThisWorkbook.Sheets("X").Protect Password:=cstgProtect,
Contents:=True, UserInterfaceOnly:=True

Si vous avez un moyen de débloquer mon problème...

Merci d'avance


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Cette commande (Selection.AutoFilter) supprimme le mode
filtre, moi je veux seulement simuler la selaction de
(tous) sur chacune des listes.

Sinon elle fonctionne sur Excel mais pas dans mon cas
particulier.

Merci quand même pour ces tentatives je pense que Excel 97
doit nous brider pas mal sur les possibilité d'action et
comme ma macro doit fonctionner sous 97, 2000 et XP c'est
encore plus dur...
Avatar
Papyty
Salut @ Tous, a écrit:
Sinon elle fonctionne sur Excel mais pas dans mon cas
particulier.


Donc si
If Worksheets("Feuil1").AutoFilterMode Then
Selection.AutoFilter
End If
fonctionne il suffit de remettre l'autofilter pour que tous tes filtre soit
à tous

If Worksheets("Feuil1").AutoFilterMode Then
Selection.AutoFilter
Selection.AutoFilter
End If

ça fonctionne?
--
@+
Thierry

Avatar
Frédéric Sigonneau
Bonsoir,

Si tu lances ta macro avec un CommandButton, mets sa propriété TakeFocusOnClick
à False et re-essaye (il y a un bug répertorié spécifique à Excel 97 pour les
CommandButton, qui gardent le focus par défaut, provoquant une erreur lorsque la
macro lancée par leur intermédiaire cherche à agir directement sur une feuille
de calcul sans l'avoir sélectionnée au préalable, ce qui fait passer le focus du
bouton à la feuille).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Avant de faire un traitement sur mon fichier je souhaite
remettre toutes mes listes sans filtres.

ça marche très bien sous Excel2000 mais en Excel97 j'ai
l'erreur " Erreur d'execution 1004 : La methode Range a
échouée"

Voici le code qui échoue :

Dim intlCompteur As Long

For intlCompteur = 3 To 10

' C'est cette ligne qui pose problème
ThisWorkbook.ActiveSheet.Columns.AutoFilter
Field:=intlCompteur

Next

Mon fichier est verrouillé avec le code suivant :
' Protection de la feuille sans blocage des filtres :
ThisWorkbook.Sheets("X").EnableAutoFilter = True
ThisWorkbook.Sheets("X").Protect Password:=cstgProtect,
Contents:=True, UserInterfaceOnly:=True

Si vous avez un moyen de débloquer mon problème...

Merci d'avance