Excel_Cursor_Picture

Résolu
TeRRanCeLvBa Messages postés 4 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 2 juin 2006 - 29 mai 2006 à 19:15
TeRRanCeLvBa Messages postés 4 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 2 juin 2006 - 2 juin 2006 à 18:26
Bonjour !

Je travail sur un fichier excel qui rassemble diverse informations et entre autre des photos.
Celles-ci étant très grandes, je cherche à les insérer manuellement, et les réduire sur ma feuille de façon à ce qu'elles ne prennent pas de place.
Cependant j'ai besoin de pouvoir les agrandir momentanément grâce à une opération simple.
J'ai d'abord pensé à un bouton "Agrandir/Diminuer" mais j'ai énormément de photos à gérer alors s'il faut un bouton pour chacunes d'entre elles....  bof bof

Est-ce que quelqu'un aurait une solution à mon problème?
La solution parfaite permettrai d'agrandir la photo lorsque le pointeur de la souris est dessus.
Cela dit, je suis ouvert à d'autre propostition, comme un click/double click sur la photo etc...

Merci d'avance

ps: J'ai des bases en VBA mais je ne maîtrise pas bien les évenements...

8 réponses

cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
2 juin 2006 à 16:13
affecter toutes tes images à la macro suivantes:

Sub Macro1()
'
' Macro1 Macro
'
Const hauteur_maxi = 600 'hauteur de l'image agrandie
Const hauteur_mini = 60 'hauteur de l'image réduite
Dim image_appelante As String
image_appelante = Application.Caller
With ActiveSheet.Shapes(image_appelante)
If .Height >= hauteur_maxi Then 'aspect 100%
.LockAspectRatio = msoTrue
.Height = hauteur_mini
Else
.LockAspectRatio = msoTrue
.Height = hauteur_maxi
End If
.ZOrder msoBringToFront
End With
End Sub
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 mai 2006 à 08:04
Bonjour

Avec l'évenement MouseMove, tu peux savoir si la sourie est sur ta picture box.
Unf fois cet evenement détecté, tu réduit toutes les autres et aggrandis celle sous le curseur.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
TeRRanCeLvBa Messages postés 4 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 2 juin 2006
30 mai 2006 à 17:25
Bonjour à toi NHenry.

Avant tout merci pour ta réponse.
Malgré tout je n'arrive pas à m'en sortir. Comment puis-je détecter l'image sous mon curseur? Je veux dire :
Par exemple j'ai trois images A, B et C. Comment déterminer sur laquelle est mon curseur ? (Pour une cellule on utilise Activcell. pour une image ...... ?)

Aurais-tu un bout de code à me proposer ? Disons avec une image nommé "Image1". Comment j'écris tout ça dans mon évenement ?

Merci d'avance..
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
31 mai 2006 à 08:31
Bonjour

Une piste (sans rien pour tester) :

dans ta userform :
private mActivPicture as long

private Sub Form_Load()
    mActivePicture=0
End Sub

Private Sub Picture1_MouseMove(...)

    mActivePicture=1

end sub

Private Sub Picture2_MouseMove(...)

    mActivePicture=2

end sub

...

Et dans mActivePicture tu as la dernière pucturebox sur laquel est passée la sourie.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
2 juin 2006 à 11:21
bonjour,
si j'ai bien compris
TeRRanCeLvBa travaille sur un fichier EXCEL en VBA
et
NHenry lui propose une réponse en VB

Si tel est le cas, la solution de NHenry ne peut fonctionner.
J'ai une solution si quelqu'un la désire encore
0
TeRRanCeLvBa Messages postés 4 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 2 juin 2006
2 juin 2006 à 12:57
Je n'arrive pas en effet à faire fonctionner ce code.


Il faut que mes image soit dans des picturebox ? Moi je voudrais qu'elle soit apparente sur ma feuille tout le temps, en miniature et seulement lorsque le curseur est sur l'une d'entre elle alors cette dernière s'agrandi.


"dans ta userform :
private mActivPicture as long"
Quelle userform ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
2 juin 2006 à 13:15
Bonjour

En effet, j'ai pensé que c'était posé sur un UserForm.
Il faudrait utiliser OLE, et là je n'ai rien pour tester.
Sinon, la solution par un clic est sans doute plus simple.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
TeRRanCeLvBa Messages postés 4 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 2 juin 2006
2 juin 2006 à 18:26
Merci beaucoup pour votre aide !
Cela fonctionne parfaitement.
0
Rejoignez-nous