Supprimer certaines lignes dans un tableau

  • Initiateur de la discussion Initiateur de la discussion maclem
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

maclem

Guest
Bonsoir le forum
Voila j'ai un petit soucie je cherche a supprimé toutes les lignes dans mon tableau dont la valeur marge n'est pas négative et gardé juste celle qui sont en couleur comme pourrais je faire.
merci d'avance pour votre aide
 

Pièces jointes

Re : Supprimer certaines lignes dans un tableau

Bonjour à toutes et à tous,

Bienvenue sur XLD, maclem !

... je cherche a supprimé toutes les lignes dans mon tableau dont la valeur marge n'est pas négative et gardé juste celle qui sont en couleur...
Les valeurs négatives étant colorées, je ne comprends pas la demande 😕.

Quelles lignes doivent réellement être supprimées ?

A bientôt 🙂
 
Re : Supprimer certaines lignes dans un tableau

Bonsoir Maclem et bienvenu, bonsoir DoubleZéro, bonsoir le forum,

Peut-ête comme ça :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim x As Integer 'décalre la variable i (Incrément)

With Sheets("Feuil1") 'prend en compte la variable "Feuil1"
    dl = .Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la dernière ligne de la colonne 7 (G)
    For i = dl To 8 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 8
        If .Cells(i, 7) > 0 Then .Rows(i).Delete 'si la cellule est positive, supprime la ligne
    Next i 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 
Dernière édition:
Re : Supprimer certaines lignes dans un tableau

-RESOLUE- DoubleZero pas la peine de vous excusé c'est déja super sympa de prendre de votre temps pour me répondre
par contre j'ai un autre PB car je voudrais pourvoir appliqué la formule sur plusieurs tableau dont en pièce jointe celui que j'aurais a traité quotidiennent
pourriez vous me mettre votre code car j'ai essayé en modifiant le votre mais je n'y arrive pas
a s'avoir que c'est pour le classeur nommé StockCompare et la colonne a prendre en compte serai la G
merci d'avance

Encore merci
 

Pièces jointes

Dernière modification par un modérateur:
Re : Supprimer certaines lignes dans un tableau

Bonjour le fil, bonjour le forum,

Je fait l'effort de commenter le plus souvent possible les codes que je propose pour permettre à l'utilisateur de le comprendre et donc de le modifier... Voici le code de ton dernier fichier exemple :
Code:
    ActiveWindow.SmallScroll Down:=-6
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Application.WindowState = xlMinimized

Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim x As Integer 'décalre la variable i (Incrément)
With Sheets("StockCompare") 'prend en compte la variable "StockCompare"
    dl = .Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la dernière ligne de la colonne 13 (G)
    For i = dl To 14 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 14
        Debug.Print .Cells(dl, 7).Value
        If .Cells(i, 7) > 0 Then .Rows(i).Delete 'si la cellule est positive, supprime la ligne
    Next i 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "StockCompare"
End Sub
Les quatre premières lignes hors procédure font planter :
Code:
    ActiveWindow.SmallScroll Down:=-6
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Application.WindowState = xlMinimized
Je sais pas d'où tu les sors ? Il suffit des les supprimer !
Ensuite dans ton premier exemple la première ligne de données commençait à la ligne 14 alors que dans ce dernier elle commence à la ligne 3
il suffit donc de modifier :
For i = dl To 14 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 14
par :
For i = dl To 3 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 3
le code final :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim x As Integer 'décalre la variable i (Incrément)

With Sheets("StockCompare") 'prend en compte la variable "StockCompare"
    dl = .Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la dernière ligne de la colonne 13 (G)
    For i = dl To 3 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 3
        If .Cells(i, 7) > 0 Then .Rows(i).Delete 'si la cellule est positive, supprime la ligne
    Next i 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "StockCompare"
End Sub
Tu remarqueras que j'ai aussi supprimé la ligne Debug.Print... car elle ne m'avait servi que pour vérifier les données et j'avais oublié de la supprimer la première fois. Elle n'a pas d'intérêt pour l'exécution de la tâche que tu demandes...
 
Re : Supprimer certaines lignes dans un tableau

Bonjour le fil, bonjour le forum,

Je fait l'effort de commenter le plus souvent possible les codes que je propose pour permettre à l'utilisateur de le comprendre et donc de le modifier... Voici le code de ton dernier fichier exemple :
Code:
    ActiveWindow.SmallScroll Down:=-6
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Application.WindowState = xlMinimized

Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim x As Integer 'décalre la variable i (Incrément)
With Sheets("StockCompare") 'prend en compte la variable "StockCompare"
    dl = .Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la dernière ligne de la colonne 13 (G)
    For i = dl To 14 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 14
        Debug.Print .Cells(dl, 7).Value
        If .Cells(i, 7) > 0 Then .Rows(i).Delete 'si la cellule est positive, supprime la ligne
    Next i 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "StockCompare"
End Sub
Les quatre premières lignes hors procédure font planter :
Code:
    ActiveWindow.SmallScroll Down:=-6
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Application.WindowState = xlMinimized
Je sais pas d'où tu les sors ? Il suffit des les supprimer !
Ensuite dans ton premier exemple la première ligne de données commençait à la ligne 14 alors que dans ce dernier elle commence à la ligne 3
il suffit donc de modifier :
For i = dl To 14 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 14
par :
For i = dl To 3 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 3
le code final :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim x As Integer 'décalre la variable i (Incrément)

With Sheets("StockCompare") 'prend en compte la variable "StockCompare"
    dl = .Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la dernière ligne de la colonne 13 (G)
    For i = dl To 3 Step -1 'boucle inversée des cellules de la colonne G des lignes dl à 3
        If .Cells(i, 7) > 0 Then .Rows(i).Delete 'si la cellule est positive, supprime la ligne
    Next i 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "StockCompare"
End Sub
Tu remarqueras que j'ai aussi supprimé la ligne Debug.Print... car elle ne m'avait servi que pour vérifier les données et j'avais oublié de la supprimer la première fois. Elle n'a pas d'intérêt pour l'exécution de la tâche que tu demandes...

Bonsoir
Merci j'ai remarqué effectivement mon erreur maintenant ca marche nikel
Encore merci de votre aide qui m'auras été d'une grande utilité (30 minute de boulot en moins par jours le faite de s'avoir faire ca)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour