Ajouter une ligne
Catherine
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Ajouter une ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Ajouter une signature sur word - Guide
- Aller à la ligne excel - Guide
- Ajouter une liste déroulante excel - Guide
2 réponses
Bonjour,
Déjà, tu sembles avoir une erreur ici
A corriger par
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 genre
Déjà, tu sembles avoir une erreur ici
ActiveSheet.Rows(Row + 1)
A corriger par
ActiveSheet.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 genre
for 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 solution
https://www.cjoint.com/c/JIqqJ4AjUWB
Cdlmnt
une ligne s'ajoute en-dessous de celle Active lorsque l'utilisateur sélectionne "Oui"
Une autre solution
Option 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