Bruno6464
Messages postés3Date d'inscriptionlundi 8 mars 2010StatutMembreDernière intervention 9 mars 2010
-
8 mars 2010 à 16:28
Bruno6464
Messages postés3Date d'inscriptionlundi 8 mars 2010StatutMembreDernière intervention 9 mars 2010
-
9 mars 2010 à 11:49
Bonjour à tous,
Voila 6h que je lutte avec ma macro...
Je vais essayer d'expliquer clairement mon soucis.
Ma macro appelle une feuille nommée "recap" dans un dossier sur le reseau.
Cette fiche recap elle remplie par diverses personnes du bureau, elle est donc soumise à pas mal de manipulations.
Mon but est d'utilisée cette feuille pour effectuer des opérations et remplir ensuite Ma feuille!
Bref, la plupart du temps ma macro fonctionne trés bien, le seul soucis est lorsque les utilisateurs de la feuille récap modifient les filtres... (Ils décochent, recochent a tout va...), et moi j'ai besoin que toutes les données soient affichées pour faire mes calculs via macro.
Donc il faut que::
- Soit, je supprime les filtres (tjr en vba) pour tout afficher.
- Soit, de trouver une commande qui ignore les filtres?
Bref, je rame.
Voici le debut de mon code:
**********************************************
Dim NomRep As String
Donc au debut je vais chercher la feuille qui m'interresse, ensuite je la colle, et a la fin je selection ma feuille et je désactiva les filtres... sauf que ca marche pas!!!
Je suis au bord de la crise de nerfs, bave au coin de la bouche et yeux rouge!
Je vous serai très reconnaissant si il vous vient une idée pour me décoincer.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 8 mars 2010 à 16:45
Tu n'es pas obligé d'annuler les filtres. Il te suffit avant d'effectuer ton action de forcer l'affichage de toutes les données.
Ce que tu peux faire manuellement en faisant Menu Données\Filter\Afficher tout.
Ce que je fais avec le bout de code suivant, c'est :
1 - Activer la feuille qui m'intéresse
2 - Vérifier dans la barre de menu si Afficher tout est acessible ou non (s'il est accessible, c'est qu'il y a un filtre d'actif sur la feuille).
3 - Afficher toute les données si nécessaire
Tu es obligé de contrôler la présence d'un filtre, autrement, si tu te contentes de forcer l'affichage des données, et bien ça plante ta macro.
'Définition des variables
Dim Pop As CommandBarPopup
'Vérification qu'il n'y a pas de filtres automatiques, si oui, affichage de toutes les données
Worksheets(NomOnglet).Activate
Set Pop = CommandBars("Data").Controls("&Filtrer")
If Pop.Controls("&Afficher tout").Enabled = True Then
Worksheets(NomOnglet).ShowAllData
End If
Bruno6464
Messages postés3Date d'inscriptionlundi 8 mars 2010StatutMembreDernière intervention 9 mars 2010 9 mars 2010 à 09:17
Bonjour Molenn, et un grand merci pour ta réponse.
J'ai testé sur un fichier a part, et ta solution marche parfaitement!, mais... sur mon fichier a moi... ca ne fonctionne pas! :/
[EDIT]: Bon... je viens de relever un truc important... ce ne sont pas des filtres automatiques, ces filtres sont issus d'un tableau croisé dynamique -_-'
Il faut donc que je demande au tableau croisé de tout afficher, ou alors le desactiver... et le tout en vba!
Si quelqu'un a une idée de comment le coder, je suis preneur!
Sinon, trés bonne journée a tous! Sous la neige :)