Shapes changement de couleur

  • Initiateur de la discussion Initiateur de la discussion maval
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Shapes changement de couleur

Bonjour JB.

Je te remercie du code et de l'explication. Effectivement cela est très simple et très efficace , j'aimerai avoir juste deux petite explications si je peut me permettre. J'ai 22 régions sur ma carte, donc suis je obligé de refaire a chaque région ce code ou il y a une autre façon?

Code:
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image1.Width - 10 Or Y < 10 Or Y > Image1.Height - 10 Then
   ActiveSheet.Shapes("Bretagne").Fill.ForeColor.RGB = 255
 Else
   ActiveSheet.Shapes("Bretagne").Fill.ForeColor.RGB = RGB(0, 255, 0)
 End If
End Sub
Cela est pour ma première question! La seconde question plus simple lorsque je clique sur une région, j'ouvre l'onglet qui porte le même non que la région avec un simple lien, mais avec une Image que je superpose sur le champ je n'est plus accès a mon lien je suis aller voir par la propriété de l'image je n’ai rien trouver y t-il une autre manière?

Bonne journée

@+

Max
 
Re : Shapes changement de couleur

Bonjour,

On ne peut pas définir de module de classe sur une feuille

Voir PJ

Code:
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image1.Width - 10 Or Y < 10 Or Y > Image1.Height - 10 Then
   ActiveSheet.Shapes("Bretagne").Fill.ForeColor.RGB = RGB(255, 255, 255)
 Else
   ActiveSheet.Shapes("Bretagne").Fill.ForeColor.RGB = RGB(0, 255, 0)
 End If
End Sub

Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image2.Width - 10 Or Y < 10 Or Y > Image2.Height - 10 Then
   ActiveSheet.Shapes("Basse-normandie").Fill.ForeColor.RGB = RGB(255, 255, 255)
 Else
   ActiveSheet.Shapes("Basse-normandie").Fill.ForeColor.RGB = RGB(0, 255, 0)
 End If
End Sub

Private Sub Image3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image3.Width - 10 Or Y < 10 Or Y > Image3.Height - 10 Then
   ActiveSheet.Shapes("pays-de-loire").Fill.ForeColor.RGB = RGB(255, 255, 255)
 Else
   ActiveSheet.Shapes("pays-de-loire").Fill.ForeColor.RGB = RGB(0, 255, 0)
 End If
End Sub

Private Sub Image1_Click()
  razShapes
  Sheets("bretagne").Select
End Sub

Private Sub Image2_Click()
  razShapes
  Sheets("Basse-normandie").Select
End Sub

Private Sub Image3_Click()
  razShapes
  Sheets("pays-de-loire").Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  razShapes
End Sub

Sub razShapes()
  For Each s In ActiveSheet.Shapes
    s.Fill.ForeColor.RGB = RGB(255, 255, 255)
  Next s
End Sub

http://boisgontierjacques.free.fr/fichiers/Images/SurvolRegionsShapes.xls
http://boisgontierjacques.free.fr/fichiers/Images/FranceRegionSurvol.xls
Les images et shapes

JB
 

Pièces jointes

Dernière édition:
Re : Shapes changement de couleur

Bonjour,

Je te remercie pour la modif du code. J'ai ajouter une info bulle et sa donne ceci:

Code:
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image1.Width - 10 Or Y < 10 Or Y > Image1.Height - 10 Then
   ActiveSheet.Shapes("Bretagne").Fill.ForeColor.RGB = RGB(255, 255, 255) 'Couleur de fond blanc
   
             ActiveSheet.Shapes("Label1").Fill.ForeColor.RGB = RGB(255, 255, 0) 'Couleur de fond jaune
             ActiveSheet.Shapes("Label1").Visible = False
  Else
             ActiveSheet.Shapes("Label1").Visible = True
         
   ActiveSheet.Shapes("Bretagne").Fill.ForeColor.RGB = RGB(0, 255, 0) 'Couleur de fond vert
 End If
End Sub

Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image2.Width - 10 Or Y < 10 Or Y > Image2.Height - 10 Then
   ActiveSheet.Shapes("Basse-Normandie").Fill.ForeColor.RGB = RGB(255, 255, 255) 'Couleur de fond blanc
   
             ActiveSheet.Shapes("Label2").Fill.ForeColor.RGB = RGB(255, 255, 0) 'Couleur de fond jaune
             ActiveSheet.Shapes("Label2").Visible = False
  Else
             ActiveSheet.Shapes("Label2").Visible = True

   ActiveSheet.Shapes("Basse-Normandie").Fill.ForeColor.RGB = RGB(0, 255, 0) 'Couleur de fond vert
 End If
End Sub

Private Sub Image3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 If X < 10 Or X > Image3.Width - 10 Or Y < 10 Or Y > Image3.Height - 10 Then
   ActiveSheet.Shapes("Pays-de-Loire").Fill.ForeColor.RGB = RGB(255, 255, 255) 'Couleur de fond blanc
   
             ActiveSheet.Shapes("Label3").Fill.ForeColor.RGB = RGB(255, 255, 0) 'Couleur de fond jaune
             ActiveSheet.Shapes("Label3").Visible = False
  Else
             ActiveSheet.Shapes("Label3").Visible = True
     
   ActiveSheet.Shapes("Pays-de-Loire").Fill.ForeColor.RGB = RGB(0, 255, 0) 'Couleur de fond vert
 End If
End Sub

Private Sub Image1_Click()
  razShapes
  Sheets("bretagne").Select
End Sub

Private Sub Image2_Click()
  razShapes
  Sheets("Basse-normandie").Select
End Sub

Private Sub Image3_Click()
  razShapes
  Sheets("pays-de-loire").Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  razShapes
End Sub

Sub razShapes()
  For Each s In ActiveSheet.Shapes
    s.Fill.ForeColor.RGB = RGB(255, 255, 255)
  Next s
End Sub

je pense que sa doit être bon?

Bonne journée et merci encore

Max
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
32
Affichages
748
Retour