Zoomer une image puis la dézoomer [résolu]

Zoomer une image puis la dézoomer [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 11-10-2005 à 09:50:17    

Bonjour à tous, :hello:  
 
Je suis en stage et je suis entrain de créer une bibliothèque d'outils sous excel 97. Je voudrais afficher une image réduite de l'outil puis lorsqu'on clique dessus, celle-ci s'agrandi pour la voir en détail puis un second clique la ferait revenir en position initial.
J'arrive à agrandire l'image mais le second clique me zoom l'image encore plus. :fou:  
 
Merci de votre aide :jap:  
Salut


Message édité par souz le 19-10-2005 à 16:21:55
Reply

Marsh Posté le 11-10-2005 à 09:50:17   

Reply

Marsh Posté le 11-10-2005 à 10:44:04    

Salut Souz,
Si tu donnes le code que tu as utilisé pour zoomer il sera plus facile de t'indiquer comment le modifier :)
bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 11-10-2005 à 12:01:40    

Salutation WaTaShi  :jap:  
 
Merci de t'interresser à mon problème.
En fait j'utilise la fonction enregistrer une macro dans excel. Tout d'abord j'enregistre l'agrandissement de l'image puis je lui affecte cette macro (activable car un clic). Puis je modifie la macro, voilà ce que ça donne :
 
Sub Macro1()
    ActiveSheet.Shapes("Picture 24" ).Select
    Selection.ShapeRange.ScaleWidth 5#, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 5#, msoFalse, msoScaleFromBottomRight
 
'J'ai pensé insérer un bloc If, c'est à dire si on clique sur une autre cellule ou au mieu en recliquant sur l'image, celle ci reviendrai dans sa position initial
 
   If Range("A1" ).Select Then
        ActiveSheet.Shapes("Picture 24" ).Select
        Selection.ShapeRange.ScaleWidth 0.3, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 0.3, msoFalse, msoScaleFromBottomRight
    End If
 
End Sub
 
Voilà, en fait j'utilise principalement l'enregistreur de macro puis je les modifie avec le peu de connaissance que j'ai en matière de prog. Donc si tu peux me donner un ptit coup de pouce ce serait super pour la continuité de mon stage.
 
Merci  ;)

Reply

Marsh Posté le 11-10-2005 à 14:56:45    

Salut Souz

souz a écrit :

 
Sub Macro1()
    ActiveSheet.Shapes("Picture 24" ).Select
    Selection.ShapeRange.ScaleWidth 5#, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 5#, msoFalse, msoScaleFromBottomRight

Ton agrandissement est fait en %,or quand tu prends une image et que tu l'agrandi ou la réduit comme ça ton pourcentage retourne obligatoirement à 100. tu ne peux donc pas te fier au ScaleWidth ou au ScaleHeight pour dire réduit si c'est agrandi. il faut te baser sur les tailles réelles des images pour définir un agrandissemnt ou une réduction :

Code :
  1. ActiveSheet.Shapes("Picture 24" ).Select
  2. If Selection.Height = 150 Then Selection.Height = 30 Else Selection.Height = 150
  3. If Selection.Width = 150 Then Selection.Width = 30 Else Selection.Width = 150


pour connaître tes tailles de départ tu peux utiliser :

Code :
  1. ActiveSheet.Shapes("Picture 24" ).Select
  2. MsgBox ("Height : " & Selection.Height & "   /    Width : " & Selection.Width)


Par contre tu as marqué que tu es en excel 97, ces fonctions devraient marcher, enfin à ce que j'ai lu ici :http://msdn.microsoft.com/archive/ [...] eb/010.asp
je n'ai pas 97 pour tester (juste 2002)
 
Si la macro bloque indiques le type d'erreur et l'endroit.


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed