rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Macro excel et suppression de ligne

Posté par mimi, le dimanche 6 novembre 2005 à 18:52:44
Bonjour à tous

Je souhaite supprimer par macro toutes les lignes dont la valeur est différente de 800 dans la colonne E (de E2 à la fin du champ)
Mais ma macro me laisse des lignes qu'elle aurait due supprimer.
Ou est donc l'erreur ?
Merci pour votre aide
Mimi

Range("E2").Select
Range(Selection, Selection.End(xlDown)).Select
Dim vCellule As Object
For Each vCellule In Selection
If vCellule.Value <> 800 Then
vCellule.EntireRow.Delete
End If
Next
Répondre à mimi  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Armojax, le dimanche 6 novembre 2005 à 21:49:29
Bonsoir mimi,

Le problème est que, quand tu supprimes une ligne, celle d'en dessous remonte à l'adresse de celle que tu viens de supprimer. A la boucle suivante, on passe à la ligne suivante, et donc on ne traite pas celle qui vient de remonter.

Prends le problème à rebrousse poil :
Dim I     As Long
Dim Plage As Range
Set Plage = Range("E2:E" & Range("E2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
  If Plage.Cells(I).Value <> 800 Then
    Plage.Cells(I).EntireRow.Delete
  End If
Next
Répondre à Armojax

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mimi, le dimanche 6 novembre 2005 à 23:08:34
Merci infiniment Armojax !!
Je débute en macro et je ne comprends pas encore tout !
J'ai utilisé ta macro qui marche à merveille !
Mimi
Répondre à mimi

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Aliocha Bada, le vendredi 28 juillet 2006 à 01:25:46
Super ces lignes de codes, merci.

Est ce que quelqu'un pourrait m'aider à corriger le code pour changer la condition de suppresion.

J'aimerais supprimer les lignes dont la somme de la colonne C + D = 0.

Je suis trèsnovice en VBA, et j'aimerais arriver à automatiser un travail récurrent d'importation et de mise en forme des données.

Merci tout plein à qui veut bien m'aider ;)
Répondre à Aliocha Bada

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
luy, le vendredi 24 novembre 2006 à 16:44:40
Je m'excuse de vous demander cela mais j'ai la meme chose a faire que mimi la seul difference c que moi je dois comparer la cellule avec celle d'en dessous et ce sont des caractères dedans (des mots).

j'ai esssayer d'appliquer la même formule mais cela ne marche pas??

Merci

Luy
Répondre à luy

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jenny, le vendredi 24 novembre 2006 à 17:02:10
change le cells(ligne,colonne).value par un .text
Répondre à jenny

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lulu, le vendredi 13 avril 2007 à 21:34:27
bonjour vu tes connaissances les miennes étant proches du néant en macro voilà le souci que je cherche à régler via une macro:
j'ai créé un graphique qui permet de visualiser des dépenses mensuelles cumulées tout au long de l'année
les dépenses sont récupérées via une liaison dans un autre fichier à l'aide d'une fonction = cellule
mon problème est que le montant cumulé évolue bien sûr mais étant donné que le résultat est lié à une cellule soit toujours la même quelque soit le mois considéré je ne visualise pas une courbe qui progresse tous les mois mais donc une droite
il faudrait que je crée une macro lié au graphique qui précise de ne plus toucher à un total dès le mois fini par exemple
merci pour tes précieux conseils
Répondre à lulu

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Kalderon, le vendredi 6 avril 2007 à 10:38:30
Bonjour,

Je souhaiterais avoir la syntaxe macro pour l'algorithme suivant:

SI chaque cellule de la colonne "C" vaut "toto" ALORS
de la première ligne à la dernière ligne:
supprimer une ligne entière sur deux

Et une fois la macro faite, comment l'insérer dans un bouton Excel?

Merci infiniment, c'est très important!
Répondre à Kalderon

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
supersarah, le mercredi 10 octobre 2007 à 16:22:33
Bonjour,
Très interessante votre discussion et c'est vrai j'arrive en retard. Bien contente de trouver ce code pour mon compte et me suis empressée de le recopier or les lignes peuvent être supprimer par un choix de conditions. Ex : si la condition 1 n'est pas remplie, la condition 2 s'applique t'elle? ou peut être la 3 sinon ben la ligne n'est pas supprimée. J'ai bien tenté de rajouté, après avoir tranformé l'opérateur en = par ma propre condition suivi d'un ; suivi de la seconde condition (rien) - Deuxième tentative : rajouter une ligne If : rien non + . Un coup de main s'il vous plaît?
Enfin si quelqu'un passe encore par là
Répondre à supersarah

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jenny, le dimanche 14 octobre 2007 à 10:30:18
Bonjour,

Si ta première condition est fausse ta boucle s'arrête! 2 solutions possible soit tu veux que toutes des condition soit vrai dans ce cas
(principe du AND)
if cells(ligne, colonne).text(ou value) = XX then
if cells(ligne, colonne).text(ou value) = XX then
if cells(ligne, colonne).text(ou value) = XX then
rows(ligne).delete
ligne = ligne -1
end if
end if
end if

plus simplement

if cells(ligne, colonne).text(ou value) = XX then AND cells(ligne, colonne).text(ou value) AND cells(ligne, colonne).text(ou value)
rows(ligne).delete
ligne = ligne -1
end if


si tu veu que dès qu'une de tes condition soit vrai la ligne est supprimée (principe du OR)

if cells(ligne, colonne).text(ou value) = XX then
rows(ligne).delete
ligne = ligne -1
end if
if cells(ligne, colonne).text(ou value) = XX then
rows(ligne).delete
ligne = ligne -1
end if
if cells(ligne, colonne).text(ou value) = XX then
rows(ligne).delete
ligne = ligne -1
end if

ou plus simplement

if cells(ligne, colonne).text(ou value) = XX then or cells(ligne, colonne).text(ou value) or cells(ligne, colonne).text(ou value)
rows(ligne).delete
ligne = ligne -1
end if
Répondre à jenny

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
zebrac, le dimanche 10 février 2008 à 17:25:05
bonjrs tt le monde
je voudrai savoir est ke il a ya une possiblité de faire une alerte par mail lié a un dépassement de seuil dans une cellule excel
merci par avance
Répondre à zebrac

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Luna, le jeudi 21 février 2008 à 15:22:49
Bonjour à tous,

Je suis complètement novice dans l'utilisation des macro excel, et je voudrais faire un programme qui me permette de supprimer automatiquement des colonnes. Je vois comment faire pour simplement éliminer une colonne mais je voudrais que cette suppression se fasse suite à une comparaison entre cellules.

Je vous donne un exemple.


A C D E G H I J
A B C D E F G H I J
1 8 7 1 1 3 7 5 1 7
0 5 2 1 4 2 3 5 8 7
3 6 3 0 1 5 4 8 9 4
4 4 1 9 2 4 7 2 6 0

Voilà mon tableau de valeurs.
La première ligne est ma référence fixe.
Je voudrais comparer la 2ème ligne à la 1ère et éliminer la colonne quand le texte de la cellule de la ligne 2 ne correspond pas à la cellule du dessus.

Dans mon exemple, dans la première ligne, j'ai pas de B, ni de F. Je voudrais donc éliminer la colonne correspondant à B, décaler de façon à ce que la colonne C soit sous le C de la première ligne et faire pareil pour F.
Je ne sais pas si c'est très clair !

Qui peut m'aider ????
Répondre à Luna

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Kona52, le jeudi 20 mars 2008 à 11:30:39
Salut Luna.

J'espere qu'il n'est pas trop tard pour repondre a ton probleme, mais j'ai comme l'impression qu'il y a plus de questions que de réponses sur ce topic... alors je poste quand meme ma reponse.

En fait, je suis aussi debutant en programmation, mais on apprend pas mal de choses en se baladant sur les forums, et avec un peu de logique, on arrive a ca :

'i est la colonne sur laquelle on effectue la comparaison. On part a priori de la colonne 1 jusqu'a ce qu'il n'y ai plus rien dans la ligne A
For i = 1 To Range("A1").End(xlToRight).Column
'Tant que les cellules des ligne 1 et 2 (A et B) de la colonne i sont differentes...
While Cells(2, i) <> Cells(1, i)
'... on selection les cellules à supprimer (ici de la ligne 2 à 6 (soit B à F) de la i eme colonne)
Range(Cells(2, i), Cells(6, i)).Select
' et on les supprime
Selection.Delete Shift:=xlToLeft
Wend
Next

En supprimant mes commentaires, ca donne quelque chose d'assez simple...

En esperant avoir repondu a ton probleme.
Répondre à Kona52

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lucho33, le mercredi 27 février 2008 à 17:09:03
Bonjour à tous,

je suis plus que débutant en prog mais bon!!

j'importe des données en continue sur un fichier Excel. le tableau se présente sous forme de 2 colonnes et une multitude de lignes puisque la saisie est en continue!!!
j'aimerai savoir comment je peux faire pour supprimer les cellules A1 et B1 quand les cellules A10 et B10 se remplissent.
en fait je veux faire glisser les cellules, d'une cellule vers le haut dès que la lignes 10(par exemple) se remplis..

Merci d'avance pour votre aide!!!!
Répondre à lucho33
Logiciels pertinents trouvés dans les téléchargements
Télécharger Excel Viewer 2003Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même...Catégorie: Tableur
Licence: Freeware/gratuit
Télécharger Support IPX pour Vista 1.0Support IPX pour Vista - Le protocole IPX/SPX sert à de nombreux anciens jeux pour pouvoir jouer en réseau (Red Alert, Command & Conquer, etc.). ...Catégorie: Librairies (DLL)
Licence: Freeware/gratuit
Télécharger Super Macro  1Super Macro - Super Macro est un logiciel gratuit qui permet de créer des macros sous Windows afin de déclencher diverses actions...Catégorie: Bureautique
Licence: Freeware/gratuit
Télécharger OpenOffice.org 2.4.1OpenOffice.org - OpenOffice est une suite bureautique complète entièrement gratuite, compatible avec la suite Microsoft Office. Elle...Catégorie: Suite bureautique
Licence: Open Source
Plus de logiciels gratuits sur « macro excel supprimer des lignes »