Note: The other languages of the website are Google-translated. Back to English

Comment masquer automatiquement les lignes si des cellules vides dans une colonne?

Si vous avez une plage de données qui remplit des cellules vides dans une colonne, et maintenant, vous voulez masquer automatiquement les lignes qui contiennent les cellules vides dans cette colonne. Existe-t-il de bons moyens de résoudre ce travail dans Excel rapidement et facilement?

Masquer automatiquement les lignes si les cellules vides dans une colonne avec le code VBA


flèche bleue bulle droite Masquer automatiquement les lignes si les cellules vides dans une colonne avec le code VBA

Le code suivant peut vous aider à masquer toutes les lignes si des cellules vides dans une colonne spécifique à la fois, et si vous supprimez le contenu de la cellule dans cette colonne, les lignes seront également masquées automatiquement. Veuillez procéder comme suit:

1. Cliquez avec le bouton droit sur l'onglet de la feuille que vous souhaitez masquer automatiquement les lignes s'il y a des cellules vides dans une colonne, puis choisissez Voir le code dans le menu contextuel, dans le popped out Microsoft Visual Basic pour applications fenêtre, veuillez copier et coller le code suivant dans l'espace vide Module:

Code VBA: Masquer automatiquement les lignes si les cellules vides dans une colonne:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A1:A20")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
        
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

doc masquer automatiquement les lignes 1

Notes: Dans le code ci-dessus, A1: A20 est la liste de données qui contient les cellules vides que vous souhaitez masquer automatiquement.

2. Revenez ensuite à la feuille de calcul et maintenant, lorsque vous double-cliquez sur une cellule et appuyez sur Entrer clé, les lignes qui contiennent des cellules vides dans la colonne A ont été masquées à la fois, et si vous effacez un contenu de cellule dans les cellules spécifiées de la colonne A, les lignes seront masquées automatiquement.

doc masquer automatiquement les lignes 2

 


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine

 

Commentaires (32)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'utilise Excel 2016 et cela ne fonctionne pas. J'obtiens un message d'erreur de syntaxe. pouvez-vous aider?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Fourmi,

Le code ci-dessus fonctionne bien dans mon Excel 2016, avez-vous modifié la référence de cellule dans le code selon vos besoins ?
Ce commentaire a été minimisé par le modérateur sur le site
J'obtiens une erreur d'exécution '13' :



Incompatibilité de type



Quelqu'un qui peut aider ???
Ce commentaire a été minimisé par le modérateur sur le site
Puis-je empêcher cette macro de s'exécuter automatiquement après avoir appuyé sur Entrée ? Puis-je l'attacher à un bouton pour ne masquer les cellules que lorsque je clique?
Ce commentaire a été minimisé par le modérateur sur le site
quelqu'un a-t-il déjà compris cela? Moi aussi je voudrais savoir.
Ce commentaire a été minimisé par le modérateur sur le site
quelqu'un a déjà trouvé la réponse?
Ce commentaire a été minimisé par le modérateur sur le site
même question ici
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour gars,
Pour masquer les lignes dont une colonne spécifique contient des cellules vides à l'aide d'un bouton, procédez comme suit :
Tout d'abord, vous devez insérer un bouton de commande à partir de l'onglet Développeur.
Et puis appliquez le code VBA suivant pour le bouton de commande, (Remarque : veuillez remplacer la référence de cellule a1:a20 par la vôtre)

Private Sub CommandButton1_Click ()
Dim rng As Range, x As Range
Set rng = Range("a1:a20")
Application.ScreenUpdating = Faux
Pour chaque x In rng
Si Len(x.Texte) = 0 Alors
x.EntireRow.Hidden = Vrai
autre
x.EntireRow.Hidden=Faux
Si fin
Suivant x
Application.ScreenUpdating = True
End Sub

S'il vous plaît essayez-le, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
comment masquer automatiquement les lignes si des cellules vides dans 2 colonnes différentes avec le code VBA
Ce commentaire a été minimisé par le modérateur sur le site
Salut salpe,
Pour masquer automatiquement les lignes si des cellules vides dans 2 colonnes différentes, veuillez appliquer le code suivant :

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Dim xRg, xCell As Range
Dim xRgs, xRgArea As Range
Set xRgs = Range("A1:A22,D1:D22")
Application.ScreenUpdating = Faux
En cas d'erreur GoTo Ctn
Pour chaque xRgArea dans xRgs.Areas
Debug.Print xRgArea.Address
Pour chaque xRg dans xRgArea.Columns
Pour chaque xCell dans xRg.Rows
Si xCell.Valeur = "" Alors
xCell.EntireRow.Hidden = Vrai
Aller à Ctn
ElseIf Not xCell.EntireRow.Hidden Then
xCell.EntireRow.Hidden=Faux
Si fin
Ctn :
Suivant
Suivant
Suivant
Application.ScreenUpdating = True
End Sub

