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
A voir également:
- Ajouter une ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Ajouter une signature sur word - Guide
- Formulaire en ligne de meta - 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