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 les lignes [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 76
    Par défaut Macro masquer les lignes
    Bonjour,

    Dans le fichier joint j'ai des colonnes et des lignes. Certaine cellule comporte des nombres et d'autres sont vides (plage de B à M).
    Il y a des lignes où tout est vide comme les lignes 5, 14, 15, 24.

    Pouvez-vous me donner une macro qui me permette de masquer les lignes où tout est vide ?

    Merci par avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 94
    Par défaut
    Bonjour
    voici deux macros,
    1 pour Masquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub LigneVide()
    Dim i As Integer
        Application.ScreenUpdating = False
          Lignes = Range("A65535").End(xlUp).Row
            For i = Lignes To 1 Step -1
                If Application.WorksheetFunction.CountA(Rows(i)) = 1 Then Rows(i).Hidden = True
            Next i
        Application.ScreenUpdating = True
    End Sub
    Et une pour Afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub AfficheVide()
        Application.ScreenUpdating = False
           Cells.EntireRow.Hidden = False
        Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 76
    Par défaut
    Bonjour,

    Merci pour votre aide.
    Mais la macro ne fonctionne pas car en bout de ligne j'ai une formule qui renvoie une valeur.
    Ci joint mon fichier. Ce que je souhaite, c'est masquer automatiquement les lignes complètes lorsque les cellules de T à AB sont vides même si il y a des valeurs de AC à AF.

    Merci par avance
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 94
    Par défaut
    Re
    Si la macro fonctionne pour l'exemple que tu avais, maintenant les données sont différentes!!

    Voici une adaptation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub ligneVide2()
     Dim i As Integer
     Application.ScreenUpdating = False
     With ActiveSheet
         For i = 7 To .Cells(Rows.Count, 29).End(xlUp).Row
             If Application.WorksheetFunction.Sum(.Range(.Cells(i, 20), .Cells(i, 28))) = 0 Then Rows(i).Hidden = True
         Next i
     End With
     Application.ScreenUpdating = True
     End Sub

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 76
    Par défaut
    extra ca fonctionne merci

    Mais pour que je puisse la transposer, peux tu m'expliquer ?

    Par exemple si ma plage de données change, comment je lui dit ?

    A correspond dans ta macro, le 7 ? 29? 20? et 28?

    Encore merci

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 7 To .Cells(Rows.Count, 29).End(xlUp).Row
    cela signifie de la ligne 7 à la dernière ligne utilisée de la colonne 29 (AC)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(.Cells(i, 20), .Cells(i, 28))
    = plage de cellules de la ligne i (en fonction de la boucle For...Next), de la colonne 20 (T) à la colonne 28 (AB)
    Par exemple au premier passage de la boucle, la plage de cellules sera Range("T7:AB7")

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

Discussions similaires

  1. masquer les lignes listbox
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/11/2008, 13h37
  2. [BO6.5.1] Masquer les lignes vides
    Par Herlece dans le forum Deski
    Réponses: 3
    Dernier message: 06/08/2008, 11h03
  3. masquer les lignes
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/02/2008, 09h20
  4. 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
  5. 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

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