Affichage successive d'images

philmaure

XLDnaute Impliqué
Bonjour

A partie d'une carte de France stockée sur la feuille1, je souhaiterai afficher des stats pour les Régions Bretagne, Normandie, Pys de loire et Centre Val de Loire et ce par département.

Lorsque je clique sur la zone Bretagne(par exemple) je voudrais faire apparaitre l'image des départements de la Bretagne stockée dans l'onglet Feuil2.

Pour afficher une première image j'utilise le code :
Sheets("Feuil2").Select
ActiveSheet.Shapes.Range(Array("Picture 9")).Select
Selection.Copy
Sheets("Feuil1").Select
Range("I4").Select
ActiveSheet.Paste
Range("H14").Select

Mon problème arrive lorsque je désire afficher une autre image., car le nom de la Picture change à chaque fois.

Existe t- il une solution pour renommer les images et pouvoir l'effacer avant de la remplacer par une autre quelque soit l'image affichée ?

Pour complément d'info j'ai créée des formes à l'intérieur des régions que j'utilise pour y associer une macro

Merci pour votre aide.

Cdlt
Philmaure
 

Pièces jointes

  • TEST.xlsx
    377.1 KB · Affichages: 43

Calvus

XLDnaute Barbatruc
Bonsoir,

Aucun code sur ton fichier.

Voici qui devrait arranger tes tracas :
VB:
Option Explicit

Sub Copie_Image()
Dim image As String

image = Application.Caller

If image = "Forme libre 4" Then
    With Sheets("Feuil2")
    .Shapes("Image 9").Copy
    End With
ElseIf image = "Forme libre 5" Then
    With Sheets("Feuil2")
    .Shapes("Image 11").Copy
    End With
ElseIf image = "Forme libre 6" Then
    With Sheets("Feuil2")
    .Shapes("Image 10").Copy
    End With
ElseIf image = "Forme libre 7" Then
    With Sheets("Feuil2")
    .Shapes("Image 8").Copy
    End With
End If
Range("I4").Select
ActiveSheet.Paste
Range("H14").Select
End Sub

Il faut affecter la macro à chaque image de la feuille 3.

Le mieux serait de restructurer ton fichier, nommer les images proprement.

A+
 

Noel Bedard

XLDnaute Occasionnel
Bonsoir à tous

Pendant que je jouais sur la feuille de philmaure a reçu une réponse de Ce lien n'existe plus

Excusez mon intrusion.

J'affiche ma feuille sans interférer, car c'est une autre façon de faire, moi j'ai utiliser des userforms pour afficher les images.
Vous appuyez sur Afficher et les images s'affichent. Sur les images qui apparaissent vous appuyez m'importe ou pour revenir à la précédente.

Ma première contient les liens pour charger les autres images, excusez-moi pour ces liens qui ne sont pas esthétiques car je n'ai aucune idée comme faire des formes. Vous semblez déjà avoir c'est formes à vous de les agencées.

Bonne soirée
Noël
Le fichier est assez lourd en raison des images.....:oops:
 

Pièces jointes

  • Cartes Geographique.xlsm
    1.3 MB · Affichages: 84

philmaure

XLDnaute Impliqué
Bonjour et un grand merci à vous deux.

Vos réponses correspondent à mon besoin.

Dans la solution de Calvus, comment faire pour :
- que l'image soit copiée en cellule A1
- qu'il efface l'image présente, avant de copier la suivante ?

Cdlt
Philippe
 

philmaure

XLDnaute Impliqué
Re bonjour,

Sur les conseils de Calvus j'ai renommé mes images

Je suis parvenu à effacer l'image avant de copie la suivante par le code :

With Sheets("Feuil1")
Range("H20:N20").Select
Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
Img.Delete
End With


Reste à forcer le collage de l'image an A1.

Merci pour votre aide
Cdlt
Philmaure
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
309

Statistiques des forums

Discussions
312 103
Messages
2 085 321
Membres
102 862
dernier inscrit
Emma35400