VBA Supprimer une ligne selon la valeur d'une cellule

Johan

XLDnaute Occasionnel
Bonjour,

J'ai un classeur sur lequel ma Feuil1 contient toute une série d'actions menées dans l'année, avec tout le détail.
La Feuil4 est une vision synthétique de ma Feuil1 en ne laissant apparaître QUE les actions dont le statut est "En Cours"

Le code est donc le suivant :

Code:
Sub MAJEnCours()

Dim LignePA As Integer, lg As Integer

LignePA = 14

With Feuil4.ListObjects(1)

For LignePA = 14 To Feuil1.Cells(Feuil1.Rows.Count, 27).End(xlUp).Row
    
 If Feuil1.Range("AA" & LignePA) = "En Cours" Then
  On Error Resume Next
 lg = Feuil4.Range("A:A").Find(Feuil1.Range("A" & LignePA), LookIn:=xlValues).Row
            If lg = 0 Then
 
.ListRows.Add

.Range(.Range.Rows.Count, 1).Value = Feuil1.Range("A" & LignePA)
.Range(.Range.Rows.Count, 2).Value = Feuil1.Range("C" & LignePA)
.Range(.Range.Rows.Count, 3).Value = Feuil1.Range("D" & LignePA)
.Range(.Range.Rows.Count, 4).Value = Feuil1.Range("E" & LignePA)
.Range(.Range.Rows.Count, 5).Value = Feuil1.Range("J" & LignePA)
.Range(.Range.Rows.Count, 6).Value = Feuil1.Range("O" & LignePA)
.Range(.Range.Rows.Count, 7).Value = Feuil1.Range("P" & LignePA)
.Range(.Range.Rows.Count, 8).Value = Feuil1.Range("Q" & LignePA)
.Range(.Range.Rows.Count, 9).Value = Feuil1.Range("T" & LignePA)
.Range(.Range.Rows.Count, 12).Value = Feuil1.Range("AA" & LignePA)
.Range(.Range.Rows.Count, 13).Value = Feuil1.Range("AB" & LignePA)
.Range(.Range.Rows.Count, 14).Value = Feuil1.Range("AC" & LignePA)
 
 
            End If
  On Error GoTo 0
 
 End If
 
Next LignePA

End With

End Sub


Le problème c'est que les actions sont mises à jour manuellement sur la Feuil1 sur laquelle je passe le status de l'action en "Validée" ou parfois "Annulée"

Que modifier dans le code suivant pour qu'il vienne automatiquement mettre à jour ma synthèse en Feuil4 si le statut passe en "Validée" ou "Annulée", c'est à dire supprimer la ligne ?

Merci à vous
 

Papou-net

XLDnaute Barbatruc
Re : VBA Supprimer une ligne selon la valeur d'une cellule

Bonjour Johan,

La solution serait de passer le type d'action en paramètre à la procédure.

Exemple:

Code:
MAJEnCours(Suppr as Boolean)
If Suppr = True Then
  ...
  Else
  ...
End If
End Sub
Mais, pour être plus précis, une copie de ton classeur (sans données confidentielles) serait souhaitable.

A +

Cordialement.
 

Discussions similaires

Réponses
3
Affichages
550

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon