Aujourd'hui, nous allons apprendre à vérifier facilement si une ou plusieurs cellules sont vides à l'aide de Visual Basic pour Applications. Le contenu est pertinent pour Excel 2019/365, 2016 et les versions antérieures de Microsoft Office.
Travail de préparation
Avant de commencer à coder avec VBA dans Excel, vous devez vous assurer que votre onglet de développement est activé. Si ce n'est pas le cas, veuillez consulter ce court tutoriel .
Vérifier si la plage de cellules Excel est vide avec VBA
- Dans Excel, ouvrez votre environnement Visual Basic en appuyant sur Alt+F11
- Insérez le code suivant en tant que procédure dans votre feuille de travail, ou alternativement dans un module VBA dédié.
Sub Check_Cell_is_empty_alt()
Dim rng As Range
Set rng = Selection
For Each Cell In rng
If IsEmpty(Cell.Value) = True Then
Debug.Print ("Empty")
Else
Debug.Print ("Not Empty")
End If
Next Cell
End Sub
- Accédez à votre feuille de calcul et sélectionnez une plage arbitraire de cellules.
- Revenez à l'éditeur Visual Basic et assurez-vous que la visionneuse immédiate (CTRL + G) est visible - car la méthode Debug.Print dans le code affichera son résultat dans cette fenêtre.
- Appuyez sur F5 pour exécuter votre code.
- Regardez les résultats dans la fenêtre immédiate.

- Toutes les cellules vides seront identifiées.
Extensions possibles du code : vous pouvez évidemment étendre ce code si nécessaire au cas où vous souhaiteriez ignorer les valeurs vides ou ne rien faire au cas où les cellules ne seraient pas pleines. De même, vous pouvez vérifier si la plage elle-même est vide, c'est-à-dire qu'aucune cellule noire n'est contenue.
Vérification des champs non vides
De la même manière, vous pouvez utiliser la propriété IsEmpty pour vérifier les champs qui ne sont pas vides.
If Not IsEmpty(Cell.Value) = True Then
Debug.Print ("Not Empty")
Else
Debug.Print ("Empty")
End If
Bonus : utilisez le code suivant si vous souhaitez également mettre en évidence les cellules vides.
Dim i As Long Dim c As Long Dim myRange As Range Dim myCell As Range Définir myRange = Range("A1:A10") Pour chaque myCell dans myRange ' c = c + 1 If IsEmpty(myCell) Then myCell.Interior.Color = RGB(255, 87, 87) i = i + 1 End If Next myCell MsgBox _ "Il y a au total" & je etamp; " cellule(s) vide(s) sur " & camp; "."