Suppression de lignes multiples avec conditions
Bonjour,
J'ai besoin de faire une macro qui supprime:
- Dans Feuil 1, la ligne qui contient le nom saisit dans la BOX + la ligne vierge du dessous
- Dans Feuil 2 en simultané supprime uniquement la ligne qui contient le nom
voici mon code (qui ne fonctionne pas
Sub Bouton1_Cliquer()
Dim i As Integer
Dim Editeur As String
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?", "Welcome", "Prenom Nom")
With ThisWorkbook.Sheets("Feuil2")
For i = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("C" & i).Value = Editeur Then
Rows(i).Delete
End If
Next i
End With
End SubAvez-vous une idée?
merci de votre aide!
Alain
Salut AlainDeg,
un début de solution. Le mieux serait déjà de déterminer le nom à supprimer à partir d'une ListBox (dans un USF), ce qui éviterait la frappe et... les erreurs de frappe.
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?", "Welcome", "Prenom Nom")
With Worksheets("Feuil2")
For i = .Range("C" & Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("C" & i).Value = Editeur Then .Rows(i).Delete shift:=xlUp
Next i
End With
'
With Worksheets("Feuil1")
For i = .Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("A" & i).Value = Editeur Then .Rows(i & ":" & i + 1).Delete shift:=xlUp
Next i
End WithA+
Salut curulis57,
merci pour ta réponse,
Cela marche parfaitement, j'ai juste un soucis que je n'avais pas prévu avec ce code:
Editeur = InputBox("Veuillez entrer l'editeur à supprimer ?", "Welcome", "Prenom Nom")
With Worksheets("Feuil2")
For i = .Range("C" & Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("C" & i).Value = Editeur Then .Rows(i).Delete shift:=xlUp
Next i
End With'
With Worksheets("Feuil1")
For i = .Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("A" & i).Value = Editeur Then .Rows(i & ":" & i + 1).Delete shift:=xlUp==> Pour cette partie du code, la cellule qui contient le nom contient aussi une formule(C'est une formule qui va chercher le nom) et du coup Excel ne supprime pas les lignes car il ne contient pas en soi le NOM mais une formule qui ramène le nom.
J'ai essayé avec ça:
If .Range("A" & i).[b]Target.Value [/b]= Editeur Then .Rows(i).Delete shift:=xlUp
Next i
End WithMais sans succès. As-tu une idée du code à utiliser?
Je joints une seconde version du fichier pour illustrer le pb
merci!!
EDIT: j'ai tenté avec formula qui doit être la solution mais sans succès:
With Worksheets("TPO")
For i = .Range("C" & Rows.Count).End(xlUp).Row To 2 Step -1
If .Range("C" & i).Formula = Editeur Then .Rows(i & ":" & i + 1).Delete shift:=xlUp
Next i
End With