Ajouter une ligne
Catherine
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'aimerais qu'une ligne s'ajoute en-dessous de celle Active lorsque l'utilisateur sélectionne "Oui" dans une liste déroulante. La colonne M est celle avec la liste déroulante oui/non pour chacune des lignes 21 à 171.
Est-ce que quelqu'un pourrait corriger mon code s'il vous plait ?
Merci de votre collaboration !
J'aimerais qu'une ligne s'ajoute en-dessous de celle Active lorsque l'utilisateur sélectionne "Oui" dans une liste déroulante. La colonne M est celle avec la liste déroulante oui/non pour chacune des lignes 21 à 171.
Est-ce que quelqu'un pourrait corriger mon code s'il vous plait ?
Merci de votre collaboration !
PrivateSub Worksheet_Change(ByVal Target As Range)
ForEach c In Range("M21:M171").Cells
If(c.Value = "Oui")Then
ActiveSheet.Rows(Row + 1).EntireRow.Insert Shift:=xlDown
EndIf
Next
EndSub
2 réponses
-
Bonjour,
Déjà, tu sembles avoir une erreur iciActiveSheet.Rows(Row + 1)
A corriger parActiveSheet.Rows(c.Row + 1)
Ensuite, vu que tu ajoutes des lignes, je pense qu'il serait préférable de faire une boucle en partant du bas.
Pour ça, il faut utiliser un for et step -1
un truc du genrefor i = 171 to 21 step -1 c = celles(i,13) If(c.Value = "Oui")Then ActiveSheet.Rows(l+1).EntireRow.Insert Shift:=xlDown end if next
-
Bonjour à tous les deux
une ligne s'ajoute en-dessous de celle Active lorsque l'utilisateur sélectionne "Oui"
Une autre solutionOption Explicit Const plage = "M21:M171" Private Sub Worksheet_Change(ByVal Target As Range) Dim li As Long If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range(plage)) Is Nothing Then If UCase(Target.Value) = "OUI" Then li = Target.Row Rows(li + 1).Insert End If End If End Sub
https://www.cjoint.com/c/JIqqJ4AjUWB
Cdlmnt