Ajout automatique d'une ligne

Bonjour à tous;

J'ai besoin d'aide S.V.P. Mon problème est le suivant:

j'ai deux tableau excel sur 2 feuilles différentes ces deux tableaux ont une liaison c'est à dire des formules dans les colonnes du tableau qui est sur la feuille 2 dépend des colonnes du tableau dans la feuille 1. sachant aussi que la premiere colonne dans le premier tableau contient les mêmes informations que la premiere colonne du deuxième tableau (Nom des employés).

ma question est la suivante:

comment faire pour quand j'ajoute une ligne sur le tableau 1 (un nouveau employé), elle s'ajoute automatiquement sur le tableau 2 quelque soit la position de la ligne que j'ai ajouté. c'est à dire si j'ai ajouté une ligne à la position 7 sur le tableau 1, elle s'ajoute sur la meme position sur le tableau 2 et de faire glisser toutes les formules qui sont sur la ligne qui est en dessus de la ajouté et ça pour les deux tableaux.

merci.

Bonjour, une proposition :

Met ce code dans un module, affecte ce code à a un racourcis clavier ou à un bouton. La ligne sera ajoutée aux deux tableaux en fonction de la position de la cellule active.

Pour que ça marche il faut que la cellule active se trouve sur la plage de cellules du premier tableau et que les tableau soit positionnées aux mêmes endroits.

Option Explicit
Sub NewLigne()

Dim Tbl1, Tbl2
Dim Ligne As Integer
Dim NbLignes1 As Integer, NbLignes2 As Integer
Dim Ligne1Tbl1 As Integer, LigneMaxTbl1, Ligne1Tbl2 As Integer
Dim Plage As Range

On Error GoTo ErrExecut

Set Plage = Feuil1.Range("Tableau1")
Set Tbl1 = Feuil1.ListObjects("Tableau1")
Set Tbl2 = Feuil2.ListObjects("Tableau2")

If Application.Intersect(ActiveCell, Plage) Is Nothing Then Exit Sub

Ligne = ActiveCell.Row 'Position (n° ligne) de la cellule active

NbLignes1 = Tbl1.DataBodyRange.Rows.Count 'Compte le nombre de ligne dans Tbl1
NbLignes2 = Tbl2.DataBodyRange.Rows.Count 'Idem pour Tbl2

Ligne1Tbl1 = Tbl1.ListRows(1).Range.Row 'Récupère la position de la première ligne du Tbl1
Ligne1Tbl2 = Tbl2.ListRows(1).Range.Row 'Idem pour Tbl2
LigneMaxTbl1 = Tbl1.ListRows(NbLignes1).Range.Row 'Récupère la position de la dernière ligne du Tbl1

'Si le nombre de ligne entre les deux tableaux différentes alors le code est arreté ici
If NbLignes1 <> NbLignes2 Then MsgBox "Les tableaux ne possèdent pas le même nombre de ligne !", vbCritical, "Ajout impossible": Exit Sub
'Si la position des premières lignes des deux tableaux ne sont pas aux mêmes endroits alors le code s'arrete ici
If Ligne1Tbl1 <> Ligne1Tbl2 Then MsgBox "Les tableaux ne sont pas posisionnés aux memes endroits !", vbCritical, "Ajout impossible": Exit Sub

If Ligne = LigneMaxTbl1 Then 'Si la ligne active correspond à la dernière ligne du Tbl1 alors
    Tbl1.ListRows.Add 'Une ligne est ajoutée en dernière positiona ux Tbl1 et Tbl2
    Tbl2.ListRows.Add
Else 'Sinon :
    Tbl1.ListRows.Add (Ligne) 'Une ligne est insérée en dessous de la position de la ligne active dans Tbl1 et TBL2
    Tbl2.ListRows.Add (Ligne)
End If

Exit Sub
ErrExecut:
MsgBox "Une erreure innatendue est survenue, ajout aimpossible.", vbCritical, "Erreur critique"
End Sub

OK merci je vais l'essayer

Rechercher des sujets similaires à "ajout automatique ligne"