Supprimer une ligne comportant des cases vides avec condition

Fermé
Bil591 Messages postés 3 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 13 avril 2021 - Modifié le 13 avril 2021 à 10:03
yg_be Messages postés 22972 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juillet 2024 - 13 avril 2021 à 13:14
Bonjour,

Je vous remercie d'avance pour votre aide.
Je souhaite supprimer des lignes de ma matrice de données car je dois satisfaire une condition dans le process de construction du fichier.
En effet, j'ai 8 colonnes dont 4 qui peuvent renfermer des blancs(aucune donnée). Dans ce cas, je dois mettre en place une routine qui permet d'identifier que sur une même ligne les 4 colonnes présentent un blanc et supprime la ligne.
Exemple: je supprime la ligne "i" Si et seulement si :
case (i,2) = " " ET
case(i,4) = " " ET
case(i,6) = " " ET
case(i,8) = " "

ci-dessous le code qui ne marche pas :/

Sub supprimerLignes()
    For i = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
        If Cells(i, 12) = "" And Cells(i, 15) = "" And Cells(i, 21) = "" And Cells(i, 32) = "" Then
            Rows(i).EntireRow.Delete
        End If
    Next i
End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

yg_be Messages postés 22972 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juillet 2024 1 495
13 avril 2021 à 11:46
bonjour,
comment se comporte ce code?
as-tu essayé de l'exécuter pas par pas?
se pourrait-il qu'il ne travaille pas dans la bonne feuille?
est-ce bien le contenu de la colonne A qui permet de déterminer la fin du tableau?
Bil591 Messages postés 3 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 13 avril 2021
13 avril 2021 à 11:55
Merci pour ton retour.

je suis sur qu'il ne travaille pas car il n'y a rien qui se passe quand je l'exécute.
La réponse est oui pour la question sur la colonne A.
je ne sais pas comment faire pour exécuter pas à pas !
yg_be Messages postés 22972 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juillet 2024 1 495
Modifié le 13 avril 2021 à 11:59
pour exécuter pas à pas: dans l'éditeur VBA, clique dans le code de la sub, puis F8, ensuite F8 pour passer au pas suivant.
tu peux positionner le curseur sur une variable dans le code pour examiner sa valeur.
0
Bil591 Messages postés 3 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 13 avril 2021
13 avril 2021 à 12:24
J'ai examiné le truc. Tout à l'aire bien.
Je ne comprends pas pourquoi les lignes ne soient pas supprimées :/

Avez-vous tester le code sur une table ? Est-ce qu'il marche ?
yg_be Messages postés 22972 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juillet 2024 1 495
13 avril 2021 à 13:07
pas encore testé.
le code s'arrete donc bien sur la ligne 4 (
Rows(i).EntireRow.Delete
), mais le tableau n'est pas affecté?
peux-tu partager ton fichier?
0
yg_be Messages postés 22972 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juillet 2024 1 495 > yg_be Messages postés 22972 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 juillet 2024
13 avril 2021 à 13:14
j'ai testé, cela marche chez moi.
je pense qu'il faut alors s'intéresser à tes données, ce que je ferai quand tu auras partagé ton fichier.
0