Bonjour,
Si j'ai déjà 5 lignes dans le tableau et que je suis sur une cellule de la 3e ligne, il ajoute une ligne au-dessus ou en-dessous de cette ligne.
OK pour le principe mais il faut un déclencheur, par exemple le changement de sélection sur une feuille.
Dans le module de la ou des feuilles concernées tu Modifie l'évènement Change comme ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Tests.AddRow101 Target
End Sub
Ensuite dans un module nous insérons la fonction ci-dessous :
Public Function AddRow101(Optional ByVal Target As Range) As Long
If Target Is Nothing Then Set Target = ActiveCell
Dim Table As Excel.ListObject
Set Table = ActiveCell.ListObject
If Not Table Is Nothing Then
With Table
Dim IndexRow As Long
IndexRow = .ListRows(Target.Row - .HeaderRowRange.Row).Index
Dim newRow As Excel.ListRow
Set newRow = .ListRows.Add(IIf(IndexRow > 1, IndexRow - 1, 1))
With newRow
.Range(.Parent.ListColumns("Questions").Index).Value = "Item1"
'...
'...
End With
End With
AddRow101 = -1
End If
End Function
Elle teste si la cellule active appartient à un tableau. Si oui, elle ajoute une ligne.