Supprimer les cellules vides d'une plage

Formulation du problème

Nous avons une plage de cellules avec des données contenant des cellules vides :

 

La tâche consiste à supprimer les cellules vides, ne laissant que les cellules contenant des informations.

Méthode 1. Rude et rapide

  1. Sélection de la plage d'origine
  2. Appuyez sur la touche F5, bouton suivant Souligner (Spécial). Dans la fenêtre qui s'ouvre, sélectionnez Cellules vides(Blancs) et cliquez sur OK.

    Supprimer les cellules vides d'une plage

    Toutes les cellules vides de la plage sont sélectionnées.

  3. Nous donnons une commande dans le menu pour supprimer les cellules sélectionnées: clic droit- Supprimer des cellules (Supprimer des cellules) avec déplacement vers le haut.

Méthode 2 : formule matricielle

Pour simplifier, nommons nos plages de travail en utilisant Gestionnaire de noms (Gestionnaire de noms) languette formule (Formules) ou, dans Excel 2003 et versions antérieures, le menu Insérer – Nom – Attribuer (Insérer — Nom — Définir)

 

Nommez la gamme B3:B10 AvoirVide, plage D3:D10 – AucunVide. Les plages doivent être strictement de la même taille et peuvent être situées n'importe où les unes par rapport aux autres.

Sélectionnez maintenant la première cellule de la deuxième plage (D3) et entrez-y cette formule effrayante :

=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);””;INDIRECT(ADDRESS(LOWEST((IF(Empty<>“”,ROW(Empty);ROW() + LIGNES(Il y a des vides))); LIGNE()-LIGNE(Aucun vide)+1); COLONNE(Il y a des vides); 4)))

Dans la version anglaise, ce sera :

=IF(ROW()-ROW(NoEmpty)+1>ROWS(Empty)-COUNTBLANK(Empty),"",INDIRECT(ADDRESS(SMALL((IF(Empty<>"",ROW(Empty),ROW() +LIGNES(AvecVide))),LIGNE()-LIGNE(AucunVide)+1),COLONNE(AvecVide),4)))

De plus, il doit être saisi sous forme de formule matricielle, c'est-à-dire appuyer après avoir collé Entrer (comme d'habitude) et Ctrl + Maj + Entrée. Maintenant, la formule peut être copiée à l'aide de la saisie semi-automatique (faites glisser la croix noire dans le coin inférieur droit de la cellule) - et nous obtiendrons la plage d'origine, mais sans cellules vides :

 

Méthode 3. Fonction personnalisée dans VBA

Si vous soupçonnez que vous devrez souvent répéter la procédure de suppression des cellules vides des plages, il est préférable d'ajouter une fois votre propre fonction de suppression des cellules vides à l'ensemble standard et de l'utiliser dans tous les cas suivants.

Pour ce faire, ouvrez Visual Basic Editor (ALT + F11), insérez un nouveau module vide (menu Insertion – Module) et copiez-y le texte de cette fonction :

Fonction NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) Redim Result(1 To MaxCells, 1 To 1) For Each Rng In DataRange.Cells If Rng.Value <> vbNullString Then N = N + 1 Result(N, 1 ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Then NoBlanks = Application.Transpose(Result) Else NoBlanks = Result Fin si fonction de fin  

N'oubliez pas d'enregistrer le fichier et de revenir de Visual Basic Editor à Excel. Pour utiliser cette fonction dans notre exemple :

  1. Sélectionnez une plage suffisante de cellules vides, par exemple F3:F10.
  2. Allez au menu Insertion – Fonction (Insérer — Fonction)ou cliquez sur le bouton Fonction d'insertion (Insérer une fonction) languette formule (Formules) dans les nouvelles versions d'Excel. Dans la catégorie Défini par l'utilisateur (Défini par l'utilisateur) choisissez notre fonction Pas de blancs.
  3. Spécifiez la plage source avec des vides (B3:B10) comme argument de la fonction et appuyez sur Ctrl + Maj + Entréepour saisir la fonction sous forme de formule matricielle.

:

  • Supprimer toutes les lignes vides d'un tableau à la fois avec une simple macro
  • Suppression simultanée de toutes les lignes vides d'une feuille de calcul à l'aide du module complémentaire PLEX
  • Remplir rapidement toutes les cellules vides
  • Que sont les macros, où insérer le code de macro dans VBA

 

Soyez sympa! Laissez un commentaire