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- Masquer lignes sous condition


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Macro- Masquer lignes sous condition
    Bonjour à tous,

    Je n'ai jamais fait de VBA mais j'essaye de faire comme je peux avec ce que je peux trouver et apprendre au fur et à mesure ; bref, je débute ^^

    J'aimerai créer une macro qui me permet de masquer toutes les lignes si la cellule (i, 5) contient "Fermé".
    Et je fais une boucle jusqu'à ce qu'on arrive à une cellule vide.

    Pour le moment, j'ai créé ça mais ça ne marche pas.
    Disons qu'il y a doit y avoir un problème car ça me masque la 4ème ligne alors que la cellule >< "Fermé".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MasquerTickets()
     
        i = 4
        Do While Cells(i, 5) <> ""
     
            If Cells(i, 5) = "Fermé(e)" Then
            Selection.EntireRow.Hidden = True
            End If
            i = i + 1
        Loop
     
    End Sub
    Merci pour votre aide !

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    teste avec ceci :
    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
     
    Sub MasquerTickets()
     
        Dim Plage As Range
        Dim I As Long
     
        With ActiveSheet
            'défini la plage sur la colonne E à partir de E4
            Set Plage = .Range(.Cells(4, 5), .Cells(.Rows.Count, 5).End(xlUp))
     
        End With
     
        For I = 1 To Plage.Count
     
            If Plage(I) = "Fermé(e)" Then Plage(I).EntireRow.Hidden = True
     
        Next I
     
    End Sub

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 772
    Points : 28 633
    Points
    28 633
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi ne pas passer par un filtre simple ou avancé (manuellement ou par code VBA si cela s'impose) car c'est ce que fait un filtre, masquer les lignes qui ne répondent pas aux conditions.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    teste avec ceci :
    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
     
    Sub MasquerTickets()
     
        Dim Plage As Range
        Dim I As Long
     
        With ActiveSheet
            'défini la plage sur la colonne E à partir de E4
            Set Plage = .Range(.Cells(4, 5), .Cells(.Rows.Count, 5).End(xlUp))
     
        End With
     
        For I = 1 To Plage.Count
     
            If Plage(I) = "Fermé(e)" Then Plage(I).EntireRow.Hidden = True
     
        Next I
     
    End Sub

    Merci beaucoup ! Ca fonctionne très bien.
    Je n'ai pas tout bien compris mais c'est parfait. Je vais quand même essayer de comprendre entièrement comment elle fonctionne. Mais merci encore !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Août 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Pourquoi ne pas passer par un filtre simple ou avancé (manuellement ou par code VBA si cela s'impose) car c'est ce que fait un filtre, masquer les lignes qui ne répondent pas aux conditions.
    Oui je sais bien que je peux passer par un filtre mais j'aimerai ne pas en utiliser pour masquer les lignes inutiles. Et elle me servira pour autre chose.
    Mais merci quand même ^^

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Chef de Projet
    Inscrit en
    Juin 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Juin 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut ma première macro
    9 ans après ce post est toujours utile, j'ai exactement le même souci, j'ai copié collé la macro en modifiant fermé(e) en terminé
    mais ca ne fonctionne pas (j'ai fait ctrl alt F8)

    pourriez vous m'aider?
    merci!!!

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Bonjour,
    Il y probablement aussi cette partie la du code à modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        With ActiveSheet
            'défini la plage sur la colonne E à partir de E4
            Set Plage = .Range(.Cells(4, 5), .Cells(.Rows.Count, 5).End(xlUp))
     
        End With
    Si tu nous en disait un peu plus sur ce que tu cherches a faire, on pourrait te répondre avec certitude.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Deviseur
    Inscrit en
    Août 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Deviseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2021
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Masquer lignes selon conditions impliquant des variables
    Bonjour.

    Je suis toujours sur l'amélioration de mon devis où il ne me reste à priori qu'une seule formule pour le finaliser.

    Je souhaite grâce à un bouton masquer, faire disparaître les lignes selon plusieurs conditions.

    Exemple:
    Colonne A= Type de ligne de la colonne C (D= début; T= Titre; ST= Sous-Titre; L= Ligne de devis; I= Interligne; F= Fin)
    Colonne C= Quantité de vente

    J'ai déjà des fonction "masquer selon valeur =0" mais celui-ci me paraît plus complexe.
    J'ai aussi imaginé faire une formule dans le tableur avec des 0 et 1 selon les chapitres mais je suis convaincu qu'il existe une méthode plus "pro"

    L'idée est de:
    - Toujours afficher le début "D" et la fin "F". En soit, il suffit de faire attention à la zone de sélection.
    - Masquer les lignes de devis pour lesquelles la cellule en colonne C = à 0, facile.
    - Conserver les interlignes, les titres et les sous-titres au dessus de chaque ligne supérieure à 0 en colonne C, selon la colonne A. Je coince.

    Je vous joins un exemple.

    Si vous avez des pistes, je suis preneur.
    Au plaisir de vous lire
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. macro copier ligne sous condition
    Par explosion dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/02/2016, 20h55
  2. [XL-2007] Macro pour supprimer des lignes sous conditions de valeur de cellule
    Par frisco75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/09/2011, 14h33
  3. [CR 2008] tableau croisé dynamique(masquer une ligne sous condition)
    Par futurist dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 29/09/2010, 14h57
  4. Masquer des lignes sous condition
    Par linousxm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2010, 13h19
  5. Suppression des lignes sous condition multiple
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/06/2007, 16h23

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