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.