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 les lignes avec CheckBox [XL-2007]


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
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Masquer les lignes avec CheckBox
    Bonjour

    J'ai sur ma feuille deux CheckBox et une colonne "B" Avec une liste Achat ou Recette. j'aimerai que si je coche la CheckBox1 toutes les lignes avec recette son masquer et si je coche la CheckBox2 toutes les lignes achats sont masquer et si je décoche les CheckBox les lignes sont démasquer

    Je vous remercie de votre aide

    Cordialement

    Max

  2. #2
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut Masquer les lignes avec CheckBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
    Columns(2).Hidden = True
    Else
    Columns(2).Hidden = False
    End If
    End Sub
    Ceci est le code qui devrait vous aider à faire ce que vous voulez:
    La checkbox cache la colonne dont l'index est 2, ça veut dire la colonne B, faites donc la méme chose pour l'autre checkebox en changeant le numéro index
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonsoir XLRATOR

    Je pense que l'on c'est mal compris.

    Quand je click sur la checkbox1 je masque les lignes ou l'on trouve Recette si je click sur la checkbox2 je masque les ligne ou l'on trouve Achat

    Merci et bonne soirée

    Max

  4. #4
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Je ne ssuis pas encore sur de ce dont vous avez besoin, mais je crois que voulez masquer les achats en cochant la chackbox 1, et masquer les Recettes en cochant la checkbox 2, si je vous ai bien compris, alors celà donerait ce qui suit, vous n'aurais qu'à copier puis coller.
    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
    Private Sub CheckBox1_Click()
    Dim rng As Range
    For Each rng In Columns(2).Cells
    If rng.Value = "Achat" Then
        If CheckBox1.Value = True Then
        rng.EntireRow.Hidden = True
        Else
       rng.EntireRow.Hidden = False
        End If
        End If
        Next
    End Sub
     
    Private Sub CheckBox2_Click()
    Dim rng As Range
    For Each rng In Columns(2).Cells
    If rng.Value = "Recette" Then
        If CheckBox2.Value = True Then
        rng.EntireRow.Hidden = True
        Else
       rng.EntireRow.Hidden = False
        End If
        End If
        Next
    End Sub
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    Exactement la recherche et merci beaucoup juste une petit question pourquoi quand je click sur une checkbox c'est assez long quand je dit 4,5 seconde?

    Bonne soirée et merci encore

    Max

  6. #6
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    C'est peut être parceque votre liste est tellement longue que votre RAM (Random Access Memory) éprouve du mal à traiter vos données rapidement si c'est la cas et que votre liste est longue, je vous conseille de sauvegarder vos données dans des fichiers séparés, de maniére organisée biensur (Par Période par exemple) , car le fichier risque de se corrompre et parceque Excel reste une feuille de calcul non pas une base de données, si non, si votre projet ne permet pas de séparer vos données et bien il va vous falloir apprendre à utiliser MS ACCESS.
    Voilà Bonne Prog !
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une autre proposition est l'utilisation d'un filtre automatique
    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
    Private Sub CheckBox1_Click()
     
    Filtrer
    End Sub
     
    Private Sub CheckBox2_Click()
     
    Filtrer
    End Sub
     
    Private Sub Filtrer()
     
    Application.ScreenUpdating = False
    Worksheets("Feuil2").Range("B:B").AutoFilter Field:=1, Criteria1:=IIf(CheckBox1, "Recette", "Achat"), Criteria2:=IIf(CheckBox2, "Achat", "Recette"), Operator:=xlOr
    End Sub
    Si tu avais des optionsbutton (c'est à dire l'un ou l'autre) le code sera plus simple


    A la question de la lenteur du code en boucle proposé, c'est qu'il boucle sur toute la colonne et non seulement les lignes utilisées

    Remplace là par For Each Rng In Worksheets.Range("B2:B200")

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

Discussions similaires

  1. Supprimer/Masquer les lignes vides
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/05/2007, 12h13
  2. Copier les lignes avec la même largeur des colonnes
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2007, 10h42
  3. [Dates] sélectionner les lignes avec même mois
    Par carelha dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2006, 15h08
  4. masquer les lignes dans une zone si une cellule de la ligne est vide
    Par keguira dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2006, 18h21
  5. Justifier les lignes avec vim
    Par Gnux dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 03/05/2006, 00h17

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