Suppression de ligne sur excel

Résolu
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009 - 3 juil. 2009 à 10:40
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009 - 3 juil. 2009 à 11:36
Bonjour,
Je suis en train de créer un programme sur excel en visual basic et je veux qu'il supprime toutes les lignes dont la colonne P contient un 1.
Je vous donne le code que j'ai mis qui ne marche pas... :

For i = 7 To Nb_Lignes

If Range("P7").Offset(i - 1) = 1 Then Rows(i).EntireRow.Delete Shift:=xlUp


Next i

Le résultat n'efface pas toutes les lignes justes quelques une je ne sais pas pourquoi.

Merci d'avance de votre aide.

4 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
3 juil. 2009 à 11:27
Dim i As Integer
Dim Nb_Lignes As Integer Nb_Lignes = Range("B65536").End(xlUp).Row '- 6 ne sert à rien

For i = Nb_Lignes To 7 Step -1

'    If Range("P7").Offset(i - 1) = 1 Then Rows(i).EntireRow.Delete Shift:=xlUp

    If cells(i,16) = 1 Then Rows(i).EntireRow.Delete Shift:=xlUp

Next i

End Sub
 ça devrait mieux marcher comme ça

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
3
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
3 juil. 2009 à 10:51
Bonjour
essayes de faire la boucle à l'envers
For i = Nb_Lignes to 7 step -1
0
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009
3 juil. 2009 à 11:04
Merci mais ca ne marche toujours pas, il en efface qu'il ne devrait pas effacer, mais il en efface bcp plus deja!
Je vais t'envoyer le code complet peut etre tu verras une erreur :

Sub Macro_suppression_lignes()
'
' Macro_suppression_lignes Macro
' Macro enregistrée le 02/07/2009 par dcastan




Dim i As Integer
Dim Nb_Lignes As Integer




Nb_Lignes = Range("B65536").End(xlUp).Row - 6

For i = Nb_Lignes To 7 Step -1


If Range("P7").Offset(i - 1) = 1 Then Rows(i).EntireRow.Delete Shift:=xlUp


Next i

End Sub

Voila! Et je ne comprends vraiment pas pourquoi il supprime des lignes qui ne sont pas avec des 1...


Merci d'avance !
0
louvierseb Messages postés 63 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 15 juillet 2009
3 juil. 2009 à 11:36
C'est pile poil ce qu'il me faut ^^ !

Je te remercie beaucoup!
Ca marche nickel!
0