Lier deux lignes avec une valeur en commun

Bonjour à tous,

J'ai actuellement un tableau avec une action VBA qui me permet d'ajouter une ligne dans un tableau de ma feuil1, et d'ajouter la même ligne dans un tableau identique (les mêmes colonnes) dans la feuil2 mais avec plus de lignes, puisqu'il y a d'autres informations inscrites dans celui-ci.

Mon besoin est d'avoir de quoi modifier la ligne peu importe dans lequel des deux tableaux et que l'autre se modifie de la même façon.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Application.EnableEvents = False
        Sheets("Feuil2").Range("A1").Value = Target
        Application.EnableEvents = True
    End If

J'ai trouvé ceci qui fonctionne exactement de la bonne façon. Mais il faudrait que ce soit applicable pour la ligne entière et surtout

- Dans mon tableau 1 la ligne liée est pas forcement la même que dans mon tableau 2 (et ce n'est pas régulier...) donc il ne faut pas simplement que la ligne 24 soit identique à la ligne 24 et la lignes 25 avec la 25 etc..., donc pour les connecter les unes aux autres j'ai une colonne qui sert exclusivement à numéroter ma ligne.

Par exemple P1, P2, P3, P4, etc...

Donc je souhaiterais que

SI dans la colonne A de mes deux tableaux on retrouve le même numéro (à savoir P4 par exemple) la ligne entière qui suit (à partir de la colonne B) soit connectés avec les valeurs qui se changent.

Par exemple dans mon tableau la ligne 7 de la feuille 1 doit être identique à la ligne 5 de la feuille 2 (cela correspond à la ligne P2 de mon tableau) et par exemple si j'ajoute une information dans action à faire "acheter un vidéoprojecteur", cela s'affiche simultanément dans chacun des deux tableaux)

Dernière contrainte, de nouvelles lignes seront ajoutées régulièrement dans ce tableau, il faut que le code prennent en compte les futurs ajouts de ligne sans devoir tout réécrire, càd un minimum d'adaptabilité.

Merci d'avance pour toutes les propositions elle sont bienvenues pour me faire avancer.

Peut être pour simplifier, et que je parte avec de bonne bases.

Est-ce que quelqu'un saurait me dire un macro qui me permette de lier deux feuilles

Si je change B1 sur la feuille 1, alors B1 est changé de la même manière, si je change F4 sur la Feuil1 ça change aussi F4 sur la feuille 2. Pour l'instant j'ai pas réussi à faire autre chose que si je modifie une case de la feuille 1, toutes les cases de la feuille 2 prennent cette valeur.

Je suis un peu perdu, je ne sais pas par ou prendre le manche la !

Merci d'avance pour toute aide qui me permette d'avancer.

Je fais une petite relance car je n'ai pas eu de réponse.

J'ai du mal à réaliser l'ampleur de la tache. Donc cela peut juste être une réponse pour m'indiquer ce qui n'est pas possible de faire.

Merci d'avance.

Hello,

Voici :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    If Target.Count = 1 Then
       Set rng = Sheets(2).Columns(1).Find(What:=Cells(Target.Row, 1).Value, LookIn:=xlValues, LookAt:=xlWhole) 'cherche dans la F2 la référence
       If Not rng Is Nothing Then Sheets(2).Cells(rng.Row, Target.Column) = Cells(Target.Row, Target.Column) 'Si ref trouvée dans F2 remplace la valeur de F2 par celle de F1
    Else: MsgBox "ça va péter chef !"
    End If
End Sub

Désolé pour réponse tardive !

Je n'avais pas vu la réponse (et surtout j'étais en vacances hehe)

C'est exactement ce que je cherchais !

J'ai rentré le code pour la feuille 1 ça marche. J'ai rentré le code que dans la feuille 2 (en prenant soin d'adapter pour que ça marche dans l'autre sens) et .. ça marche aussi !

Le problème c'est que dès que le mets les deux en même temps (pour que ça puisse aussi bien modifier dans un sens que dans l'autre) ben il y a un bug qui apparaît. Il me semble pas avoir eu de problème de ce type avec la version sans recherche de ligne.

Je n'arrive à voir d'où cela peut provenir. Quelqu'un a une explication/solution ?

Merci encore pour l'aide proposée c'est déjà une base solide.

J'ai pu résoudre ce problème, j'ai tout simplement désactivé les evenements au moment où la cellule se change. Et le bug n'a plus lieu.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    If Target.Count = 1 Then
       Set rng = Sheets(2).Columns(1).Find(What:=Cells(Target.Row, 1).Value, LookIn:=xlValues, LookAt:=xlWhole) 'cherche dans la F2 la référence
    Application.EnableEvents = False
       If Not rng Is Nothing Then Sheets(2).Cells(rng.Row, Target.Column) = Cells(Target.Row, Target.Column) 'Si ref trouvée dans F2 remplace la valeur de F2 par celle de F1
    Application.EnableEvents = True
    Else: MsgBox "ça va péter chef !"
    End If
End Sub

Merci à toi pour ta solution !!

Rechercher des sujets similaires à "lier deux lignes valeur commun"