[Résolu par DoubleZero] Ne pas déplacer l'image

Bearn 64

XLDnaute Occasionnel
Bonjour le Forum,

Je souhaiterai que l'utilisateur ne puisse déplacer l'image présente sur une feuille avec clic droit etc..

Voila mon code :
Code:
Sheets("Menu").Activate
          répertoirePhoto = ThisWorkbook.Path & "\"
          nomproduits = "ouiproduits"
          Set img = ActiveSheet.Pictures.Insert(répertoirePhoto & nomproduits & ".jpg")
          img.Left = [B13].Left
          img.Top = [B13].Top
          img.Name = nomproduits
          ActiveSheet.Shapes("ouiproduits").Select
          Selection.OnAction = "Imprime"
          Range("A1").Select


pour l'effacer j'utilise le code :
Code:
'Efface les shapes d'un champ
  For Each s In ActiveSheet.Shapes
    If Not Intersect(s.TopLeftCell, Range("$B$13")) Is Nothing Then
       s.Delete
    End If
  Next s


J’insère une image de mon répertoire dans la cellule B13 puis je lui affecte une macro Imprime.

Tout est OK.
Mais car il y a un mais. Si je fait un clic droit l'image est sélectionnée et je peut la déplacer chose que je ne voudrai pas.

Une idée serai la bienvenue!!

Merci de votre attention.
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Ne pas déplacer l'image

Bonjour, Bearn 64, le Forum,

Comme ceci ?

Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    With ActiveSheet.Shapes("ouiproduits")
        .Left = [B13].Left
        .Top = [B13].Top
    End With
End Sub

A bientôt :)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Ne pas déplacer l'image

Bonjour Bearn 64, DoubleZero :), gilbert_RGI :),

Pour le fun, un autre essai qui devrait en terme d'utilisation de temps machine se retrouver entre la proposition de DoubleZero et celle de gilbert_RGI.

Il est basé sur Application.OnTime (toutes les 2 sec mais c'est paramétrable dans Module1 -> constante "Periode").
Le nom des images de Feuil1 à laisser fixes sont indiqués dans la constante texte "FormesFixes".

A l'ouverture du classeur, on stocke dans chaque image devant restée fixe les coordonnées de cette l'image.

Si Feuil1 est la feuille active alors, on repositionne les images fixes toutes les 2 secondes.
Si une autre feuille est active, le repositionnement est normalement suspendu.

Les coordonnées des images fixes ne sont pas écrites en dur dans le code mais récupérées à chaque ouverture du classeur.

Il y a un peu de code dans les modules de code de "Feuil1" et "ThisWorkbook" ; le gros du code étant dans "Module1".

Nota 1: si on copie une image fixe de Feuil1 pour la coller dans Feuil1 alors cette nouvelle image devient temporairement fixe. Il suffit de fermer le classeur (en l'enregistrant !) et de le ré-ouvrir => la nouvelle image est mobile.

Nota 2 :
ou bien pour pouvoir travailler tranquillement sur les images ou le code, on peut stopper le repositionnement automatique en exécutant la macro ARRET (menu Développeur / Macros ou bien ALT+F8). Pour relancer le repositionnement auto, exécuter la macro INIT (menu Développeur / Macros ou bien ALT+F8)
 

Pièces jointes

  • Bearn 64- Ne pas déplacer des images- v1a.xlsm
    89 KB · Affichages: 38
Dernière édition:

Bearn 64

XLDnaute Occasionnel
Re : Ne pas déplacer l'image

Bonjour DoubleZero, gilbert_RGI, mapomme, Le Forum.

Merci de toutes ces réponses.
Je suis plutôt bleu.

mapomme : pas fonctionnel pour moi le compteur tourne mais les images restent ou elles sont déplacées !!!!

gilbert TGI : Un peu complexe pour mes connaissances.

DoubleZero : je ne comprends pas comment insérer ton code dans le mien car je suis déjà dans une Sub End sub


Merci de vos interventions un complément serai le bienvenu mais simple SVP
 

gilbert_RGI

XLDnaute Barbatruc
Re : Ne pas déplacer l'image

Bonjour DoubleZero, gilbert_RGI, mapomme, Le Forum.

Merci de toutes ces réponses.
Je suis plutôt bleu.


gilbert RGI : Un peu complexe pour mes connaissances.




un complément serait le bienvenu mais simple SVP

dans le code l'image se nomme image 1

La valeur 0 affectée aux propriétés Left ou Top place le bord du contrôle à la gauche ou au bord supérieur de son conteneur

dans le fichier elle est positionnée à 300 depuis le haut de l'écran
et à 300 de la gauche de l'écran

si elle est déplacée elle revient a sa position initiale
 

Si...

XLDnaute Barbatruc
Re : [Résolu par DoubleZero] Ne pas déplacer l'image

salut

Que faire Si… après sa sélection l’image a été effacée voire agrandie, tournée… ?
Faut-il imprimer la nouvelle venue ?

Image O_O.jpg
 

Pièces jointes

  • bloquer_image.xlsm
    33 KB · Affichages: 40

Si...

XLDnaute Barbatruc
Re : [Résolu par DoubleZero] Ne pas déplacer l'image

re

J’avais omis, mapomme :D , de te dire que j’ai aimé, apprécié ta production haute en couleur et avec un scénario original si bien tourné.

Merci O_O d’avoir joué le rôle de « l’avocat du Diable » ;)

Dernières délibérations

Un détournement d’image est, selon ma loi, prémédité !
Le prévenu n’est pas considéré comme étourdi mais plutôt comme pirate avec une condamnation*, selon ta sentence, à galérer**.

*manque de Pau pensera Béarn :D ?
** c’est ce que je fais comme un « hacker » qui pompe tes images en outrepassant tes droits d’Auteureavec les nouvelles règles qui permettent bien des abus et encore plus !

Bon dimanche
 

Statistiques des forums

Discussions
314 221
Messages
2 107 464
Membres
109 835
dernier inscrit
Marie Bénédicte