Lier 2 feuilles excel ligne par ligne

vdh_xavier

XLDnaute Junior
Bonjour à tous, merci de bien vouloir lire mon message,

Je recherche un code vba qui lie 2 feuilles excel. Je vous joins mon fichier, car je crois que c'est difficile de comprendre ma question sans celui-ci.

A. J'explique mon fichier excel :

1. Une feuille ("Insertion des créanciers") contient une liste de clients (avec adresse, code postal, ville etc) avec lesquels je travaille le plus souvent. En double-cliquant à gauche de chaque client, un "X" se met dans la colonne A afin de dire que je veux cocher ce client.
Parfois je veux aussi utiliser un même client plusieurs fois : je peux alors mettre un chiffre à côté de ce client.
Une fois que j'ai coché chaque client dont j'ai besoin, je lance la macro "Insertion des créanciers dans le tableau des dettes".
Cette macro supprime tous les clients non-cochés du tableau et va insérer les clients cochés dans la feuille "tableau des dettes".
La feuille "Insertion des créanciers" est sous forme d'une base de données car par après, je veux pouvoir faire un publipostage dans word et utiliser cette feuille comme source. Elle doit donc rester ainsi.

2. La feuille "Tableau des créanciers" contient tous les clients que j'avais sélectionnés auparavant (si j'ai mis un chiffre à côté d'un client, vous verrez que le client se subdivise en a, b, c, ...), mais ils sont mis de façon 'propre'.

B. Mon problème :
Je me suis rendu compte au fil de mon petit projet qu'il serait important que les 2 feuilles soient liées. En effet, si après avoir effectué ma macro, je veux rajouter un client (je le rajouterais en insérant une ligne dans la feuille "insertion des créanciers"), je dois supprimer tout ce que la macro a inséré dans le "tableau des dettes" et puis relancer la macro. Or en faisant cela, je supprimerais ce que j'ai inséré à la main dans la feuille "tableau des dettes".

C: Ma question : Est-il possible de faire une macro qui lierait chaque ligne d'une feuille à la ligne correspondante de l'autre feuille?

Je sais qu'à mon avis tous mes codes vont devoir être changés car je pense que je suis parti dans la mauvaise direction, mais ce serait sympa de me passer quelques tuyaux quand même.

Merci pour votre aide

Xavier
 

Pièces jointes

  • Essai.xls
    297 KB · Affichages: 52
  • Essai.xls
    297 KB · Affichages: 49
  • Essai.xls
    297 KB · Affichages: 53

VDAVID

XLDnaute Impliqué
Re : Lier 2 feuilles excel ligne par ligne

Bonjour Vdh_Xavier,

Pour lier les valeurs de deux feuilles entre elles, tu peux passer par ce genre de macro qui se lance au changement de valeur d'une cellule :

A insérer dans le code de la feuille "source"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

    If Not Application.Intersect(Cells, Target) Is Nothing Then
    x = Target.Row
    y = Target.Column
    End If
    
Sheets("Destination").Cells(x, y).Value = Target.Value 'Renommer le nom de la feuille

Application.EnableEvents = True

End Sub

A insérer dans le code de la feuille destination:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

    If Not Application.Intersect(Cells, Target) Is Nothing Then
    x = Target.Row
    y = Target.Column
    End If
    
Sheets("Source").Cells(x, y).Value = Target.Value 'Renommer la feuille

Application.EnableEvents = True

End Sub

Et ne surtout pas oublier de rajouter dans les codes modifiants les valeurs des cellules des deux feuilles :

Code:
Application.EnableEvents = False
'Code
Application.EnableEvents = True

Bonne journée
 

Discussions similaires

Réponses
3
Affichages
274

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou