Excel prend mes images a 90

Bonjour à tous,

Meilleurs voeux pour cette année 2024

Je me tourne vers vous en total désespoir, j'ai passé l'après midi sur Excel a essayer de résoudre le problème en vain.

Je suis en train de créer un fichier ou je dois insérer des photos. Et je voulais que quand on clique sur la photos, elle s'agrandissent, puis revienne a la normale en recliquant dessus. J'ai chercher un peu sur internet et j'ai trouvé un procédure:

capture d ecran 2024 01 10 175452

j'ai suivis cette procédure pour la première image et cela a fonctionné nickel.

J'ai voulu faire la deuxième image et maintenant excel considère mes images tourné a 90°

Sur l'image suivante, on voit bien que ma photo est normale avec rotation a 0°, et le symbole de flèche qui tourne au dessus de la photo

capture d ecran 2024 01 10 175020

par contre maintenant des que j'essaie de mettre une autre image il me met une rotation a 90° et le symbole de flèche qui tourne est sur la gauche de l'image, pourtant l'image est exactement dans le même sens (j'ai essayer avec la même photo pour être sur que cela ne vient pas de mes photos)

capture d ecran 2024 01 10 175037

le soucis c'est que du coup les photos ne se mette pas correctement, la hauteur et la largeur s'inverse, et quand je clique pour agrandir, la photo ne s'ouvre pas du même coté que la précédente.

Impossible de remettre la photo dans le bon sens sans tourner la photo, si je passe l'orientation a 0°, la photo tourne de 90°, ce qui forcement ne me convient pas.

J'ai tout essayer, supprimer la maccro, essayer sur un autre tableur vierge, réinitialiser excel en supprimant les clé de registre, j'ai même désinstaller office, supprimer tous les fichiers, même ceux cachés, qui avez un rapport de prêt ou de loin avec Excel. Rien a faire. Plus moyen d'avoir ma photo rotation a 0° et la flèche qui tourne au dessus de ma photo.

Pourriez vous m'aider a résoudre le problème svp

Bonsoir,

sans fichier je ne peux rien faire pour vous...
Par contre je peux vous fournir un code simplifié que ne sélectionne pas les images, et lors de l'agrandissement cette dernière se met au premier plan :

Sub Grand()
    With ActiveSheet.Shapes(Application.Caller)
        .Width = .Width * 2
        .Height = .Height * 2
        .OnAction = "Petit"
        .ZOrder msoBringToFront
    End With
End Sub
Sub Petit()
    With ActiveSheet.Shapes(Application.Caller)
        .Width = .Width / 2
        .Height = .Height / 2
        .OnAction = "Grand"
    End With
End Sub
Sub Init()
    On Error Resume Next
    For Each Sh In ActiveSheet.Shapes
        Sh.OnAction = "Grand"
    Next Sh
End Sub

@ bientôt

LouReeD

Bonjour,

Merci pour votre réponse et pour la maccro.

Malheureusement cela ne résout pas mon problème.

Je peux vous joindre mon fichier, mais je ne pense pas que cela vienne du fichier, vu que même lorsque je lance un classeur vierge et que je met une photo j'ai le même problème.

Je vous joint ci dessous le fichier en question

Merci

bon apparemment cela vient bien de mes photos, j'ai essayer avec une image prise sur le net pas de problème. J'ai essayer de lancer ma photos avec le logiciel photo de windows et d'en enregistré une copie, avec la copie pas de problème non plus.

Le plus bizarre c'est que ca ne me faisait pas ca au début, Excel c'est mis a tout décalé d'un coup.

Bref dans l'absolu j'ai trouvé une solution de bidouillage. Mais si quelqu'un a une explication pour moi je suis preneur.

Encore merci pour le code

re

bonjour

oui j'en ai une peut être d'explication

exemple j'ai des photos de de 2680x3752( donc de très grande taille)

si tes shapes sont ajoutée par vba a l'aide de la collection picture le prorata (800x600 because rétrocompatibilité avec les versions antérieures d'excel) sera automatique effectué

donc tout ce qui est dimensions par vba sera erroné

par contre si on ajoute la même image par la collection shape.addpicture là l'image sera intégré aux dimsions originales

bien entendu toute les propriétés concernant la taille par vba sera alors exacte

Bonsoir,

perso je changerais votre code avec le mien tout de même car ce dernier ne sélectionne pas les Shapes images, c'est plus propre et moins chronophage au niveau d'exécution bien que là ça ne se sent pas trop !

Tenez nous au courant quant à la proposition de patrickT

@ bientôt

LouReeD

Bonsoir Neo62950, LouReeD, PatrickT,

Il semblerait que l'image selon le message posté Mercredi à 18h07 s'est formatée à la hauteur de la ligne de la cellule.

Contrôler que la propriété de déplacement de cette image (Voir Format de l'image, Propriétés) ne soit pas différente de:

Déplacer sans dimensionner avec les cellules.

Pour ma part, j'ai l'habitude lorsqu'on a affaire à un nombre d'images qui sera fixe et n'évolue pas dans le fichier (Exemple: un jeu de 36 cartes) de nommer les cartes par un nom les décrivant suivi de son hauteur et de sa largeur. Comme DT_90_74,85149 pour une Dame de Trèfle. Ainsi avec le code ci-dessous.

Sub TailleImg()
'L'image au format d'origine est haute de 90 et large de 74,85149
Nom = Application.Caller: Taille = Split(Nom, "_")
Larg = CDbl(Taille(1)): Haut = CDbl(Taille(2))
With ActiveSheet
ActHaut = .Shapes(Nom).Height
.Shapes(Nom).Height = IIf(ActHaut < Haut * 1.9, Haut * 2, Haut)
.Shapes(Nom).Width = IIf(ActHaut < Haut * 1.9, Larg * 2, Larg)
End With
End Sub

L'image originale étant au format le plus petit.

image

Elle sera ensuite au clic gauche au format double

image

Et reviendras par un nouveau clic à son format original.

Rechercher des sujets similaires à "prend mes images"