mfc2

Le
pb
Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert durant
2 secondes les cellules dont la valeur à diminuée et en rouge les cellules
sont la valeur à augmentée.
Est-possible?
Merci
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #19648831
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert durant
2 secondes les cellules dont la valeur à diminuée et en rouge les cellules
sont la valeur à augmentée.
Est-possible?
Merci


pb
Le #19649011
Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la valeur à
changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci







Daniel.C
Le #19649431
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro
dans :
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la valeur à
changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les cellules
sont la valeur à augmentée.
Est-possible?
Merci









pb
Le #19653071
Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro dans
:
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la
valeur à changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci














Daniel.C
Le #19653301
Bizarre.
Essaie avec ce classeur :
http://www.cijoint.fr/cjlink.php?file=cj200906/cij9wCKTKm.xls
J'ai ajouté un bouton pour l'actualisation et l'appel à la macro "test"
à l'ouverture du classeur.
Daniel

Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro dans :
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la valeur
à changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci
















pb
Le #19653461
Non j'ai la même erreur, je ne comprends pas pourquoi?
Dans l'aide ils disent:
Vous avez fait référence à un élément de tableau inexistant.??
Pourtant tout est correctement déclaré
"Daniel.C" %
Bizarre.
Essaie avec ce classeur :
http://www.cijoint.fr/cjlink.php?file=cj200906/cij9wCKTKm.xls
J'ai ajouté un bouton pour l'actualisation et l'appel à la macro "test" à
l'ouverture du classeur.
Daniel

Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro
dans :
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la
valeur à changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on
est samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci





















Daniel.C
Le #19653531
Tu testes avec mon classeur ?
Daniel

Non j'ai la même erreur, je ne comprends pas pourquoi?
Dans l'aide ils disent:
Vous avez fait référence à un élément de tableau inexistant.??
Pourtant tout est correctement déclaré
"Daniel.C" %
Bizarre.
Essaie avec ce classeur :
http://www.cijoint.fr/cjlink.php?file=cj200906/cij9wCKTKm.xls
J'ai ajouté un bouton pour l'actualisation et l'appel à la macro "test" à
l'ouverture du classeur.
Daniel

Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro dans
:
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la
valeur à changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci























pb
Le #19653521
Oui le tout dernier
"Daniel.C"
Tu testes avec mon classeur ?
Daniel

Non j'ai la même erreur, je ne comprends pas pourquoi?
Dans l'aide ils disent:
Vous avez fait référence à un élément de tableau inexistant.??
Pourtant tout est correctement déclaré
"Daniel.C" %
Bizarre.
Essaie avec ce classeur :
http://www.cijoint.fr/cjlink.php?file=cj200906/cij9wCKTKm.xls
J'ai ajouté un bouton pour l'actualisation et l'appel à la macro "test"
à l'ouverture du classeur.
Daniel

Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro
dans :
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la
valeur à changée et non toute la Range.
Merci
"Daniel.C" news: %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on
est samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en
vert durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci



























Daniel.C
Le #19653511
Je viens d'avoir le même problème. Je charche.
Daniel

Non j'ai la même erreur, je ne comprends pas pourquoi?
Dans l'aide ils disent:
Vous avez fait référence à un élément de tableau inexistant.??
Pourtant tout est correctement déclaré
"Daniel.C" %
Bizarre.
Essaie avec ce classeur :
http://www.cijoint.fr/cjlink.php?file=cj200906/cij9wCKTKm.xls
J'ai ajouté un bouton pour l'actualisation et l'appel à la macro "test" à
l'ouverture du classeur.
Daniel

Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro dans
:
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la
valeur à changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on est
samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci























Daniel.C
Le #19653741
Le problème se produit quand on entre une valeur dans une cellule de la
feuille.
Modifie la macro du module feuille comme suit :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
If Intersect([C3:C12], Target) Is Nothing Then Exit Sub
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Ctr = Ctr + 1
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
test
End Sub

Daniel

Tu testes avec mon classeur ?
Daniel

Non j'ai la même erreur, je ne comprends pas pourquoi?
Dans l'aide ils disent:
Vous avez fait référence à un élément de tableau inexistant.??
Pourtant tout est correctement déclaré
"Daniel.C" %
Bizarre.
Essaie avec ce classeur :
http://www.cijoint.fr/cjlink.php?file=cj200906/cij9wCKTKm.xls
J'ai ajouté un bouton pour l'actualisation et l'appel à la macro "test" à
l'ouverture du classeur.
Daniel

Merci Daniel,
Cela fonctionne une fois et ensuite
--> L'indice n'appartient pas à la sélection sur la ligne
If c.Value > tabl(Ctr) Then
Dans le Private sub.
J'ai enlevé l'appel à la procédure test
Pascal

"Daniel.C"
Petite ? erreur de ma part. Pour pouvoir tester, j'ai ajouté la macro
"test" dans le module1 qui modifie les valeurs en C3 et C4.
http://www.cijoint.fr/cjlink.php?file=cj200906/cij8gz1wxx.xls
Une fois les tests terminés, il faudra enlever l'appel à cette macro
dans :
Private Sub Worksheet_Change(ByVal Target As Range)
Daniel

Merci Daniel,
Mais comment faire pour que cela soit uniquement la cellule dont la
valeur à changée et non toute la Range.
Merci
"Daniel.C" %
Bonjour.
Regarde le fichier là :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijliUUAJr.xls
La plage mise à jour est A1:C12, la plage de cellules à colorier est
C3:C12. Tu devras adapter les macros à tes plages.
Dans une module standard, mets :
Public Tabl() as Double
Dans ThisWorkbook", mets :

Private Sub Workbook_Open()
ReDim Tabl(0)
For Each c In [Feuil1!C3:C12]
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
Next
End Sub

Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Ctr As Long
Ctr = 0
For Each c In [C3:C12]
If c.Value > Tabl(Ctr) Then
c.Interior.ColorIndex = 4
ElseIf c.Value < Tabl(Ctr) Then
c.Interior.ColorIndex = 3
End If
Next c
Ctr = 0
Application.Wait Now + TimeValue("00:00:02")
[C3:C12].Interior.ColorIndex = xlNone
ReDim Tabl(0)
For Each c In Target
If Not Intersect(c, Columns(3)) Is Nothing And c.Row > 2 Then
Var = c.Address
ReDim Preserve Tabl(Ctr)
Tabl(Ctr) = c.Value
Ctr = Ctr + 1
End If
Next
End Sub

PS. J'ai testé avec les cours de Carrefour sur Boursorama. Comme on
est samedi, difficile de tester.
Daniel



Bonjour,
Sur une range liée à une requête Web, je cherche à coloriser en vert
durant
2 secondes les cellules dont la valeur à diminuée et en rouge les
cellules
sont la valeur à augmentée.
Est-possible?
Merci
















Publicité
Poster une réponse
Anonyme