Supprimer une ligne si pas de valeur négative

Bonjour,

J'ai un tableau contenant différents chiffres. Ce tableau change de jour en jour et des colonnes s'ajoutent et se suppriment. Je souhaiterai identifier dans ce tableau toutes les valeurs négatives et supprimer les lignes qui n'en ont pas. Ce qui est important pour moi c'est de pouvoir traiter les articles avec lesquels il y a un problème. Etant donné que ce tableau contient beaucoup d'articles il me faut enlever toutes les lignes inutiles. Il faut savoir que la valeur négative, peut se trouver dans n'importe quelle ligne et n'importe quelle colonne.

Merci d'avance

Salutations

Bonsoir,

Ci-joint une proposition à tester.

Bonne soirée

Bouben

127supprimerligne.xlsm (27.00 Ko)

C'est juste parfait! Merci beaucoup...

Une dernière question:

Etant donné que je suis débutante dans la macro, pourrais-tu m'expliquer un peu ce code?

Salutations

Amdora

Bonsoir,

Je vais essayer d'expliquer ...

On parcourt toutes les lignes

Pour chaque ligne, on parcourt toutes les colonnes

S'il n'y a aucune valeur négative, on supprime la ligne.

En fait, je crois que je n'ai rien expliqué, mais je ne vois pas quoi dire de plus.

Bonne soirée

Bouben

Merci beaucoup pour ces informations.

Est-ce que cette interprétation est correcte:

Public Sub Menage()

Dim oSh As Worksheet

Dim iLigFin As Integer

Dim iColFin As Integer

Dim iLig As Integer

Dim iCol As Integer

Dim bValNegative As Boolean

Dim bFin As Boolean

Set oSh = Worksheets(1)

iLigFin = oSh.Range("I" & Rows.Count).End(xlUp).Row 'Selectionne les lignes de la feuille 1, de la colonne I et du nombre de ligne qu'il y a

iColFin = oSh.Range("ZZ1").End(xlToLeft).Column 'Sélectionne les colonnes de ces lignes jusqu'a ZZ1

If iLigFin = 2 Then ' si la ligne est la n°2 ne pas la prendre en compte

Exit Sub

End If

iLig = 3

bFin = False

' A partir de là je ne comprend plus trop

While Not bFin

If iLig = 29 Then

End If

bValNegative = False

For iCol = 1 To iColFin

If IsNumeric(oSh.Cells(iLig, iCol)) Then

If oSh.Cells(iLig, iCol) < 0 Then

bValNegative = True

Exit For

End If

End If

Next iCol

If Not bValNegative Then

oSh.Rows(iLig).Delete

iLigFin = iLigFin - 1

Else

iLig = iLig + 1

End If

If iLig > iLigFin Then

bFin = True

End If

Wend

Set oSh = Nothing

MsgBox "Terminé !", vbInformation

End Sub

Merci encore pour votre aide

Salutations

Amdora

Rechercher des sujets similaires à "supprimer ligne pas valeur negative"