IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro qui bug sur une condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut Macro qui bug sur une condition
    Bonjour le forum

    J'ai cette macro qui bug sur une condition, c'est a dire :
    Si il y a un filtre sur la ligne 1, continuer la macro et si il n'y a pas de filtre sur la ligne 1 en mettre 1 et continuer la macro.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Sub Mise_En_Ordre_Classeur_Excel()
     
    'Selectionne la 1ere ligne, supprime les espaces
        Rows("1:1").Select
        Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
     
    'Place un filtre automatique si il n'y en a pas
    Dim f As AutoFilter
    Set f = ActiveSheet.AutoFilter
    If f Is Nothing Then ActiveSheet.AutoFilter
     
        'Selection.AutoFilter
    'Selectionne la cellule A2 et fige les volets
        Range("A2").Select
        ActiveWindow.FreezePanes = True
    'Selectionne la feuille et passe la police en caractère 8
        Range("A1:IV65536").Select
        With Selection.Font
            '.Name = "Arial"
            .Size = 8
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
      'Ajuste la taille des colonnes
        Columns("A:IV").EntireColumn.AutoFit
    'Supprime le quadrillage de la feuille
        ActiveWindow.DisplayGridlines = False
    'Se positionne sur la cellule A2
        Range("A2").Select
     
    End Sub
    La macro bug sur la derniere ligne de cette partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Place un filtre automatique si il n'y en a pas
    Dim f As AutoFilter
    Set f = ActiveSheet.AutoFilter
    If f Is Nothing Then ActiveSheet.AutoFilter
    Merci pour le depannage et bonne journée.

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut Bernard67 (et les autres)

    Pour vérifier si les filtres il faut utiliser AutoFilterMode et pas AutoFilter
    (Une petit recherche dans l'aide VBA te l'aurait montré )

    Donc pour vérifier si il y a un filtre sur la feuille ceci suffit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Worksheets("TaFeuille").AutoFilterMode Then 
        ' oui ils sont actifs => continue ta macro
    Else
        ' Non ils sont pas actifs => les mettre et ensuite continuer la macro
    End If
    A+

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Bernard67 et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim f As AutoFilter
    '.....
    if ActiveSheet.AutoFilterMode = false  Then ActiveSheet.AutoFilter
    Sauf que quand je fais un système comme ça, je préfère directement supprimer le filtre (AutoFilterMode = false), au lieu de tester son existence, puis en mettre un, ça évite que si un filtrage existe, il vienne perturbé la suite de ma macro.

    Remarque : émailler un code de déclaration est néfaste pour la lisibilité, et ne sert strictement à rien. Regroupe toute tes déclarations en un seul endroit (en général au début de ta macro) et tu t'y retrouveras
    A+

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut
    Bonjour Fvandermeulen,Gorfael, le forum

    Merci pour vos reponses.
    Effectivement il vaut mieux suprimer le filtre au debut et le remettre ensuite.
    Pour les déclarartions je vais suivre tes conseils Gorfael et les mettre en début de macros.

    Merci à vous deux et bonn journée.
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Impossibilité d'ouvir un fichier (enregistré avec un bug sur une macro)
    Par statista dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2011, 17h44
  2. [XL-2003] Macro avec boucle sur une colonne et condition sur une autre
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2010, 10h31
  3. Macro qui va chercher des conditions dans une table
    Par piflechien73 dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/09/2009, 22h29
  4. [VBA] Menu qui pointe sur une macro contenue dans un fichier xla protégé
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/08/2007, 14h34
  5. application qui connecte sur une page web
    Par spoolz dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 14/04/2004, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo