Suppression de lignes à partir d'un critère situé sur une liste

  • Initiateur de la discussion steeve
  • Date de début
S

steeve

Guest
Bonjour touuuuuuuus le monde!!

Voila je voudrais supprimmer de lignes en fonction d'un critère:
un numero de compte. Le soucis c'est que j'ai une liste énorme de compte à supprimmer. Je voudrais au lieu d'inclure ces compte en dure dans le code, pouvoir le faire a partir d'une liste dans une feuille excel "liste des comptes à supprimmer" (par exemple).


--------------------------voila c que j'ai déja fait (liste de compte en dure)---------

Sub SupprimCpt()
Range("B2").Select

Do While ActiveCell <> ""
If ActiveCell.Value = 1312100000 Or 1322105000 Or 1327000000 Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Loop
End Sub

Merci d'avance
::)
 
B

Bernard

Guest
Bonsoir Steeve

Un fichier démo joint avec une macro qui exécute la suppression de lignes d'une matrice de N° de comptes inscrits dans la colonne "A" de la feuille "Comptes" en fonction de leur appartenance à une liste située dans la colonne "A" de la feuille "ListeAsupp".

Cordialement

Bernard
 

Pièces jointes

  • SuppComptes.zip
    8.4 KB · Affichages: 35
B

Bernard

Guest
Bonjour Steeve

J'ai donné dans la facilité.
Ci dessous une correction qui je pense envisage la suppression des comptes à apparition multiples.

Option Explicit
Sub SuppComptes()
Dim MyPlage As Range
Dim i As Byte

Set MyPlage = Range(Sheets("ListeAsupp").[A2], Sheets("ListeAsupp").[A65000].End(xlUp))

For i = 2 To Sheets("Comptes").[A65000].End(xlUp).Row
If Application.CountIf(MyPlage, Cells(i, 1)) > 0 Then
Cells(i, 1).EntireRow.Delete
i = i - 1
End If
Next i
End Sub

Cordialement

Bernard
 
S

steeve

Guest
Salut Bernard,
Sur ton fichier effectivement ca fontionne mais le mien à plus de 23000 lignes et la liste des comptes en collone B( sachant qu'il y a d'autres infos sur d'autres colonnes) . Il me met un erreur "Overflow" sur le
-------
For i = 2 To Sheets("Comptes").[A65000].End(xlUp).Row
-------

Je sais plus quoi faire...
 
B

Bernard

Guest
Re Steeve

Pas de panique hi hi

J'ai pris la cellule "A65000" pour départ de la recherche de la première cellule non vide vers le haut dans la colonne "A".

Si tu as 23000 lignes tu peux remplacer la ligne par :

For i = 2 To Sheets("Comptes").[A40000].End(xlUp).Row

Tu peux également faire de même sur la colonne des N° de comptes à supprimer :

Set MyPlage = Range(Sheets("ListeAsupp").[A2], Sheets("ListeAsupp").[A40000].End(xlUp))

ou moins si c'est possible ?


Cordialement

Bernard
 
S

steeve

Guest
Salut bernard,

Décidement....!!
bon mon soucis cette fois , c'est que mon fichier varie, il n'est pas tout le temps de 23000 lignes, des fois plus des fois moins. Donc il faudrai que "[A40000]" puisse varié de facon dynamique en fonction du nombre de ligne.

Pourtant j'ai utiliser une méthode de comptage en me positionnant sur la denrière cellule et en placant l'adresse de celle-ci dans la boucle genre:

["Adresse"] mais je n'y arrive pas, il n'accepte pas ce genre de syntaxe...
peut etre y a t'il une autre méthode????

ARF...
help me please...
Et merci d'avance
 

Discussions similaires

Réponses
2
Affichages
676

Statistiques des forums

Discussions
312 172
Messages
2 085 932
Membres
103 050
dernier inscrit
HAMZA BKA