comment faire une référence à une page VBA excel - VB/VBA/VBS - Programmation
Marsh Posté le 07-07-2008 à 14:23:53
bonjour,
ou as tu mis ta macro? dans thisworkbook? dans un module ?
sinon essai avec ca (thisworkbook)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target = sheets("Data" ).Range("A1" ) Then
....
End If
End Sub
Marsh Posté le 07-07-2008 à 14:50:48
Merci pour ta réponse ça ne marche malheuremsement pas
voici mon code j'ai modifié en ajoutant le tiens mais rien
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If IsEmpty(Target.Value) Or Not IsNumeric(Target.Value) Then
ActiveSheet.Shapes("Oval 1" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("Oval 2" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("Oval 3" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
Exit Sub
End If
If Target.Value >= 100 Then
ActiveSheet.Shapes("Oval 3" ).Fill.ForeColor.RGB = RGB(0, 204, 0)
ActiveSheet.Shapes("Oval 1" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("Oval 2" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
ElseIf Target.Value <= -100 Then ActiveSheet.Shapes("Oval 1" ).Fill.ForeColor.RGB = RGB(255, 0, 0): _
ActiveSheet.Shapes("Oval 2" ).Fill.ForeColor.RGB = RGB(255, 255, 255): _
ActiveSheet.Shapes("Oval 3" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
Else
ActiveSheet.Shapes("Oval 1" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("Oval 2" ).Fill.ForeColor.RGB = RGB(255, 128, 0)
ActiveSheet.Shapes("Oval 3" ).Fill.ForeColor.RGB = RGB(255, 255, 255)
End If
End If
End Sub
Marsh Posté le 07-07-2008 à 15:48:47
re
change ton code avec cette formulation
ActiveSheet.Shapes("Oval 3" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 204, 0)
et ca devrait marche
Marsh Posté le 07-07-2008 à 16:05:50
RE au fait ca marche si je laisse sur la même page sinon il retrovue pas oval , 2, 3 comment pourrais je faire pour dire que oval1 se trouve dans la feuille 2 par exemple merci
Marsh Posté le 07-07-2008 à 16:47:13
ca devient ca normalement
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If IsEmpty(Target.Value) Or Not IsNumeric(Target.Value) Then
Sheets("Sheet1" ).Select
Sheets("Sheet1" ).Shapes("Oval 1" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Sheets("Sheet2" ).Select
Sheets("Sheet2" ).Shapes("Oval 2" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Sheets("Sheet3" ).Select
Sheets("Sheet3" ).Shapes("Oval 3" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Exit Sub
End If
If Target.Value >= 100 Then
Sheets("Sheet3" ).Select
Sheets("Sheet3" ).Shapes("Oval 3" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 204, 0)
Sheets("Sheet1" ).Select
Sheets("Sheet1" ).Shapes("Oval 1" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Sheets("Sheet2" ).Select
Sheets("Sheet2" ).Shapes("Oval 2" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
ElseIf Target.Value <= -100 Then
Sheets("Sheet1" ).Select
Sheets("Sheet1" ).Shapes("Oval 1" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)
Sheets("Sheet2" ).Select
Sheets("Sheet2" ).Shapes("Oval 2" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Sheets("Sheet3" ).Select
Sheets("Sheet3" ).Shapes("Oval 3" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Else
Sheets("Sheet1" ).Select
Sheets("Sheet1" ).Shapes("Oval 1" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Sheets("Sheet2" ).Select
Sheets("Sheet2" ).Shapes("Oval 2" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 128, 0)
Sheets("Sheet3" ).Select
Sheets("Sheet3" ).Shapes("Oval 3" ).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
End If
End If
Sheets("Sheet1" ).Select
End Sub
Marsh Posté le 07-07-2008 à 16:57:24
ça ne marche toujours aps j'ai mis le fichier en pièce jointe je pense que tu pourras mieux détecter l'erreur avec merci beaucoup pour ton aide http://cjoint.com/?hhq3iIJn2d
Marsh Posté le 07-07-2008 à 18:55:22
kan tu change les valeurs tes ronds ne changent pas de couleurs ? ca fait pas exactement ce que tu veux ? et c koi ton erreur ?
parce que chez moi ca lair de marche. je change la valeur de la feuille data et tes feux changent de couleur correctement dc je comprends vraiment pas ton probleme
Marsh Posté le 08-07-2008 à 08:06:12
bonjour
je te remercie pour ton aide effectivement tout baigne merci a+
Marsh Posté le 07-07-2008 à 11:42:17
bonjour svp je suis en train de créer un tableau de bord j'ai réalisé un indicateur où j'utilise une donnée sur la même page que le visuel j'utilise ceci comme code pour définir la cellule donnée If Target.Address = "$A1" Then
je veux mettre l'indicateur dans une feuille et la donnée dans une autre comment dois-je modifier mon code merci beaucoup j'ai essayé ceci ça ne marche pas
If Target.Address = "$Data!R[4]C[6]" Then