Problème de détection si filtre auto est présent
#1
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 16-07-2012 20h13
Bonsoir à tous,

J'essaye de capter dans le caption d'un ToggleButton à l'ouverture d'un USF la présence ou non d'un filtre auto donc j'ai codé comme ceci :
  Private Sub UserForm_Initialize()
    If AutoFilterMode = True Then
    ToggleButton1.Caption = "Filtre auto activé"
    Else
    ToggleButton1.Caption = "Filtre auto désactivé"
    End If
    End Sub
sauf qu'à l'ouverture de l'USF, le caption du ToggleButton m'indique toujours la valeur Filtre Auto désactivé.
Aurais-je oublié quelque chose ?
Merci pour vos pistes et bonne soirée.

Suite à une remarque pertinente, j'ai rajouté :
With Sheets("Feuil1")
en début de macro avant le test et résultat est toujours le même ???????

Merci encore.
Edité par criscris11 le 16/07/2012 20:56:28
Hors Ligne
Rapport   Haut 

Re: Problème de détection si filtre auto est présent
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 16-07-2012 20h54
Bonsoir criscris11, le Forum,

Par exemple :
If ActiveSheet.AutoFilterMode = True Then
ou n'importe quoi qui désigne la feuille dans laquelle tu souhaites tester la présence du filtre Auto...

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Problème de détection si filtre auto est présent
#3
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 16-07-2012 21h04
Bonsoir Didier,
Effectivement, cela fonctionne comme cela.
D'où ma question : pourquoi cela ne fonctionne pas avec le nom de la feuille ?
Mais bon, ce n'est pas grave mais dire que j'y avais pensé mais j'étais resté bloquer sur ma première impression qui est en général toujours la bonne (tiens cela me rappelle un certain fil...).

Merci encore pour ton intervention toujours aussi rapide et efficace et bonne soirée à tous.

Amicalement.
Hors Ligne
Rapport   Haut 

Re: Problème de détection si filtre auto est présent
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 16-07-2012 21h17
Re,

Citation :
criscris11 a écrit :
D'où ma question : pourquoi cela ne fonctionne pas avec le nom de la feuille ?


C'est comme d'habitude criscris11... si tu ne présentes pas le code que tu as utilisé avec « With Sheets("Feuil1") » (dans son ensemble), on va difficilement pouvoir te dire pourquoi ça ne fonctionne pas !

Donc, par exemple :
   With Sheets("Feuil1")
        If .AutoFilterMode = True Then
            '
            '
        End If
    End With
... et on n'oublie pas le . (point) devant AutoFilterMode ! (sinon, le With... ne sert à rien)

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Problème de détection si filtre auto est présent
#5
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 16-07-2012 22h01
Re,
Effectivement, sans le point cela ne risquait pas de fonctionner et la prochaine fois je mettrai le code en entier et non en 2 fois : cela m'apprendra .

Merci encore et bonne soirée.
Hors Ligne
Rapport   Haut 

Re: Problème de détection si filtre auto est présent
#6
Aspirant XLPages

Inscription: 12/07/2008
De RENNES

Messages: 30

Système d'exploitation:
PC
Version Excel utilisée:
2003 FR
Posté le : 17-07-2012 00h46
Re,
Comme un problème n'arrive jamais seul, je suis en train de tourner en rond depuis plus d'une heure avec un code sur un ToggleButton.
Voici ce code :
Private Sub ToggleButton2_Click()
If ToggleButton2.Caption = "Présence du filtre auto" Then
ActiveSheet.AutoFilterMode = False
ToggleButton2.Caption = "Absence du filtre auto"
ToggleButton2.ControlTipText = "Cliquer pour réactiver le filtre auto"
Else
ToggleButton2.Caption = "Absence du filtre auto"
ActiveSheet.AutoFilterMode = True
Application.Run "Filtre_Auto"
ToggleButton2.Caption = "Présence du filtre auto"
ToggleButton2.ControlTipText = "Cliquer pour désactiver le filtre auto"
End If
End Sub
 
Pour comprendre un peu mieux, voici le code de mon formulaire :
'___________________________'
'Intialisation du formulaire
'___________________________'

Private Sub UserForm_Initialize()
Dim i As Long
 Me.ListBox1.List = Range("Noms").Resize(, 2).Value
 Erase NomOK: ReDim NomOK(1 To Range("Noms").Rows.Count)
 For i = 1 To Range("Noms").Rows.Count: NomOK(i) = Range("Noms").Row + i - 1: Next i
 Label21.Caption = Format(Date, "dddd d mmmm yyyy") 'affiche la date du jour dans un label
 Me.MultiPage1.Value = 0 'se positionne sur la 1ère page du contrôle multipages
 Me.TextBox1.SetFocus 'positionne le curseur sur la zone de texte de la recherche intuitive
 
    If Application.Calculation = xlCalculationAutomatic Then
    ToggleButton1.Caption = "Calcul automatique"
    ToggleButton1.ControlTipText = "Cliquer pour changer le mode de calcul"
    Else
    Application.Calculation = xlCalculationManual
    ToggleButton1.Caption = "Calcul sur ordre"
    ToggleButton1.ControlTipText = "Cliquer pour changer le mode de calcul"
    End If
   
    If ActiveSheet.AutoFilterMode = True Then
    ToggleButton2.Caption = "Présence du filtre auto"
    ToggleButton2.ControlTipText = "Cliquer pour désactiver le filtre auto"
    Else
    ActiveSheet.AutoFilterMode = False
    ToggleButton2.Caption = "Absence du filtre auto"
    ToggleButton2.ControlTipText = "Cliquer pour activer le filtre auto"
    End If
   
    If ActiveSheet.FilterMode = True Then
    CommandButton8.Caption = "Mode filtre"
    CommandButton8.ControlTipText = "Cliquer pour remettre tous les filtres à zéro"
    CommandButton8.Enabled = True
    Else
    ActiveSheet.FilterMode = False
    CommandButton8.Caption = "Aucun filtre actif"
    CommandButton8.Enabled = False
    End If
End Sub
 
Mon problème est le suivant : quand je clique sur mon ToggleButton2 si condition 1, le filtre auto s'enlève bien mais mon formulaire se ferme automatiquement et à la réouverture de ce dernier je perds toute l'initialisation du formulaire, cerise sur le gâteau impossible de le fermer sauf un kill sauvage (CTRL+ALT+SUPPR) seul moyen de quitter Excel.
Quand je clique sur mon ToggleButton2 si condition 2, j'ai une erreur '1004'. J'ai également essayer sans la ligne :
...
ActiveSheet.AutoFilterMode = False
...
et là cela fonctionne sauf les icônes des filtres ne s'affichent pas (les triangles noirs) et rebelote fermeture du formulaire...

Pour info, j'ai un premier ToggleButton que j'ai codé comme suit et aucun problème :
Private Sub ToggleButton1_Click()
If ToggleButton1.Caption = "Calcul sur ordre" Then
Application.Run "Calcul_Auto"
ToggleButton1.Caption = "Calcul automatique"
ToggleButton1.ControlTipText = "Cliquer pour changer le mode de calcul"
Else
ToggleButton1.Caption = "Calcul automatique"
Application.Run "Calcul_Manuel"
ToggleButton1.Caption = "Calcul sur ordre"
ToggleButton1.ControlTipText = "Cliquer pour changer le mode de calcul"
End If
End Sub
J'en perds mon latin, enfin je veux dire mon VBA.
Merci de bien vouloir m'éclairer sur ce qui pourrait clocher et sur ce je vous souhaite une bonne nuit : la nuit porte conseil.

PS : une piste peut-être, la macro servant à mettre les filtres autos sur ma ligne d'entête ne fonctionne plus non plus quand je l'exécute en mode manuel (ALT+F8), voici son code :
Sub Filtre_Auto()
    Range("A8:BQ8").Select
    Selection.AutoFilter
    Range("B9").Select
End Sub



Edité par criscris11 le 18/07/2012 11:37:15
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes