Macro Excel supression lignes avec condition

Fermé
Raffton Messages postés 2 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 25 juin 2007 - 13 juin 2007 à 15:29
 lucho33 - 27 févr. 2008 à 15:55
Bonjour à tous,

j'ai un classeur excel qui doit faire dans les 5000 lignes et plus de 20 colonnes, autant dire que ya de la cellule...
La colonne A contient les noms des produits, on y touche pas. les colones B à i contiennent des chiffre d'affaire. chaque colone corresspond a une année. voila le topo.
certains produits ont un CA= 0€ .. mon but est de créer une macro qui parcour le tableau en commençant par la colone B de la ligne 1 et qui regarde si la cellule (B1) est = "0"; si la condition est verfiée alors passe a la colone suivant (on est dans la cellule C1) et refait le test ; si la condition est verifiée passe a la colonne suivante et ainsi de suite jusqu'à la derniere colone si la cellulle de la derniere colonne sensée avoir un CA est ="0" alors il supprime la ligne. Si la ligne est suprimée il ne passe pas a la ligne 2 (car elle est remontée en ligne 1) , si non alors passe a la ligne 2 .

voila , j ai essayé d etre le plus precis possible et le plus clair.
en gros je doi supprimer les lignes dont TOUT les CA sont ="0"

merci d'avance a ceux qui me proposeront des suggestions de code...

bonne journée

Raff
A voir également:

3 réponses

Bonjour,

Voici un exemple de code à insérer dans un module vba :

For n = 1 To ActiveSheet.UsedRange.Rows.Count
 If Application.WorksheetFunction.Sum(Range(Cells(n, 2), Cells(n, 20))) = 0 Then Rows(n).Delete
Next


Je l'ai testé, il fonctionne.

Espérant avoir répondu à ton attente.

Cordialement.

Papou
0
Raffton Messages postés 2 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 25 juin 2007
25 juin 2007 à 14:12
bonjour,

merci Papou pour ta réponse rapide et desolé pour le retard de la mienne.
alors , j ai inséré ton code dans ma macro mais il me dit " erreur definie par l'aplication ou l'objet ... " l'erreur se situant sur la ligne : If Application.WorksheetFunction.Sum(Range(Cells(n, 2), Cells(n, 2000))) = 0 Then ...

voila je sais pas trop d'ou ca peu venir...

merci

cordialement

raff
0
Papou > Raffton Messages postés 2 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 25 juin 2007
11 juil. 2007 à 23:31
Bonsoir Raff,

A mon tour d'être désolé pour le retard, j'étais retenu loin de chez moi.

Si je reprends ta ligne :

If Application.WorksheetFunction.Sum(Range(Cells(n, 2), Cells(n, 2000))) = 0 Then ...

Je pense que l'erreur vient du nombre de colonnes (2000) qui dépasse la capacité d'Excel : en effet, n représente la ligne et 2000 la colonne (maxi : 256 colonnes)

Cordialement.

Papou
0
As tu essayé par
Menu /Données/Filtre élaboré ?
0
Et si tu créais en colonne 256 un total CA genre"=somme(Bn,IIn)" et que tu teste uniquement cette cellule pour ta ligne, ce ne serait pas plus simple?
0
Bonjour à tous,

j'importe des données en continue dans un fichier Excel. les données s'affiche dans les colonnes A et B. Comme c'est une saisie en continue, le nombre de ligne n'a pas de limites. j'aimerai en fait automatiser le fait de supprimer les cellules A1 et B1 lorsque les cellules A10 et B10 ( par exemple), ne sont plus vides.

je connais pas grand chose en prog!!!

merci pour votre aide!!!
0