Vous pouvez modifier les références de cellule selon vos besoins.
Essayez-le!
Ce commentaire a été minimisé par le modérateur sur le site
بسم الله وجزاكم الله خيرا هذا الكود رائع ولكن حين قquet
Ce commentaire a été minimisé par le modérateur sur le site
Je veux savoir si le code fonctionnera Si la cellule est vide à la suite de Formula ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour ACHINTA,
Le code VBA ci-dessus est également appliqué aux cellules vides à la suite de la formule, vous pouvez l'essayer, merci !
Ce commentaire a été minimisé par le modérateur sur le site
La formule fonctionne pour masquer les cellules en fonction des informations, au début, mais ne révéle pas les cellules si leur contenu change. Je veux qu'il révèle toutes les nouvelles cellules qui ont été remplies d'informations (ce qui se produit via une recherche de cellule). Comment puis-je faire cela?
Ce commentaire a été minimisé par le modérateur sur le site
Bom dia, esta é minha necessidade tambem.

Preciso ocultar e quando a célula for preenchida (uso uma fórmula que preenche a mesma se houver valor em outra planilha) seja reexibida a linha novamente de forma automática.

Reconnaissant.
Ce commentaire a été minimisé par le modérateur sur le site
Ce que je veux, c'est quelque chose comme ça pour travailler dans la feuille active:

Si cellules D2:D55 = ""
Puis Hide.EntireRow

Si les cellules D2:D55 = "a n'importe quelle valeur"
Puis Show.EntireRow

Comment s’y prendre?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Kacha, il vous suffit de changer la référence de cellule dans le code en votre propre plage de cellules comme ci-dessous : Sous-feuille de calcul privée_Change (ByVal Target As Range)
'Mettre à jour par Extendoffice
Dim xRg As Range
Application.ScreenUpdating = Faux
Pour chaque xRg dans la plage ("D2: D55")
Si xRg.Valeur = "" Alors
xRg.EntireRow.Hidden = Vrai

autre
xRg.EntireRow.Hidden=Faux
Si fin
xRg suivant
Application.ScreenUpdating = True
End SubAprès avoir inséré le code, n'oubliez pas de double-cliquer sur n'importe quelle cellule et d'appuyer sur la touche Entrée pour que le code prenne effet.
Ce commentaire a été minimisé par le modérateur sur le site
Quel est le moyen le plus simple d'annuler le masquage automatique ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut, mình có dùng 2 code trong 1 fichier excel (1 code là của bạn) với mục đích in ra những bản riêng biệt và không bị thừa dòng trống. Khi mình ấn in từng bản thì ok nhưng nếu in 1 loạt thì code Hide không có tác dụng, bạn xem giúp mình với nhé, mình cảm ơn!

Sous PRINT_PRINT()
Dim rng As Range, x As Range
Set rng = Range("a16:a23")
Application.ScreenUpdating = Faux
Pour chaque x In rng
Si Len(x.Texte) = 0 Alors
x.EntireRow.Hidden = Vrai
autre
x.EntireRow.Hidden=Faux
Si fin
Suivant x
Application.ScreenUpdating = True


