Lier deux cellules sur deux feuilles

Bonjour,

je cherche à lier deux cellules identiques (ex : B4) sur deux feuilles diff. (1&2)

A chaque fois que je modifie la valeur de B4 la valeur est modifiée sur l'autre feuille et vice versa.

Avez vous un code? Sachant que je dois faire la même chose avec d'autres cellules.

Il faut que la macro soit automatique et aucun ralentissement.

Merci

Bonsoir,

cela ne peut se faire que par VBA.

Surveillance événementielle "Change" sur les cellules B4 des deux feuilles qui entraine la modification sur l'autre.

@ bientôt

LouReeD

Effectivement je recherche un code VBA

Bonsoir,

voir le fichier joint :

La surveillance événementielle est liée à la feuille, il faut donc copier le code sur le code de la feuille, pour cela il faut soit faire clic droit de la souris sur le nom de l'onglet de la feuille voulue puis choisir "Afficher le code", ou bien après avoir ouvert l'éditeur VBA par [Alt]+[F11], et faire un double clic sur le nom de la feuille voulue sur la fenêtre de gauche en haut, le code s'affichera sur la fenêtre de droite.

@ bientôt

LouReeD

Salut,

Le code marche pas, de plus je te montre le code que je dispose sur la feuil1.

Public Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Feuil1.Range("B3")) Is Nothing Then

Feuil2.Range("B3") = Feuil1.Range("B3")

End If

If Not Intersect(Target, Feuil1.Range("B4")) Is Nothing Then

Feuil2.Range("B4") = Feuil1.Range("B4")

End If

If Not Intersect(Target, Feuil1.Range("B6")) Is Nothing Then

Feuil2.Range("B6") = Feuil1.Range("B6")

End If

If Not Intersect(Target, Feuil1.Range("B10")) Is Nothing Then

Feuil2.Range("B10") = Feuil1.Range("B10")

End If

If Not Intersect(Target, Feuil1.Range("B11")) Is Nothing Then

Feuil2.Range("B11") = Feuil1.Range("B11")

End If

If Not Intersect(Target, Feuil1.Range("B13")) Is Nothing Then

Feuil2.Range("B13") = Feuil1.Range("B13")

End If

If Not Intersect(Target, Feuil1.Range("D4")) Is Nothing Then

Feuil2.Range("D4") = Feuil1.Range("D4")

End If

If Not Intersect(Target, Feuil1.Range("D5")) Is Nothing Then

Feuil2.Range("D5") = Feuil1.Range("D5")

End If

If Not Intersect(Target, Feuil1.Range("D6")) Is Nothing Then

Feuil2.Range("D6") = Feuil1.Range("D6")

End If

If Not Intersect(Target, Feuil1.Range("D7")) Is Nothing Then

Feuil2.Range("D7") = Feuil1.Range("D7")

End If

End Sub

Le prblème c'est qu'il fait ralentir excel à chaque fois que je modifie une valeur....Un conseil?

Bonjour,

je viens de télécharger le fichier et il fonctionne...Avez vous accepté l'exécution des macros ?

Sinon pour simplifier votre code (qui marche... ) mais qui ralenti trop votre "feuille" je vous explique une ou deux choses :

le Public Sub Worksheet_Change(ByVal Target As Range) détecte le changement de valeur sur une feuille et inscrit la (les) cellules dans la variable Target qui est un Range.

Si votre volonté est de copier la valeur d'une cellule de la feuille 1 dans la même cellule de la feuille 2 alors vous pouvez écrire un code générique plutôt qu'un ensemble de if.

par exemple :

Public Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B3,B4,B6,B10,B11,B13,D4,D5,D6,D7")) Is Nothing Then
        Feuil1.Range(Target.Address) = Target.Value
    End If
End Sub

ce code pour la feuille 2, qui copie les valeurs sur la feuille 1

Sur la feuille 1 il faut le même code mais vous remplacez "Feuil1" par Feuil2

ATTENTION ! Vous utilisez le nom des feuilles "VBA", ce ne sont pas le nom des onglets des feuilles...

Si vous voulez utilisez le nom des onglets alors il faut Sheets("Feuille 1") par exemple

@ bientôt

LouReeD

Rechercher des sujets similaires à "lier deux feuilles"