Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déplacer une image en VBA

  • Initiateur de la discussion Initiateur de la discussion Martialus
  • 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 !

M

Martialus

Guest
Salut tout le monde,

J'ai une feuille avec par exemple en A1 un booléen et on va dire en C5 une image carrée de petite dimension.

Si A1 vaut true, l'image restera à sa place, mais je voudrais que si A1 vaut false, l'image soit décalée sur la gauche pour se trouver environ en A5. Comment puis-je faire cela en VBA ?

S'il y a des experts comme Hervé ou Pascal, je compte sur vous !!! lol Merci à tous et à bientôt.
 
Bonjour

Tu es gentil Martialus, mais je suis loin d'etre un expert (enfin si c'est de moi que tu parles)

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1").Value = "False" Then
ActiveSheet.Shapes("Picture 1").Select
Selection.ShapeRange.IncrementLeft -117.75
Else
ActiveSheet.Shapes("Picture 1").Select
Selection.ShapeRange.IncrementLeft 117.75

End If
End Sub

essaye ceci, pour ce code j'ai dessiné une image je l'ai placé en C5, j'ai lancé l'exécuteur de macro, j'ai déplacé l'image en A5 et j'ai regardé le code généré :

ActiveSheet.Shapes("Picture 1").Select
Selection.ShapeRange.IncrementLeft -117.75

tu parles d'un expert que je fais (loooooooool)

pour la cellule A1, ne sachant pas comment tu récupére ton booléan j'ai placé en dur "False", fais sauté les guillemets.

Salut
Hervé
 
C'est bien de toi que je parle Hervé !! ;-)

Merci beaucoup pour ta méthode qui marche très bien. En fait, si je voulais que l'image soit décalée vers la gauche, c'est pour qu'elle entre dans ma zone d'impression si la case A1 vaut True.

Comme je suis perfectionniste, j'ai fait quelque chose du genre :
Bool = ActiveSheet.Cells(1, 1)
If EstIMode = True Then
ActiveSheet.Shapes("Image1").Visible = True
Else
ActiveSheet.Shapes("Image1").Visible = False
End If
afin de plutôt afficher l'image si c'est True et carrément ne pas l'afficher si c'est False. Je te remercie quand même pour ta méthode, j'ai commencé à apprendre le VBE hier en début d'après-midi, et j'en connais déjà pas mal !!! Donc merci à toi, à Pascal76 (je crois que c'est ça), et à tous ceux qui font vivre ce site et qui donnent envie de continuer à apprendre dans ce sens.
 
Re : Déplacer une image en VBA

Salut,
Autre méthode pour la placer sans points mais avec le nom des cellules :

Code:
Sub placemlentimage()

 Set Emplacement1 = Sheets("Feuil1").Range("a1")
 Set Emplacement2 = Sheets("Feuil1").Range("a5")
    
if Bool = true then
With Sheets("Feuil1").Shapes(1)
        .Left = Emplacement1.Left
        .top = Emplacement1.top
        .Height = Emplacement1.Height
        .Width = Emplacement1.Width
    End With
else
With Sheets("Feuil1").Shapes(1)
        .Left = Emplacement2.Left
        .top = Emplacement2.top
        .Height = Emplacement2.Height
        .Width = Emplacement2.Width
    End With
end if
End Sub

Attention, l'image garde sa forme, tu peux mettre une plage de cellules a la place d'une seule. cette méthode marche aussi avec les chartobjet et un peu tout ce qui peu ce placer.
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
  • Question Question
Réponses
15
Affichages
2 K
T
Réponses
4
Affichages
3 K
thibz_99
T
Réponses
37
Affichages
3 K
S
Réponses
3
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…