Dim p1, p2, i&
p1 = Sheet1.Range("O1").Value
p2 = Sheet1.Range("O2").Value
Si IsNumeric(p1) = False Ou IsNumeric(p2) = False Alors
tb = MsgBox("Alors code phai la so.", , "Thông báo")
Exit Sub
Si fin
Si p1 > p2 Alors
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
Exit Sub
Si fin
Si p1 < 1 Ou p2 < 1 Alors
tb = MsgBox("Donc code phai >= 1.", , "Thông báo")
Exit Sub
Si fin
Si p1 <= p2 Alors
Pour i = p1 Vers p2
Sheet1.Range("M2").Value = i
Sheet1.PrintOut
Suivant
Si fin
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Hola,Necesito crear una macro que me occulte una columna.Sería así: en la primera fila poner un 1 a las columnas que no quiero ocultar y no poner ningún valor a las columnas que quiero ocultar. Estoy haciendo el siguiente código, pero no se en que fallo :
Sub OcultarColumnaSin1()
Application.ScreenUpdating = Faux
Pour chaque rango en colonnes
Si rango = "" Alors
rango.EntireColumn.Hidden = Vrai
autre
rango.EntireColumn.Hidden=Faux
Si fin
Gamme suivante
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Cela fonctionne très bien pour moi, il masque les lignes et les ouvre lorsque mes valeurs changent en fonction des formules. Ma question est que ma feuille comporte 104 lignes. Il tourne un peu à chaque fois que je clique sur une cellule. Un moyen d'accélérer la transition lorsqu'elle est activée ? Ou est-ce mon ordinateur ? Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Je voudrais masquer automatiquement les lignes si la colonne E est vide ou 0
Ce commentaire a été minimisé par le modérateur sur le site
Si la valeur dans la colonne E est vide ou 0, je souhaite que la ligne se masque automatiquement. Si la valeur dans E change pour autre chose que vide ou 0, je voudrais qu'elle s'affiche. Le rapport contient 1500 XNUMX lignes
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Cathy,
Pour masquer les lignes automatiquement en fonction des cellules vides ou des valeurs 0, veuillez utiliser le code vba ci-dessous :
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("E1:E1500")
            If (xRg.Value = "") Or (xRg.Value = "0") Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub


S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Comment masquer la ligne contenant une case à cocher ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Sweta

Pour masquer les lignes avec une case à cocher, l'article ci-dessous peut vous rendre service :
Comment masquer la case à cocher lorsque la ligne est masquée dans Excel ?

Veuillez essayer, si vous avez encore d'autres questions, veuillez commenter ici.
Ce commentaire a été minimisé par le modérateur sur le site
Lors de l'exécution du code dans office 2013/2019/2021, cela fonctionne mais prend trop de temps (seulement 95 lignes à masquer).
Comment pouvez-vous accélérer cela ?
Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Salut Assaf,
Le code fonctionne bien dans mon fichier Excel, pourriez-vous télécharger votre classeur de pièces jointes ici si cela ne vous dérange pas ? Afin que nous puissions aider à vérifier le problème.

Merci !
Ce commentaire a été minimisé par le modérateur sur le site
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak file menjadi PDF tapi tampilan di excelnya tetap
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Nourjanah
Pour résoudre votre problème, vous devez d'abord masquer les lignes vides, puis imprimer les données. Après avoir imprimé les données, vous devez à nouveau afficher les lignes vides. Veuillez faire comme ceci :
1. Appliquez cette formule : =COUNTA(A2:E2) à côté de vos données, voir capture d'écran :
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. Ensuite, filtrez la nouvelle colonne vide de l'assistant, masquez toutes les lignes de valeur 0, voir capture d'écran :
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3. Et puis, vous devez masquer la nouvelle colonne vide et imprimer les données, après avoir imprimé la feuille de calcul, veuillez annuler le filtre pour afficher les lignes vides selon vos besoins.
S'il vous plaît essayez, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Salut, j'ai des problèmes avec "l'automatisation" de la macro. Je cherche un moyen pour que le code fonctionne comme un processus automatisé sans avoir besoin d'exécuter "manuellement" la macro. J'ai utilisé ma propre variante de votre code car j'ai trouvé des problèmes pour utiliser votre code. Voici ma variante :

Sub HideRows()
Dim xRg As Range
Application.ScreenUpdating = Faux
Pour chaque xRg dans la plage ("A3: A800")
Si (xRg.Valeur = "") Alors
xRg.EntireRow.Hidden = Vrai
autre
xRg.EntireRow.Hidden=Faux
Si fin
xRg suivant
Application.ScreenUpdating = True
End Sub

J'essaie de créer une feuille de calcul qui nécessite des valeurs en constante évolution, donc nécessiterait un véritable processus "automatisé". Je suis relativement nouveau dans VBA et si votre code répond déjà à mes exigences, cela vous dérangerait-il de m'aider/de m'apprendre à l'appliquer dans VBA ? Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Vian
En fait, le code de notre article peut être exécuté automatiquement.
Vous devez copier et coller le code dans le module de code de la feuille de calcul en cours, puis revenir à la feuille de calcul, double-cliquer sur n'importe quelle cellule et appuyer sur la touche Entrer , la ligne contenant la cellule vide sera directement masquée.

Veuillez suivre la méthode de cet article étape par étape, en espérant que cela puisse vous aider !
Merci !
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL