Insérer une ligne incrémentée dans un tableau défini

bonjour,

je me perds dans tous les codes VBA d'excel... et je n'arrive pas à résoudre un problème qui à la base me semblait simple (!) :

je souhaite insérer une ligne à partir d'une cellule quelconque du tableau en y recopiant les formules de la ligne d'origine.

j'ai recherché sur différents forums mais il y a toujours un soucis. j'avoue ne pas être à la hauteur.

si quelqu'un pouvait m'aider, j'en serai ravi

j'ai fait plusieurs tentatives (ci après) et fichier joint

un grand merci par avance

Sub test1()
'selectionnet et copie la ligne active
Rows(ActiveCell.Row & ":" & ActiveCell.Row).Select
Selection.Copy
' inserer une ligne dessous la ligne active
Rows(ActiveCell.Row + 1).Insert
'colle la ligne
ActiveSheet.Paste
End Sub

Sub test2()
' inserer une ligne dessous la ligne active
Rows(ActiveCell.Row + 1).Insert
'selectionnet et copie la ligne active
Rows(ActiveCell.Row & ":" & ActiveCell.Row).Select
Selection.Copy
'colle la ligne
Rows (ActiveCell.Row + 1)
ActiveSheet.Paste
End Sub

Sub test3()
' inserer une ligne dessous la ligne active
Rows(ActiveCell.Row + 1).Insert
'selectionne la ligne à copier
ActiveCell.EntireRow.Select
Selection.Copy
' Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveWindow.SmallScroll Down:=-1
' Range("A39:AB39").Select 'là il y a une zone définie que je ne souhaite pas
Selection.AutoFill Destination:=Rows(ActiveCell.Row + 1), Type:=xlFillDefault
End Sub

Bonjour,

--> Merci d'utiliser les balises de codes en cliquant sur l'icone </> disponible dans le menu et en collant le code dans la fenêtre. Il sera plus facile à lire.

Un premier point dans votre fichier. Comme vous êtes en tableau structuré, faites ceci :
- Supprimez votre ligne TOTAL (donc la ligne 27) puis une fois supprimée faire ceci :
- Click dans une cellule du tableau
- Allez dans le menu excel --> Onglet "Création du tableau"
- Dans la rubrique "option style du tableau", cochez la case "Ligne Total"
- Allez sur la ligne créée et dans les cellules des colonnes où vous voulez avoir une formule et choisissez votre formule dans la liste déroulante

Votre demande : comme vous êtes en tableau structuré, il n'y a pas besoin de recopier vos formules. Elles sont prise en compte automatiquement à chaque nouvelle ligne. Donc nul besoin de code pour faire du recopiage de formule

Exemple : pour votre formule en G6, mettez ceci --> =SI(Tableau3[[#En-têtes];[libellé dépense]]:[@[libellé dépense]]="";"";Tableau3[[#En-têtes];[libellé dépense]]:[@[libellé dépense]]). Une fois fait étirez la formule jusqu'à votre dernière ligne.

Une fois terminé la formule s'ajoutera automatiquement à chaque ajout de ligne

Votre fichier étant incomplet ce n'est pas facile de vous donnez réponse

Crdlt

merci Dan pour l'astuce de la ligne "total"

par contre l'insertion et le recopie ne fonctionne pas plus.

je sèche

merci

par contre l'insertion et le recopie ne fonctionne pas plus.

Vous ne devez pas utiliser de code VBA. C'est inutile dans votre cas.
Pour insérer, placez-vous dans une cellule du tableau puis click droite et choisir --> Insérer -> lignes de tableau.
La formule s'adaptera automatiquement
Ensuite complétez la ligne

Sinon est-ce que c'est votre bon fichier que vous avez posté ?

re bonjour Dan

le fichier est protégé (dans la version finale) c'est pour cela que je veux passer par vba avec un bouton pour automatiser l'insertion de ligne, pour que l'utilisateur final n'ait pas à déverrouiller, insérer, protéger des cellules, reverrouiller...

nouveau fichier joint

merci

Mais dans votre fichier vous n'avez pas mis la formule que je vous ai proposée.

Autre question : le nom liste famille n'est pas au format structuré. Normal ? si oui, est-ce que vous pourriez devoir ajouter de nouvelles lignes

merci pour les remarques

j'ai apporté les modifications et cela fonctionne.

un grand merci à toi

bonne continuation

Rechercher des sujets similaires à "inserer ligne incrementee tableau defini"