Macro-VBA suppression lignes

  • Initiateur de la discussion Initiateur de la discussion UJAP
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

UJAP

XLDnaute Occasionnel
Salut,

Je viens de trouver sur le forum un macro afin de supprimer automatiquement des lignes dans mon fichier Excel. Mais je voudrai lui rajouter des conditions.

Exemple : Si la colonne K contient ce renseignement «*--------------*»suprimer la ligne et si la colonne D contient ce renseignement «*sum*» supprimer la ligne.

Je n'y connais rien en VBA. Alors quelles sont les modifications à effectuer sur mon code,

Merci,
Et bon week-end,
Christophe

Sub test()
For i = Range("c65536").End(xlUp).Row To 4 Step -1
If Range("k" & i).Value = "" Then
Rows(i).Delete
End If
Next i
End Sub
 
Re : Macro-VBA suppression lignes

Bonjour,

Si j'ai bien compris, utiliser le code suivant :

Code:
If Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("d" & i).Value Like "*sum*" Then
A+
 
Dernière édition:
Re : Macro-VBA suppression lignes

OK merci,

Et si je veux que la ligne 1 ne soit pas concernée par la suppression même si elle réunit les conditions ?

Donc comment exclure la linge 1 de mon macro ?

Merci pr votre aide,
 
Re : Macro-VBA suppression lignes

Ok merci pr ta réponse,

Je voudrai supprimer les 1 à 8 obligatoirement puis conserver la ligne 9 obligatoirement plus les autres conditions avant ?

Je mettais trompé tt à l'heure,

MErci,
 
Re : Macro-VBA suppression lignes

J'ai donc copié le code :
Sub test()
For i = Range("c65536").End(xlUp).Row To 4 Step -1
If i<9 and i<>9 Or (If Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("d" & i).Value Like "*sum*" ) Then
Rows(i).Delete
End If
Next i
End Sub

Il me met erreur de compilation ! comment corriger cette erreur ?

Et comment compiler plusieurs macros ?
 
Re : Macro-VBA suppression lignes

Bonjour UJAP, le forum,

Supprimer le 2ème If :

Code:
Sub test()
For i = Range("c65536").End(xlUp).Row To [B]1[/B] Step -1
If i < 9 And i <> 9 Or (Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("d" & i).Value Like "*sum*" ) Then
Rows(i).Delete
End If
Next i
End Sub
A+

Edit : je pense à une chose : si sum doit être dans une formule, il faut écrire :
Range("d" & i).Formula Like "*SUM*"
 
Dernière édition:
Re : Macro-VBA suppression lignes

Re

Job75 a parfaitement raison

Je crois arriver a la même chose

Code:
Sub test()
For i = Range("c65536").End(xlUp).Row To 1 Step -1
If i < 9 Or Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("d" & i).Formula Like "*SUM*" And i <> 9 Then
Rows(i).Delete
End If
Next i
End Sub

avec mes excuses !!
 
Re : Macro-VBA suppression lignes

Merci bcp,

Je viens de tester le code : il fonctionne super !

Sauf il me supprime la ligne 9 car elle peut réunir les conditions de suppression. Je voudrai que cette ligne reste même si elle réunit les conditions. C’est possible ?

Sub test()
For i = Range("c65536").End(xlUp).Row To 1 Step -1
If i < 9 Or Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Value Like "*COLLECTIVITE*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Formula Like "*============*" And i <> 9 Then
Rows(i).Delete
End If
Next i
End Sub

Et encore merci pr votre aide,
 
Re : Macro-VBA suppression lignes

Re

Modifier comme suit :

Code:
Sub test()
For i = Range("c65536").End(xlUp).Row To 1 Step -1
If i <> 9 Then
If i < 9 Or Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Value Like "*COLLECTIVITE*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Formula Like "*============*" Then
Rows(i).Delete
End If
End If
Next i
End Sub
A+
 
Re : Macro-VBA suppression lignes

Re

En fait le code suivant me semble plus simple :

Code:
Sub test()
For i = Range("c65536").End(xlUp).Row To [COLOR="Red"]10[/COLOR] Step -1
If Range("k" & i).Value = "" Or Range("k" & i).Value Like "*--------------*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Value Like "*COLLECTIVITE*" Or Range("c" & i).Value Like "*sum*" Or Range("a" & i).Formula Like "*============*" Then
Rows(i).Delete
End If
Next i
[COLOR="Red"]Range("1:8").Delete[/COLOR]
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
915
Réponses
4
Affichages
735
Réponses
8
Affichages
785
Réponses
4
Affichages
586
Retour