Supprimer ligne entière tableau selon 1 critère

Bonjour,

j'essaye de mettre en place une fonction simple = supprimer les lignes d'un tableau ("Tableau4" de la feuille "COMMANDE") contenant le mot présent dans la cellule sélectionnée.

Les premières lignes du code me permettent d'imprimer une autre feuille selon la valeur de la cellule sélectionnée (ce code fonctionne).

Private Sub Imp_partielle_Click()

Sheets("PARTIELLE").Range("C3").Value = ActiveCell.Value

Sheets("PARTIELLE").PageSetup.Orientation = xlPortrait

Sheets("PARTIELLE").PrintOut Copies:=1, Collate:=True

Dim i As Integer

With ThisWorkbook.Sheets("COMMANDE")

For i = .Range("Tableau4[FOURNISSEUR]" & .Rows.Count).End(xlUp).Row To 2 Step -1

If .Range("Tableau4[FOURNISSEUR]" & i).Value = ActiveCell.Value Then

.Rows(i).Delete

End If

Next i

End With

End Sub

A priori, j'ai tout faux..

Qu'en pensez-vous ?

Bonjour,

c'est dangereux de commencer une macro de cette façon,

Sheets("PARTIELLE").Range("C3").Value = ActiveCell.Value

sans vérifier d'abord ce que contient la cellule active.

ou si la cellule active est situer sur tel colonne ou tel ligne.

ou bien si la cellule active n'est pas vide.

Ah... en effet la cellule active doit être une cellule du tableau 5.

re,

essayer,

Set isect = Application.Intersect(ActiveCell, Range("H3:H10"))
If Not isect Is Nothing And ActiveCell <> "" Then

'la suite de votre code

End If

Merci beaucoup pour ce conseil !

Effectivement c'est moins dangereux de cette manière !

Et... pour ce qui est de ma demande initiale, auriez-vous une réponse à apporter ?

Il semble que cette partie du code pose problème :

Dim i As Integer

With ThisWorkbook.Sheets("COMMANDE")

For i = .Range("Tableau4[FOURNISSEUR]" & .Rows.Count).End(xlUp).Row To 2 Step -1

If .Range("Tableau4[FOURNISSEUR]" & i).Value = ActiveCell.Value Then

.Rows(i).Delete

End If

Next i

End With

L'objectif est de supprimer toutes les lignes du "Tableau4" qui contiennent le mot de la cellule sélectionnée (ActiveCell).

Mais ce code ne semble pas fonctionner.

Qu'en pensez-vous ?

re,

à tester,

Dim i As Integer, valeur
With ThisWorkbook.Sheets("COMMANDE")
 valeur = ActiveCell.Value
 For i = .Range("Tableau4[FOURNISSEUR]").Rows.Count + 1 To 2 Step -1
  If .Range("Tableau4[FOURNISSEUR]")(i).Value = valeur Then
   .Rows(i).Delete
  End If
 Next i
End With
End Sub

Magnifique,

merci mille fois pour ces précieux conseils !!

Bonne journée !

Rechercher des sujets similaires à "supprimer ligne entiere tableau critere"