macro excel pour supprimer ligne

  • Initiateur de la discussion Richard.RdA
  • Date de début
R

Richard.RdA

Guest
bonjour,

j'ai un tableau excel de 1000 lignes et 40 colonnes
en colonne C j'ai des chifres (soit négatifs, soit nuls, soit positifs)
je voudrais une macro (à intégrer dans une autre macro que j'ai crée par Outils, macro, créer...)
qui me supprimerait toutes les lignes où la valeur de la cellule C est : nulle ou positive.


merci par avance
 

2passage

XLDnaute Impliqué
Bonjour,

Voici un bout de code qui fait ça :

Code:
Dim celsel As String
celsel = ''
For Each cellul In Range('C1:C' & Range('C56635').End(xlUp).Row)
    If cellul.Value >= 0 Then
        celsel = celsel & cellul.EntireRow.Address & ','
    End If
Next
Range(Left(celsel, Len(celsel) - 1)).Select
ActiveWindow.RangeSelection.Delete

pour info, je construis une chaine qui me sert à selectionner puis à supprimer parce que si on supprime dans la boucle for Next, on ne passe plus sur toutes les lignes

A+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Une autre un peu différente avec la boucle for next et en passant par toutes les lignes ;)

Dim x As Integer

For x = Range('C65536').End(xlUp).Row To 1 Step -1
If Range('C' & x) >= 0 Then Rows(x).Delete
Next

Bon courage
 

MIdo27

XLDnaute Nouveau
Re : macro excel pour supprimer ligne

Bonjour à vous,

je rebondie sur le sujet pour poser une question relativement similaire

je dispose d'un fichier de 4500 lignes et qques

je souhaite filtrer ce fichier en supprimant des lignes de contact dont la profession ne correspond pas à ma recherche

la profession est indiquée dans la colonne "I"

voici la macro réalisée, ça plante : je pense que je fais une erreur dans le (ligne, colonne)

pourriez-vous m'indiquer la marche à suivre ?

merci d'avance !

Sub Filtre()

If Cells(I) = "Médical" Then
Rows.Delete
ligne = ligne - 1
End If
If Cells(I) = "Mutualité" Then
Rows.Delete
ligne = ligne - 1
End If
If Cells(I) = "Manutention" Then
Rows(ligne).Delete
ligne = ligne - 1
End If
If Cells(I) = "Musique" Then
Rows(ligne).Delete
ligne = ligne - 1
End If
If Cells(I) = "Histoire" Then
Rows(ligne).Delete
ligne = ligne - 1
End If
If Cells(I) = "Cheval" Then
Rows(ligne).Delete
ligne = ligne - 1
End If

End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : macro excel pour supprimer ligne

Bonjour Mido,

Bienvenue sur XLD,

Tu as du monter haut pour rebondir maintenant sur un fil de 2005 ;)

Si tu supprimes les lignes, tu ne pourras plus les réafficher, ne veux-tu pas les masquer à la place ?

Cells(ligne, colonne) attend 2 valeurs en général, le numéro de ligne et le numéro de colonne...
 

MIdo27

XLDnaute Nouveau
Re : macro excel pour supprimer ligne

merci à toi pour ce retour, a priori je n'ai besoin de les conserver, je peux vraiment les supprimer

tu sais pkoi ma macro n'est pas bonne ?

on m'a conseillé également une macro de forme :

dim i as integer
i=1
if range ("I"&i).value="Medical" or range ("I"&i).value="Mutualité" or etc... then
rows(i).delete
else
i=i+1
end if

ça te parait mieux ?
 

tototiti2008

XLDnaute Barbatruc
Re : macro excel pour supprimer ligne

Re,

Oui, c'est une bonne écriture ou alors

Code:
i=1
Select Case Range("I" & i).value
Case "Medical", "Mutualité", "Manutention" '....etc
Rows(i).delete
Case Else
i=i+1
End Select

Mais il faudra une boucle pour expliquer jusqu'où aller....

peut-être

Code:
[CODE]i=1
Do Until Range("I" & i).value = ""
Select Case Range("I" & i).value
Case "Medical", "Mutualité", "Manutention" '....etc
Rows(i).delete
Case Else
i=i+1
End Select
Loop
[/CODE]
 
Dernière édition:

Lilie_peche

XLDnaute Nouveau
Re : macro excel pour supprimer ligne

Hello à tous!

Je voudrais réaliser une macro qui consiste également à supprimer des lignes mais pas de la même manière. Je m'explique :

Mon fichier contient un nombre de lignes aléatoire et un nombre de colonne fixe. Le but de ma manoeuvre est de regarder dans la colonne H si deux valeurs sont identiques, si oui, alors regarder dans la colonne C si les deux valeurs sont également identiques, si oui alors supprimer une des 2 lignes.

Concrètement j'ai des doublons mais que je ne peux évidemment pas supprimer avec l'outil "supprimer les doublons" d'Excel :)

Quelqu'un pourrait-il m'aider?

Merci

Pour info : je ne suis pas super calée en VBA mais je peux me débrouiller.
 

jonjoneh

XLDnaute Nouveau
Re : macro excel pour supprimer ligne

Re,

je vois que tu avais tout de même ouvert ta propre discussion :
https://www.excel-downloads.com/thr...e-contenant-pas-colonne-b-5200-lignes.179210/

Pas top la multiplication des fils.....

Bonjour Pierrot!
Je suis nouveau sur le forum et avant de trouver la manière d'ouvrir une discussion j'ai tenté différentes approches sur des discussions plus ou moins similaires.

Ce que je ne regrette pas étant donné qu j'ai ce matin différentes formules a tester.

Désolé pour le dérangement. J'espère ne pas avoir gaché ta journée.

Aurevoir
 

Discussions similaires

Réponses
26
Affichages
976
Réponses
9
Affichages
357

Membres actuellement en ligne

Statistiques des forums

Discussions
312 453
Messages
2 088 550
Membres
103 881
dernier inscrit
malbousquet