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 :

Masquer lignes suivant la couleur de la police d'une cellule avec un UserForm


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut Masquer lignes suivant la couleur de la police d'une cellule avec un UserForm
    Bonjour, je voudrais créer une macro qui à l'aide d'un bouton " case à cocher " cacherait certaines lignes d'une base de donné.

    j'ai déja crée mon bouton " case à cocher " qui me permet dans mon cas (exemple prit pour faire des tests) de masquer et d'afficher les lignes 100 à 110 lorsque j'appuie sur mon bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CheckBox1_Click()
    If CheckBox1.Value Then
    Rows("100:110").EntireRow.Hidden = True
    Else
    Rows("100:110").EntireRow.Hidden = False
    End If
    End Sub
    J'ai voulu adapter ce code en voulant justement masquer uniquement les cellules dans ma colonne A ou les cellules on une police noir et laisser afficher les autres cellules ou la police n'est pas noir. La macro tourne mais ne fonctionne pas exactement comme je le souhaite.

    Toutes les lignes 100 à 110 s'affiche puis se masquer instantanement et je vois pas bien en tant que débutant dans les macros d'ou cela peut bien venir.

    je vous mets mon morceau de code. Je penses que c'est pas grand chose à corriger c'est pour cela que je demande votre aide

    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
    Private Sub CheckBox1_Click()
     
    Dim plage As Range
    Dim cel As Range
    Set plage = Application.Sheets(1).Range("A100:A110")
     
    For Each cel In plage
    If CheckBox1.Value Then
    End If
    If cel.Font.ColorIndex = 1 Then
    Rows("100:110").EntireRow.Hidden = True
    Else
    Rows("100:110").EntireRow.Hidden = False
    End If
    Next
    End Sub
    Merci d'avance pour votre soutient

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    La macro masque ou affiche sytématiquement toutes les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Rows("100:110").EntireRow.Hidden = True
    Else
    Rows("100:110").EntireRow.Hidden = False
    il faudrait utliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cel.EntireReow.hidden=...

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Si tu parle de mon premier morceau de code : lorsque je coche la case cela masque les lignes 100 à 110 et lorsque je décoche la case, les lignes 100 à 110 se réaffichent.

    C'est exactement ce que je souhaite mais je voudrais incrémenter un morceau de code qui en plus de cela masque uniquement les lignes ou la police est noir et laisse les lignes ou la police et d'une autres couleur et lorsque je décoche la case toutes les lignes se réaffichent

    EDIT : Accesnewbie : je vais essayer ton code
    Désolé cela ne fonctionne pas

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    A ce moment là, je verrai un truc comme ça :
    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
    Private Sub CheckBox1_Click()
     
    Dim plage As Range
    Dim cel As Range
    Set plage = Application.Sheets(1).Range("A100:A110")
     
    For Each cel In plage
         If CheckBox1.Value Then
            If cel.Font.ColorIndex = 1 Then
               cel.EntireRow.Hidden = True
             End if
          Else
            Rows("100:110").EntireRow.Hidden = False
         End If
    Next
    End Sub

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Ca allair de marcher sur ma partie test, je vais voir sur ma base mais je penses qu'il n'y aura pas de soucie

    Merci beaucoup

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Citation Envoyé par smo8000 Voir le message
    Ca allair de marcher sur ma partie test, je vais voir sur ma base mais je penses qu'il n'y aura pas de soucie

    Merci beaucoup
    Bon ca marche niquel je t'en remercie mais petit bémol lorsque je clique sur mon bouton pour masquer les lignes cela prend même pas 1s mais lorsque je réaffiche les lignes elles se réaffichent directement mais le sablier de la souris reste bloqué environ 3 à 4s durant lesquelles la page se réactualise.

    Cela est surement du aux nombres importants d'information que j'ai dans ma base

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Essayez comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each cel In plage
        If cel.Font.ColorIndex = 1 Then
            Rows(cel.Row).EntireRow.Hidden = True
        Else
            Rows(cel.Row).EntireRow.Hidden = False
        End If
    Next

Discussions similaires

  1. Masquer ligne suivant la couleur de la police
    Par Soifranc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/06/2011, 13h49
  2. Modifier la couleur de ma police d'une colonne d'un datagridView
    Par skunkies dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/12/2008, 16h52
  3. couleur de police d'une cellule vers textbox
    Par fabrice44 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/05/2008, 23h32
  4. couleur de police d'une cellule dans une collection pour combobox
    Par fabrice44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/05/2008, 15h08
  5. Réponses: 1
    Dernier message: 08/03/2006, 20h07

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