Bonjour
Je cherche à mettre en relation plusieurs cellules via VBA....
Je voudrais que lorsque j'en modifie manuellement une, les autres se mettent a jour, quelle que soit celle que je modifie manuellement...
Si quelqu'un avait des pistes...
Version imprimable
Bonjour
Je cherche à mettre en relation plusieurs cellules via VBA....
Je voudrais que lorsque j'en modifie manuellement une, les autres se mettent a jour, quelle que soit celle que je modifie manuellement...
Si quelqu'un avait des pistes...
Hello,
j'ai du mal à comprendre ce que tu souhaites faire ...
un exemple ?
he bien...
Imaginons que j'ai 3 tableaux sur 3 feuilles différentes
J'ai des données qui sont communes entre ces 3 tableaux.
Je voudrais faire en sorte que si je modifie une donnée dans le tableau 1, cette donnée soit changée dans le tableau 2 et 3.
De même si je modifie dans le tableau 2, que ça me modifie dans le tableau 1 et 3...
et ainsi de suite
Ceci fonctionne a condition que se soit la même feuille
tu met sans dans la feuille1Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_Change(ByVal Target As Range) Dim sh As Worksheet Set sh = Worksheets("Feuil2") Set sh2 = Worksheets("Feuil3") sh.Cells(Target.Row, Target.Column) = Target sh2.Cells(Target.Row, Target.Column) = Target End Sub
en l'occurence, les valeurs sont sur des onglets différents....:oops:
désolé, j'aurais du le préciser...
Que veux-tu dire par "sur des onglets différents"?
Hello,
je verrais bien un truc du genre :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Const AddrTableau As String = "B13:B14" 'zone qui nécessite le rafraichissement multi onglet Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim ArrSheets As Variant Dim i As Integer Dim rCheck As Range ArrSheets = Array("Feuil1", "Feuil2", "Feuil3") Application.EnableEvents = False Set rCheck = Application.Intersect(Sh.Range(AddrTableau), Target) If rCheck Is Nothing Then ' ne rien faire Else For i = 0 To UBound(ArrSheets) If ArrSheets(i) <> Sh.Name Then ThisWorkbook.Sheets(ArrSheets(i)).Range( _ Target.Address(False, False, xlA1, False)) = Target End If Next i End If Application.EnableEvents = True Set ArrSheets = Nothing Set rCheck = Nothing End Sub
merci