Lier deux feuilles

Bonjour,

Il y a quelques semaines j'ai voulu lier des cellules entre elles. Je voulais qu'en changeant la cellule A1 ça modifie la cellule B2 et inversement donc je suis arrivé au code suivant et c'était très bien. J'ai multiplié ça à chaque fois que je voulais une nouvelle liaison.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = Range("A1") Then
Range("B2").Value = Range("A1").Value
ElseIf Target = Range("B2") Then
Range("A1").Value = Range("B2").Value
End If

End Sub

Sauf que aujourd'hui je commence à avoir énormément de ligne et je me dis qu'il y a surement un moyen de faire ça plus simplement sauf que je n'y arrive pas. Par plus simplement j'entend que ce soit si je change une valeur de la colonne A ça va la mettre dans la colonne B et inversement.

Je me dis même qu'il serait encore plus intéressant si j'arrivais à faire ça sur deux feuilles différentes. C'est à dire que si je modifie une cellule de la colonne A dans la feuille 1 ça me la modifie dans la même celulle de la feuille 2 et inversement.

J'ai chercher à droite à gauche mais je ne trouve pas de solution à mon problème.

Si quelqu'un pouvait m'aider je lui en serais très reconnaissant !

Bonjour

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin
If Target.Column = 1 Then
    Application.EnableEvents = False
    Target.Offset(0, 1) = Target.Value
ElseIf Target.Column = 2 Then
    Application.EnableEvents = False
    Target.Offset(0, -1) = Target.Value
End If
Fin:
    Application.EnableEvents = True
End Sub

Bonjour,

C'est super merci? C'est exactement ce dont j'avais besoin ! Pensez-vous qu'il soit possible de faire la même liaison mais entre la colonne 1 feuille 1 et la colonne 1 feuille 2 ?

Merci par avance de votre réponse !

RE

Dans ce cas il faut placer le code dans le Workbook_SheetChange

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
On Error GoTo Fin
Application.EnableEvents = False
If Sh.CodeName = "Feuil1" Then
    Feuil2.Range(Target.Address) = Target.Value
ElseIf Sh.CodeName = "Feuil2" Then
    Feuil1.Range(Target.Address) = Target.Value
End If
Fin:
    Application.EnableEvents = True
End Sub

Merci beaucoup! J'ai juste un petit souci, lorsque je viens insérer une nouvelle ligne sur une des feuilles elle s'insère bien sur l'autre mais en écrasant la donnée.

Situation initiale

A11
A22
A33
A44

Insertion Feuil1

A11
A22
A3Nouvelle ligne insérée
A43
A54

Répercution Feuil2

A11
A22
A3vide (la nouvelle ligne)
A4vide (l'ancienne ligne A3 a été écraséà
A54

Penses-tu qu'il est possible de rajouter quelques choses dans le "Workbook_SheetChange" ou que je dois créer une macro à part lorsque je souhaite ajouter des nouvelles lignes ?

En tout cas, merci de ton aide!

RE

A chaque post la demande change !

Oui si tu insères il faut le gérer mais par VBA c'est une modification comme une autres dont sauf à voir une cellule placée assez bas dont on pourrait vérifier l'adresse, on ne peut savoir de quel type de changement il s'agit

A noter qu'on eut insérer simultanément sur 2 feuilles en les sélectionnant toutes deux avant l'insertion sauf si l'insertion se fait dans un tableau structuré

Je pense que tu t'orientes vers une usine à gaz et donc que la conception n'est sans doute pas bonne

Oui désolé c'est en voyant la mise en œuvre que je me rends compte de choses !

Merci de ton aide et tes conseils !

Rechercher des sujets similaires à "lier deux feuilles"