Déclenchement d'une macro en sortant d'une cellule en mémorisant sa valeur
5 réponses
Sylvain Branchu
Comment déclencher une macro en sortant d'une cellule mais surtout en
mémorisant les "coordonnées" et la valeur de cette cellule afin de faire
différents tests ...
Merci à tous
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
Ah Bonsoir à toi aussi Sylvain Ceci peut-être '--------- Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target <> "" Then MsgBox "Adresse de la cellule : " & Target.Address & Chr$(10) & "Valeur de la cellule : " & Target.Value End If End Sub '----------- Salutations JJ
"Sylvain Branchu" a écrit dans le message de news:%
Comment déclencher une macro en sortant d'une cellule mais surtout en mémorisant les "coordonnées" et la valeur de cette cellule afin de faire différents tests ... Merci à tous
Ah Bonsoir à toi aussi Sylvain
Ceci peut-être
'---------
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target <> "" Then
MsgBox "Adresse de la cellule : " & Target.Address & Chr$(10) & "Valeur de
la cellule : " & Target.Value
End If
End Sub
'-----------
Salutations
JJ
"Sylvain Branchu" <sbranchu@nordnet.fr> a écrit dans le message de
news:%236IhPAGxFHA.2132@TK2MSFTNGP15.phx.gbl...
Comment déclencher une macro en sortant d'une cellule mais surtout en
mémorisant les "coordonnées" et la valeur de cette cellule afin de faire
différents tests ...
Merci à tous
Ah Bonsoir à toi aussi Sylvain Ceci peut-être '--------- Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target <> "" Then MsgBox "Adresse de la cellule : " & Target.Address & Chr$(10) & "Valeur de la cellule : " & Target.Value End If End Sub '----------- Salutations JJ
"Sylvain Branchu" a écrit dans le message de news:%
Comment déclencher une macro en sortant d'une cellule mais surtout en mémorisant les "coordonnées" et la valeur de cette cellule afin de faire différents tests ... Merci à tous
Sylvain Branchu
Génial, mais encore plus dur ... En fait je souhaite déclencher une macro lorsque la valeur d'un cellule non précisée change dans une feuille non active. En fait je travaille sur la feuille 1, il y a un paquet de formule sur la feuille 2 qui modifie ou pas les valeurs contenus sur cette feuille 2 et si il y a une modification de valeur, un test est lancé sur le contenu de cette valeur ... En gros je change une valeur de la feuille 1 et je teste toute les cellules de la feuille 2 si elles ont changé. Merci beaucoup "Jacky" a écrit dans le message de news:
Ah Bonsoir à toi aussi Sylvain Ceci peut-être '--------- Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target <> "" Then MsgBox "Adresse de la cellule : " & Target.Address & Chr$(10) & "Valeur de la cellule : " & Target.Value End If End Sub '----------- Salutations JJ
"Sylvain Branchu" a écrit dans le message de news:%
Comment déclencher une macro en sortant d'une cellule mais surtout en mémorisant les "coordonnées" et la valeur de cette cellule afin de faire différents tests ... Merci à tous
Génial, mais encore plus dur ...
En fait je souhaite déclencher une macro lorsque la valeur d'un cellule non
précisée change dans une feuille non active.
En fait je travaille sur la feuille 1, il y a un paquet de formule sur la
feuille 2 qui modifie ou pas les valeurs contenus sur cette feuille 2 et si
il y a une modification de valeur, un test est lancé sur le contenu de cette
valeur ...
En gros je change une valeur de la feuille 1 et je teste toute les cellules
de la feuille 2 si elles ont changé.
Merci beaucoup
"Jacky" <nospam@bidon.fr> a écrit dans le message de
news:u8RKaoGxFHA.900@TK2MSFTNGP11.phx.gbl...
Ah Bonsoir à toi aussi Sylvain
Ceci peut-être
'---------
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target <> "" Then
MsgBox "Adresse de la cellule : " & Target.Address & Chr$(10) & "Valeur de
la cellule : " & Target.Value
End If
End Sub
'-----------
Salutations
JJ
"Sylvain Branchu" <sbranchu@nordnet.fr> a écrit dans le message de
news:%236IhPAGxFHA.2132@TK2MSFTNGP15.phx.gbl...
Comment déclencher une macro en sortant d'une cellule mais surtout en
mémorisant les "coordonnées" et la valeur de cette cellule afin de faire
différents tests ...
Merci à tous
Génial, mais encore plus dur ... En fait je souhaite déclencher une macro lorsque la valeur d'un cellule non précisée change dans une feuille non active. En fait je travaille sur la feuille 1, il y a un paquet de formule sur la feuille 2 qui modifie ou pas les valeurs contenus sur cette feuille 2 et si il y a une modification de valeur, un test est lancé sur le contenu de cette valeur ... En gros je change une valeur de la feuille 1 et je teste toute les cellules de la feuille 2 si elles ont changé. Merci beaucoup "Jacky" a écrit dans le message de news:
Ah Bonsoir à toi aussi Sylvain Ceci peut-être '--------- Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target <> "" Then MsgBox "Adresse de la cellule : " & Target.Address & Chr$(10) & "Valeur de la cellule : " & Target.Value End If End Sub '----------- Salutations JJ
"Sylvain Branchu" a écrit dans le message de news:%
Comment déclencher une macro en sortant d'une cellule mais surtout en mémorisant les "coordonnées" et la valeur de cette cellule afin de faire différents tests ... Merci à tous
anonymousA
Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs contenues dans la feuille2 et le comparer lors de calculs aux résultats de la feuille2 . Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on change des cellules de la Feuil1 et que bien sur des cellules de la feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value With Sheets("Feuil2").UsedRange.Cells(1, 1) colonne = .Column ligne = .Row End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1 For J = 0 To UBound(Tableau, 2) - 1 If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J + 1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3 Next Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
A+
Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs
contenues dans la feuille2 et le comparer lors de calculs aux
résultats de la feuille2 .
Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on
change des cellules de la Feuil1 et que bien sur des cellules de la
feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut
que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne
Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value
With Sheets("Feuil2").UsedRange.Cells(1, 1)
colonne = .Column
ligne = .Row
End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1
For J = 0 To UBound(Tableau, 2) - 1
If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J +
1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3
Next
Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
Pour faire ça , il faut momnter en mémoire le tableau des valeurs contenues dans la feuille2 et le comparer lors de calculs aux résultats de la feuille2 . Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on change des cellules de la Feuil1 et que bien sur des cellules de la feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value With Sheets("Feuil2").UsedRange.Cells(1, 1) colonne = .Column ligne = .Row End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1 For J = 0 To UBound(Tableau, 2) - 1 If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J + 1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3 Next Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
A+
Sylvain Branchu
Ouaou ! ça devient compliqué, il faut que je potasse ! Merci "anonymousA" a écrit dans le message de news: Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs contenues dans la feuille2 et le comparer lors de calculs aux résultats de la feuille2 . Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on change des cellules de la Feuil1 et que bien sur des cellules de la feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value With Sheets("Feuil2").UsedRange.Cells(1, 1) colonne = .Column ligne = .Row End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1 For J = 0 To UBound(Tableau, 2) - 1 If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J + 1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3 Next Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
A+
Ouaou ! ça devient compliqué, il faut que je potasse !
Merci
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de
news:1127981361.913509.193100@g44g2000cwa.googlegroups.com...
Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs
contenues dans la feuille2 et le comparer lors de calculs aux
résultats de la feuille2 .
Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on
change des cellules de la Feuil1 et que bien sur des cellules de la
feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut
que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne
Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value
With Sheets("Feuil2").UsedRange.Cells(1, 1)
colonne = .Column
ligne = .Row
End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1
For J = 0 To UBound(Tableau, 2) - 1
If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J +
1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3
Next
Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
Ouaou ! ça devient compliqué, il faut que je potasse ! Merci "anonymousA" a écrit dans le message de news: Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs contenues dans la feuille2 et le comparer lors de calculs aux résultats de la feuille2 . Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on change des cellules de la Feuil1 et que bien sur des cellules de la feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value With Sheets("Feuil2").UsedRange.Cells(1, 1) colonne = .Column ligne = .Row End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1 For J = 0 To UBound(Tableau, 2) - 1 If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J + 1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3 Next Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
A+
anonymousA
Bonjour,
suite à un code de Bill Manville publié hier par un contributeur,et que j'ai à peine rebricolé, je peux t'indiquer une solution possible sous réserve que les formules contiennent des références à des cellules existantes dans le classeur en cours ou à un classeur ouvert.
Si j'ai tout compris à ce que tu veux faire, c'est si tu changes une cellule de la feuille1 , comment détecter les cellules de la feuille 2 qui sont affectées et ensuite controler la valeur de celles-ci ( ou de celle-là) pour pouvoir déclencher autre chose.
Dnas l'exemple ci-dessous , on va utiliser l'evenement change ( j'ai supposé volontairement qu'on ne s'interesse qu'au changement d'une seule cellule en feuille1) de la feuille 1 et on va activer une procédure qui stocke les adresses des cellules qui sont dépendantes de la cellule modifiée. Ensuite une fois obtenu ce tableau d'adresses des cellules, il devient un jeu d'enfant d'en tester les valeurs
A mettre dans le module de feuille de la feuille 1
Private Sub Worksheet_Change(ByVal Target As Range)
'adaptation d'une procédure (FindPrecedents) 'written by Bill Manville, revised by Paul S. 'mpep, August 14, 2001 'Cette procédure détermine les cellules ( y.c dans un autre fichier et y.c si un nom 'de plage a été donné) d'une cellule contenant une formule
Dim rLast As Range, iLinkNum As Integer, iArrowNum As Integer Dim bNewArrow As Boolean, tabladdress() Dim nbaddress
cellule.ShowDependents Set rLast = cellule iArrowNum = 1 iLinkNum = 1 bNewArrow = True Do Do Application.Goto rLast On Error Resume Next ActiveCell.NavigateArrow TowardPrecedent:úlse, ArrowNumber:=iArrowNum, LinkNumber:=iLinkNum If Err.Number > 0 Then Exit Do On Error GoTo 0
If rLast.Address(external:=True) = ActiveCell.Address(external:=True) Then Exit Do nbaddress = nbaddress + 1 ReDim Preserve tabladdress(1 To nbaddress) tabladdress(nbaddress) = ActiveCell.Address(external:=True) bNewArrow = False iLinkNum = iLinkNum + 1
For i = LBound(tabladdress) To UBound(tabladdress) Range(tabladdress(i)).Interior.ColorIndex = 3 'ou 'MsgBox tabladdress(i) Next
Application.Goto Range(tabladdress(1))
End Sub
cette procédure te coloriera toutes les cellules qui dépendent de la cellule que tu viens de changer dans la feuille 1 que ces cellules soient sur la même feuille ou sur un autre classeur ouvert. Attention, elle ne colorie les cellules dépendentes des cellules dépendentes c.à.de les filles des filles.
A+
Ouaou ! ça devient compliqué, il faut que je potasse ! Merci "anonymousA" a écrit dans le message de news: Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs contenues dans la feuille2 et le comparer lors de calculs aux résultats de la feuille2 . Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on change des cellules de la Feuil1 et que bien sur des cellules de la feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value With Sheets("Feuil2").UsedRange.Cells(1, 1) colonne = .Column ligne = .Row End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1 For J = 0 To UBound(Tableau, 2) - 1 If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J + 1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3 Next Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
A+
Bonjour,
suite à un code de Bill Manville publié hier par un contributeur,et que
j'ai à peine rebricolé, je peux t'indiquer une solution possible sous
réserve que les formules contiennent des références à des cellules
existantes dans le classeur en cours ou à un classeur ouvert.
Si j'ai tout compris à ce que tu veux faire, c'est si tu changes une
cellule de la feuille1 , comment détecter les cellules de la feuille 2
qui sont affectées et ensuite controler la valeur de celles-ci ( ou de
celle-là) pour pouvoir déclencher autre chose.
Dnas l'exemple ci-dessous , on va utiliser l'evenement change ( j'ai
supposé volontairement qu'on ne s'interesse qu'au changement d'une seule
cellule en feuille1) de la feuille 1 et on va activer une procédure qui
stocke les adresses des cellules qui sont dépendantes de la cellule
modifiée. Ensuite une fois obtenu ce tableau d'adresses des cellules,
il devient un jeu d'enfant d'en tester les valeurs
A mettre dans le module de feuille de la feuille 1
Private Sub Worksheet_Change(ByVal Target As Range)
'adaptation d'une procédure (FindPrecedents)
'written by Bill Manville, revised by Paul S.
'mpep, August 14, 2001
'Cette procédure détermine les cellules ( y.c dans un autre fichier et
y.c si un nom
'de plage a été donné) d'une cellule contenant une formule
Dim rLast As Range, iLinkNum As Integer, iArrowNum As Integer
Dim bNewArrow As Boolean, tabladdress()
Dim nbaddress
cellule.ShowDependents
Set rLast = cellule
iArrowNum = 1
iLinkNum = 1
bNewArrow = True
Do
Do
Application.Goto rLast
On Error Resume Next
ActiveCell.NavigateArrow TowardPrecedent:úlse,
ArrowNumber:=iArrowNum, LinkNumber:=iLinkNum
If Err.Number > 0 Then Exit Do
On Error GoTo 0
If rLast.Address(external:=True) =
ActiveCell.Address(external:=True) Then Exit Do
nbaddress = nbaddress + 1
ReDim Preserve tabladdress(1 To nbaddress)
tabladdress(nbaddress) = ActiveCell.Address(external:=True)
bNewArrow = False
iLinkNum = iLinkNum + 1
For i = LBound(tabladdress) To UBound(tabladdress)
Range(tabladdress(i)).Interior.ColorIndex = 3
'ou
'MsgBox tabladdress(i)
Next
Application.Goto Range(tabladdress(1))
End Sub
cette procédure te coloriera toutes les cellules qui dépendent de la
cellule que tu viens de changer dans la feuille 1 que ces cellules
soient sur la même feuille ou sur un autre classeur ouvert.
Attention, elle ne colorie les cellules dépendentes des cellules
dépendentes c.à.de les filles des filles.
A+
Ouaou ! ça devient compliqué, il faut que je potasse !
Merci
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de
news:1127981361.913509.193100@g44g2000cwa.googlegroups.com...
Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs
contenues dans la feuille2 et le comparer lors de calculs aux
résultats de la feuille2 .
Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on
change des cellules de la Feuil1 et que bien sur des cellules de la
feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut
que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne
Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value
With Sheets("Feuil2").UsedRange.Cells(1, 1)
colonne = .Column
ligne = .Row
End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1
For J = 0 To UBound(Tableau, 2) - 1
If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J +
1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3
Next
Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.
suite à un code de Bill Manville publié hier par un contributeur,et que j'ai à peine rebricolé, je peux t'indiquer une solution possible sous réserve que les formules contiennent des références à des cellules existantes dans le classeur en cours ou à un classeur ouvert.
Si j'ai tout compris à ce que tu veux faire, c'est si tu changes une cellule de la feuille1 , comment détecter les cellules de la feuille 2 qui sont affectées et ensuite controler la valeur de celles-ci ( ou de celle-là) pour pouvoir déclencher autre chose.
Dnas l'exemple ci-dessous , on va utiliser l'evenement change ( j'ai supposé volontairement qu'on ne s'interesse qu'au changement d'une seule cellule en feuille1) de la feuille 1 et on va activer une procédure qui stocke les adresses des cellules qui sont dépendantes de la cellule modifiée. Ensuite une fois obtenu ce tableau d'adresses des cellules, il devient un jeu d'enfant d'en tester les valeurs
A mettre dans le module de feuille de la feuille 1
Private Sub Worksheet_Change(ByVal Target As Range)
'adaptation d'une procédure (FindPrecedents) 'written by Bill Manville, revised by Paul S. 'mpep, August 14, 2001 'Cette procédure détermine les cellules ( y.c dans un autre fichier et y.c si un nom 'de plage a été donné) d'une cellule contenant une formule
Dim rLast As Range, iLinkNum As Integer, iArrowNum As Integer Dim bNewArrow As Boolean, tabladdress() Dim nbaddress
cellule.ShowDependents Set rLast = cellule iArrowNum = 1 iLinkNum = 1 bNewArrow = True Do Do Application.Goto rLast On Error Resume Next ActiveCell.NavigateArrow TowardPrecedent:úlse, ArrowNumber:=iArrowNum, LinkNumber:=iLinkNum If Err.Number > 0 Then Exit Do On Error GoTo 0
If rLast.Address(external:=True) = ActiveCell.Address(external:=True) Then Exit Do nbaddress = nbaddress + 1 ReDim Preserve tabladdress(1 To nbaddress) tabladdress(nbaddress) = ActiveCell.Address(external:=True) bNewArrow = False iLinkNum = iLinkNum + 1
For i = LBound(tabladdress) To UBound(tabladdress) Range(tabladdress(i)).Interior.ColorIndex = 3 'ou 'MsgBox tabladdress(i) Next
Application.Goto Range(tabladdress(1))
End Sub
cette procédure te coloriera toutes les cellules qui dépendent de la cellule que tu viens de changer dans la feuille 1 que ces cellules soient sur la même feuille ou sur un autre classeur ouvert. Attention, elle ne colorie les cellules dépendentes des cellules dépendentes c.à.de les filles des filles.
A+
Ouaou ! ça devient compliqué, il faut que je potasse ! Merci "anonymousA" a écrit dans le message de news: Bonjour,
Pour faire ça , il faut momnter en mémoire le tableau des valeurs contenues dans la feuille2 et le comparer lors de calculs aux résultats de la feuille2 . Un exemple ci-dessous avec une coloration des cellules en Feuil2 si on change des cellules de la Feuil1 et que bien sur des cellules de la feuille 2 dépendent de cellules de la feuille1. Par ailleurs, il faut que l'option calcul automatique soit en fonction
A mettre dans le module Thisworkbook.
Private Sub Workbook_Open()
Affecttab
End Sub
A mettre dans un module standard
Public Tableau(), colonne, ligne Sub Affecttab()
Tableau = Sheets("Feuil2").UsedRange.Value With Sheets("Feuil2").UsedRange.Cells(1, 1) colonne = .Column ligne = .Row End With
End Sub
A mettre dans le module de feuille Feuil2
Private Sub Worksheet_Calculate()
Me.Cells.Interior.ColorIndex = xlNone
For I = 0 To UBound(Tableau, 1) - 1 For J = 0 To UBound(Tableau, 2) - 1 If Me.Cells(ligne + I, colonne + J).Value <> Tableau(I + 1, J + 1) Then Me.Cells(ligne + I, colonne + J).Interior.ColorIndex = 3 Next Next
Affecttab
End Sub
A toi d'adapter ce principe en fonction de ton besoin.