comment faire une référence à une page VBA excel

comment faire une référence à une page VBA excel - VB/VBA/VBS - Programmation

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

Reply

Marsh Posté le 07-07-2008 à 11:42:17   

Reply

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

Reply

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

Reply

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

Reply

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

Reply

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

Reply

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

Reply

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

Reply

Marsh Posté le 08-07-2008 à 08:06:12    

bonjour  
 
je te remercie pour ton aide effectivement tout baigne merci a+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed