Insérer des valeurs dans des cellules vides avec Excel VBA

Dans certaines analyses, des cellules vides peuvent provoquer des problèmes. Ils peuvent perturber l’ordre de tri, empêcher un remplissage automatique approprié, dans les tableaux croisés dynamiques, etc.
Les cellules vides ne doivent pas toujours indiquer un problème, mais si c’est le cas, cette macro les supprimera. Avec son aide, les cellules dans la plage indiquée peuvent être rapidement remplies avec des valeurs spécifiques.
Comment ca marche?
La macro exécute une boucle pour toutes les cellules de la plage, puis utilise la fonction Len pour vérifier la longueur de la chaîne dans chacune des cellules actives. Pour les cellules vides, la longueur de la chaîne est 0. Dans une telle cellule, la macro entre la valeur 0, grâce à laquelle elle cesse d’être vide.

Sub InsererValeur()
'Étape 1: Déclarez les variables
Dim MaPlage As Range
Dim MesCellules As Range
'Étape 2: enregistrer la feuille de calcul avant d'apporter des modifications aux cellules?
Select Case MsgBox("Les actions ne peuvent pas être annulées." & "Voulez-vous d'abord enregistrer la feuille de calcul?", vbYesNoCancel)
Case Is = vbYes
ThisWorkbook.Save
Case Is = vbCancel
Exit Sub
End Select
'Étape 3: définir la plage de cellules
Set MaPlage = Selection
'Étape 4: Démarrage d'une boucle pour la plage
For Each MesCellules In MaPlage
'Étape 5: Vérifier si la longueur de la chaîne est 0
If Len(MesCellules.Value) = 0 Then
MesCellules = 0
End If
'Étape 6: passez à la cellule suivante de la plage
Next MesCellules
End Sub

Commentaires

1. Tout d’abord, deux variables de l’objet Range sont déclarées – la variable MaPlage stockera l’adresse de la plage entière, tandis que la variable MesCellules stockera les données des cellules calculées successivement de la plage donnée.
2. Lorsque la macro est exécutée, la pile d’annulation sera supprimée. Cela signifie que vous ne pourrez pas annuler les actions effectuées par la macro. Parce que les données changent, c’est une bonne idée d’enregistrer votre classeur avant de l’exécuter. Cela se déroule ensuite à l’étape deux. Une boîte de message s’affiche, qui propose des options pour enregistrer le classeur. Il propose trois options: Oui, Non et Annuler. Cliquez sur Oui pour enregistrer le classeur et poursuivre la macro. Cliquez sur Annuler pour mettre fin à la macro. Toutefois, en cliquant sur le bouton Non, l’exécution de la macro commencera sans enregistrer le classeur au préalable.
3. À l’étape trois, la plage cible de cellules est transmise à la variable MaPlage. Dans cet exemple, la plage déjà sélectionnée dans la feuille de calcul est sélectionnée. Bien entendu, la variable MaPlage peut facilement être définie sur une plage spécifique, par exemple Range (“A1: Z100”). De même, lorsqu’une plage a un nom. Ensuite, vous pouvez simplement le saisir: Range (“nomdeplage”).
4. À l’étape quatre, une boucle est lancée pour chaque cellule dans la plage indiquée.
5. Lorsque la cellule est activée, à la cinquième étape, la macro, basée sur la propriété IsEmpty, détermine si la cellule est vide. Il s’agit d’améliorer les performances – si la cellule est vide, aucune action n’est effectuée. Ensuite, la fonction Len, standard dans Excel, est utilisée, qui renvoie des informations sur la longueur d’une chaîne donnée. Si la cellule est vide, la fonction renvoie 0 et la macro insère le nombre 0. Bien sûr, vous pouvez entrer n’importe quelle valeur dans la cellule (par exemple n / a, do, aucune donnée, etc.).
6. À l’étape six, la boucle passe à la cellule suivante. Après avoir activé toutes les cellules de la plage macro, l’opération se termine.
NOTE
Étant donné que la plage a été définie sur la zone actuellement sélectionnée, avant d’exécuter le code, il convient de s’assurer que les cellules contenant les données ont été sélectionnées. En d’autres termes, ne sélectionnez pas la feuille entière. Sinon, toutes les cellules qui ne contiennent pas. données, est resté rempli de zéros. Vous pouvez éviter ce problème en pointant sur la plage de données exacte, par exemple oui: Définissez MaPlage = Range (“A1: Z100”).
Comment appliquer la macro?
Pour implémenter cette macro, vous pouvez copier et coller son code dans un module standard. À cette fin:
1. Utilisez la combinaison de touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur le nom du projet ou de la feuille.
3. Sélectionnez Insérer / Module.
4. Saisissez ou collez le code.
S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x