Macro utile pour supprimer des lignes avec du texte, Excel VBA

Souvent, vous ne pouvez pas simplement supprimer des lignes dans une table simplement parce qu’il n’y a aucune valeur dans une colonne. Il vaut mieux vérifier s’il s’agit bien d’une ligne vide. Pour ce faire, définissez au préalable vos critères de suppression d’une ligne. Celles-ci pourraient par exemple être les suivantes:

Une ligne est supprimée si

► Le texte ALT se trouve dans n’importe quelle ligne de la colonne A ou

► la somme des colonnes B: D donne la valeur 0.

 

Pour effectuer la suppression conditionnelle de lignes, démarrez la macro suivante dans l’extrait 6.32.

Sub SuppressionLignesCondition ()

Dim sumsp as long

  Sheets ("Feuil2"). Activate

  Range ("A1"). Select

  Do Until ActiveCell.Value = ""

    sumsp = ActiveCell.Offset (0, 1) .Value + _

    ActiveCell.Offset (0, 2) .Value + _

    ActiveCell.Offset (0, 3) .Value

    On Error Resume Next

    If sumsp = 0 Or InStr (1, ActiveCell.Value, "Alt") _

    Then Selection.EntireRow.Delete _

    Else ActiveCell.Offset (1, 0) .Select

  Loop

End Sub

 

Vous pouvez utiliser la fonction InStr pour vérifier si le texte ALT apparaît dans la cellule à examiner. Peu importe que le texte recherché soit au début, au milieu ou à la fin de la cellule. Pour vérifier le deuxième critère de suppression, formez une somme et enregistrez-la dans la variable sumsp. Si l’un des deux critères de suppression est satisfait, la ligne entière est supprimée à l’aide de la méthode Delete et le pointeur de cellule est positionné une ligne plus loin.

Une autre condition de suppression serait par ex. B. le test après un certain nombre de caractères saisis. La macro suivante supprime toutes les lignes dont les cellules de la colonne A contiennent exactement 0 caractère.

 Sub SupprimerLesLignesVides ()

Dim l As Long

Dim Zl As Long

  Sheets ("Feuil3"). Activate

  Zl = ActiveSheet.UsedRange.Rows.Count

Range("A1").Select
For l = 1 To Zl
If Len(ActiveCell.Value) = 0 _
Then Selection.EntireRow.Delete _
Else ActiveCell.Offset(1, 0).Select
Next l
End Sub

 

Dans la première étape, vous déterminez le nombre de lignes occupées dans votre table. Vous enregistrez le nombre déterminé dans la variable longue zl. Ensuite, vous configurez une boucle For Next qui est exécutée jusqu’à ce que la dernière ligne de la zone utilisée soit atteinte. Dans la boucle, utilisez la fonction Len pour déterminer le nombre de caractères entrés dans la cellule. Si la longueur des caractères de la cellule est supérieure à dix caractères, la ligne entière est supprimée. Sinon, la ligne suivante est positionnée.

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