Suppression conditionnelle de lignes

Yannanou

XLDnaute Nouveau
Bonjour à tous,

j'ai un peit probléme, j'ai une plage de données sur une vingtaine de colonne et environs 10 000 lignes, mais dans ces données je ne veux garder que les lignes qui comportent une cellule de la forme PxAxxx... (x étant une variable non définie). Or je n'arrive pas a créer le macro adéquoite.
Donc si quelq'un à une idée, je la recevraiavec plaisir.
Si je n'ai pas été assez clair et que vous pensée pouvoir m'aider n'hésité pas à me poser des questions.

Merci d'avance pour votre interet.

Yann
 

Excel_lent

XLDnaute Impliqué
Re : Suppression conditionnelle de lignes

Salut à tous et aux autres,

Catrice, ta proposition ne permet de supprimer des lignes qu'en testant la première colonne. C'est peut-être ce qui gêne Yannanou.
J'ai une solution pour tous les cas mais il faut relancer la macro plusieurs fois.
Je n'ai pas trouvé de boucle simple et efficace pour réussir ce travail d'un seul coup et surtout rapidement.
 

Pièces jointes

  • SuppLigneCelluleAS.xls
    46 KB · Affichages: 48

pierrejean

XLDnaute Barbatruc
Re : Suppression conditionnelle de lignes

bonjour Yannanou
Salut Catrice
Salut Excel_lent

3 petites macros a executer successivement (pour voir) et regrouper ensuite

Code:
Sub note()
For Each cel In Sheets("Feuil1").UsedRange
  If cel.Value Like "P?A*" Then
    Rows(cel.Row).Interior.ColorIndex = 3
  End If
Next cel
End Sub
 
Sub efface()
For n = Range("A65536").End(xlUp).Row To 1 Step -1
  If Range("A" & n).Interior.ColorIndex = xlNone Then
     Rows(n).Delete
  End If
Next n
End Sub
 
Sub decolore()
For Each cel In Sheets("Feuil1").UsedRange
    Rows(cel.Row).Interior.ColorIndex = xlNone
Next cel
End Sub

et en y regardant de plus pres ....

la macro d'Excel_lent lègèrement modifiée et du coup
très efficace

Code:
Sub test()
Application.ScreenUpdating = False
  For li = Range("A65536").End(xlUp).Row To 1 Step -1
     For col = 1 To 12
       If Cells(li, col).Value Like "P?A*" Then
         oui = True
         Exit For
       End If
     Next col
  If oui = False Then Cells(li, col).EntireRow.Delete
  oui = False
  Next
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Suppression conditionnelle de lignes

Bonsoir à tous,

ci-joint une variante :

Sub Test2()
Application.ScreenUpdating = False
For i = ActiveSheet.Range("A65536").End(xlUp).Row To 1 Step -1
For Each X In Range(Cells(i, 1), Cells(i, 256).End(xlToLeft))
If X.Value Like "P?A*" Then GoTo Etiquette1
Next
Cells(i, 1).EntireRow.Delete
Etiquette1:
Next
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Classeur1.xls
    32.5 KB · Affichages: 43
  • Classeur1.xls
    32.5 KB · Affichages: 52
  • Classeur1.xls
    32.5 KB · Affichages: 61

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 882
Membres
103 981
dernier inscrit
vinsalcatraz