Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment filtrer une liste et supprimer les autres lignes cachées ou visibles dans Excel?

Pour une liste filtrée, vous devrez peut-être supprimer les lignes cachées ou visibles afin de ne conserver que les données utiles. Dans cet article, nous allons vous montrer les méthodes de suppression des autres lignes cachées ou visibles d'une liste filtrée dans Excel.

Supprimer les lignes cachées dans la feuille de calcul active avec le code VBA

Supprimer les lignes visibles de la liste filtrée en sélectionnant toutes les cellules visibles

Supprimer les lignes masquées ou visibles de la liste filtrée avec Kutools for Excel


Supprimer les lignes cachées dans la feuille de calcul active avec le code VBA


Cette section vous montrera le code VBA pour supprimer les lignes cachées dans la feuille active. S'il vous plaît faire comme suit.

1. Activez la feuille de calcul dont vous avez besoin pour supprimer les lignes masquées, appuyez sur autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. Dans la fenêtre Microsoft Visual Basic pour Applications, cliquez sur insérer > Module. Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre Module.

Code VBA: Supprimer les lignes cachées

Sub RemoveHiddenRows()
	Dim xRow As Range
	Dim xRg As Range
	Dim xRows As Range
	On Error Resume Next
	Set xRows = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
	If xRows Is Nothing Then Exit Sub
		For Each xRow In xRows.Columns(1).Cells
			If xRow.EntireRow.Hidden Then
				If xRg Is Nothing Then
					Set xRg = xRow
				Else
					Set xRg = Union(xRg, xRow)
				End If
			End If
		Next
		If Not xRg Is Nothing Then
			MsgBox xRg.Count & " hidden rows have been deleted", , "Kutools for Excel"
			xRg.EntireRow.Delete
		Else
			MsgBox "No hidden rows found", , "Kutools for Excel"
		End If
	End Sub

3. appuie sur le F5 clé pour exécuter le code. S'il y a des lignes cachées dans la feuille active, après l'exécution du code, une boîte de dialogue s'affichera pour vous indiquer combien de lignes cachées ont été supprimées. Clique le OK bouton pour supprimer les lignes cachées. Voir la capture d'écran:

doc supprimer reste 1

Sinon, vous obtiendrez la boîte de dialogue suivante après l'exécution du code.

doc supprimer reste 1

Note: le code VBA ci-dessus peut non seulement supprimer les lignes cachées de la liste filtrée, mais également supprimer les lignes masquées que vous avez précédemment masquées manuellement.


Supprimer les lignes visibles de la liste filtrée avec la sélection de toutes les cellules visibles

Pour supprimer des lignes visibles d'une liste filtrée, procédez comme suit.

1. Sélectionnez toutes les lignes filtrées et appuyez sur F5 clé pour ouvrir le Aller à boîte de dialogue, puis cliquez sur le Spécial bouton. Voir la capture d'écran:

doc supprimer reste 1

2. dans le Aller à Spécial boîte de dialogue, vérifiez le Cellules visibles uniquement option, puis cliquez sur le OK .

doc supprimer reste 1

3. Maintenant, toutes les lignes visibles sont sélectionnées, faites un clic droit sur la sélection, puis cliquez sur Supprimer les lignes.

doc supprimer reste 1

Jusqu'à présent, toutes les lignes visibles sont supprimées de la liste filtrée.


Supprimer les lignes masquées ou visibles de la liste filtrée avec Kutools for Excel

Les deux méthodes ci-dessus peuvent ne pas être les solutions de désir pour de nombreux utilisateurs d'Excel, ici nous vous présentons un outil pratique. Avec le Supprimer les lignes et les colonnes cachées (visibles) utilité de Kutools for Excel, vous pouvez facilement supprimer les lignes cachées dans les plages / feuilles sélectionnées, la feuille active ou toutes les feuilles de calcul dans Excel.

Kutools for Excel : avec plus de 300 compléments Excel pratiques, gratuit pour essayer sans limitation dans 60 jours.

1. Si vous souhaitez uniquement supprimer les lignes masquées ou visibles d'une liste filtrée, sélectionnez manuellement la plage filtrée, puis cliquez sur Kutools > Effacer > Supprimer les lignes et les colonnes cachées (visibles). Voir la capture d'écran:

2. dans le Supprimer les lignes et colonnes cachées (visibles) boîte de dialogue, sélectionnez Dans la plage sélectionnée le Regarder dans liste déroulante (vous pouvez sélectionner d'autres options selon vos besoins), vérifiez rangées option dans la Supprimer le type section, et dans la Type détaillé section, vérifier Lignes visibles or Lignes cachées option comme vous avez besoin. Et enfin cliquez sur le OK bouton. Voir la capture d'écran:

doc supprimer reste 1

3. Ensuite, une boîte de dialogue apparaît pour vous dire combien de lignes ont été supprimées, s'il vous plaît cliquez sur le OK .

doc supprimer reste 1


Supprimer les lignes masquées ou visibles de la liste filtrée avec Kutools for Excel

Kutools for Excel comprend plus de 300 outils maniables Excel. Gratuit pour essayer sans limitation dans les jours 60. Téléchargez l'essai gratuit maintenant!



Outils de productivité recommandés

Office Tab

étoile d'or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d'or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d'or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d'écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Maximillian Eckemoff · 10 months ago
    Feedback re: the macro for hidden row deletions - this takes too long to run on 900k rows to be useful. 2+ hours on an OC'd Threadripper 1950X and still running (had to end task). Any way to optimize it to use multiple cores or is this a VBA limitation?
    • To post as a guest, your comment is unpublished.
      crystal · 9 months ago
      Hi,
      The code has been optimized. Please have a try. Thank you for your comment.

      Sub RemoveHiddenRows()
      Dim xFlag As Boolean
      Dim xStr, xTemp As String
      Dim xDiv, xMod As Long
      Dim I, xCount, xRows As Long
      Dim xRg, xCell, xDRg As Range
      Dim xArr() As String
      On Error Resume Next
      Application.ScreenUpdating = False
      Application.EnableEvents = False
      Set xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
      If xRg Is Nothing Then Exit Sub
      xRows = xRg.Rows.Count
      Set xRg = xRg(1)
      xFlag = True
      xTemp = ""
      xCount = 0
      For I = 1 To xRows
      Set xCell = xRg.Offset(I - 1, 0)
      Do While xFlag
      If xCell.EntireRow.Hidden Then
      xStr = xCell.Address
      xFlag = False
      Else
      GoTo Ctn
      End If
      Loop
      If xCell.EntireRow.Hidden Then
      xTemp = xStr & "," & xCell.Address
      End If
      If Len(xTemp) > 171 Then
      xCount = xCount + 1
      ReDim Preserve xArr(1 To xCount)
      xArr(xCount) = xStr
      xStr = xCell.Address
      Else
      xStr = xTemp
      End If
      Ctn:
      Next
      xCount = xCount + 1
      ReDim Preserve xArr(1 To xCount)
      xArr(xCount) = xStr
      For I = xCount To 1 Step -1
      If I = 1 Then
      xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
      Else
      xStr = xArr(I)
      End If
      If xDRg Is Nothing Then
      Set xDRg = Range(xStr)
      Else
      Set xDRg = Union(xDRg, Range(xStr))
      End If
      If (Len(xDRg.Address) >= 244) Or (xCount = 1) Then
      xDRg.EntireRow.Delete
      Set xDRg = Nothing
      End If
      Next
      Application.EnableEvents = True
      Application.ScreenUpdating = True
      End Sub