Vba supprimer plusieurs lignes if then end if

Vba supprimer plusieurs lignes if then end if - VB/VBA/VBS - Programmation

Marsh Posté le 21-04-2010 à 15:56:19    

Bonjour à tous,  
 
Je débute en VBA et j'aurai besoin d'un petit coup de main :  
 
Je possède un tableau contenant environ 1000 lignes et 10 colonnes. Je souhaiterait que si 4 lignes à la suite possède un texte précis dans deux colonnes précises alors ces quatres lignes soient supprimées. Voici mon code actuel qui ne fonctionne pas.
 
Sub Testaa()  
Dim i%  
For i = 25000 To 1 Step -1  
If Cells(i, 4) = "System OK" And Cells(i, 7) = "phasing out" And Cells(i + 1, 4) = "Wind < start wind" And Cells(i + 1, 7) = "incoming" And Cells(i + 2, 4) = "Wind < start wind" And Cells(i + 2, 7) = "phasing out" And Cells(i + 3, 4) = "System OK" And Cells(i + 3, 7) = "incoming" Then Rows(i).Delete Rows(i + 1).Delete Rows(i + 2).Delete Rows(i + 3).Delete End if
Next  
End Sub  
 
Merci d'avance de votre aide.
 
Cordialement,

Reply

Marsh Posté le 21-04-2010 à 15:56:19   

Reply

Marsh Posté le 21-04-2010 à 16:46:51    

Qu'est-ce qui ne fonctionne pas ? Y a-t-il un message d'erreur ? Si oui, lequel ?
 
Dans le code qui est montré, il faut écrire les instructions sur plusieurs lignes, mais c'est peut-être un défaut qui n'apparait que parce que le code a été mis ici, sans avoir utilisé les balises [fixed] et [/fixed ].


Message édité par olivthill le 21-04-2010 à 16:47:42
Reply

Marsh Posté le 21-04-2010 à 17:11:14    

Je viens de résoudre mon problème, il s'agissait en fait que je n'écrivais pas les instructions sur plusieurs lignes comme tu l'as remarqué. Voici le code fonctionnant :  
Sub Testaa()
Dim i%
For i = 25000 To 1 Step -1
If Cells(i, 4) = "System OK" And Cells(i, 7) = "phasing out" And Cells(i + 1, 4) = "Wind < start wind" And Cells(i + 1, 7) = "incoming" And Cells(i + 2, 4) = "Wind < start wind" And Cells(i + 2, 7) = "phasing out" And Cells(i + 3, 4) = "System OK" And Cells(i + 3, 7) = "incoming" Then
Rows(i + 3).Delete
Rows(i + 2).Delete
Rows(i + 1).Delete
Rows(i).Delete
End If
Next
End Sub
 
Merci de ton aide
Cordialement,

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed