XL pour MAC Supprimer lignes si cellules contiennent 99

Ebene

XLDnaute Nouveau
Bonjour à tous
Dans une macro existante, j'ai besoin de rajouter une commande pour supprimer les lignes lorsque la valeur des cellules de la colonne Hors Cat. est 99
j'ai trouvé plusieurs solutions mais dans mon cas, la colonne Hors Cat. n'est pas toujours au même endroit suivant les fichiers.
dans le ficher joint c'est la colonne M mais dans d'autres fichiers cela pourrait être L ou N ou autres.
la seule constante est son nom.
Inutile de préciser que je ne connais pas vba, je bricole en copier coller !
Merci pour votre aide
 

Pièces jointes

  • fichier.xlsx
    12 KB · Affichages: 14
Solution
C
Bonjour Ebene,

Voici une possibilité ;)
VB:
Sub SupLigne99()
  Dim MaCol As Long, MaCel As Range
  Dim DerLig As Long, NumLig As Long
  ' Avec la feuille
  With ActiveSheet
    ' Chercher la bonne colonne
    Set MaCel = .Rows("1:1").Find(What:="Hors Cat.", LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False)
    If MaCel Is Nothing Then
      MsgBox "La cellule contenant [Hors Cat.] n'a pa pu être trouvé !", vbCritical, "OUPS..."
      Exit Sub
    End If
    ' Sinon
    MaCol = MaCel.Column
    ' Dernière ligne remplie de la feuille
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For NumLig = DerLig To 2 Step -1
      ' Si la colonne Hros Cat...
C

Compte Supprimé 979

Guest
Bonjour Ebene,

Voici une possibilité ;)
VB:
Sub SupLigne99()
  Dim MaCol As Long, MaCel As Range
  Dim DerLig As Long, NumLig As Long
  ' Avec la feuille
  With ActiveSheet
    ' Chercher la bonne colonne
    Set MaCel = .Rows("1:1").Find(What:="Hors Cat.", LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False)
    If MaCel Is Nothing Then
      MsgBox "La cellule contenant [Hors Cat.] n'a pa pu être trouvé !", vbCritical, "OUPS..."
      Exit Sub
    End If
    ' Sinon
    MaCol = MaCel.Column
    ' Dernière ligne remplie de la feuille
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne
    For NumLig = DerLig To 2 Step -1
      ' Si la colonne Hros Cat. contient 99
      If .Cells(NumLig, MaCol).Value = 99 Then
        ' On supprime la ligne
        .Cells(NumLig, MaCol).EntireRow.Delete Shift:=xlUp
      End If
    Next NumLig
  End With
End Sub

@+
 

Discussions similaires

Réponses
2
Affichages
152

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95