Supprimer une ligne comportant des cases vides avec condition

Bil591 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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?
0
Bil591 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention  
 
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 ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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