Rotation image dans un userform

Bonjour à tous,

Je cherche à faire fonctionner une animation dans un userform.

L'animation fonctionne correctement sur une feuille, voir le fichier joint Cadenas.

Mais je ne parviens pas à la faire fonctionner dans un userform. Le mouvement de la clé vers le cadenas se produit avec le code ci-dessous, mais pour faire le groupement et la rotation, ça ne fonctionne pas, et je ne sais pas comment procéder. (Attention, je suis un débutant en VBA)

Cadenas_fermé.Left = 390
Cadenas_fermé.Top = 18
Cadenas_fermé.Height = 66
Cadenas_fermé.Width = 36
Cadenas_ouvert.Left = 384
Cadenas_ouvert.Top = 6
Cadenas_ouvert.Height = 96
Cadenas_ouvert.Width = 48
Clé.Left = 396
Clé.Top = 90
Clé.Height = 48
Clé.Width = 24
Cadenas_fermé.Visible = True
Cadenas_ouvert.Visible = False
Clé.Visible = True

       secondes = 0.01

            For i = 1 To 36 Step 0.5
                timer_avant = Timer 'Variable timer_avant calée sur le Timer
                Do While Timer < timer_avant + secondes 'Permet d'attendre la durée secondes renseignée au-dessus
                    DoEvents                            'Permet d'attendre la durée secondes renseignée au-dessus
                Loop                                    'Permet d'attendre la durée secondes renseignée au-dessus
                Clé.Top = 90 - i 'Déplace la flèche par micro-modification de la position
            Next

            For i = 1 To 4
                timer_avant = Timer 'Variable timer_avant calée sur le Timer
                Do While Timer < timer_avant + secondes 'Permet d'attendre la durée secondes renseignée au-dessus
                    DoEvents                            'Permet d'attendre la durée secondes renseignée au-dessus
                Loop                                    'Permet d'attendre la durée secondes renseignée au-dessus
                Cadenas_fermé = oGdi.Rotate(0 + i)
            Next

            For j = 1 To 3

                    For i = 1 To 8
                        timer_avant = Timer 'Variable timer_avant calée sur le Timer
                        Do While Timer < timer_avant + secondes 'Permet d'attendre la durée secondes renseignée au-dessus
                            DoEvents                            'Permet d'attendre la durée secondes renseignée au-dessus
                        Loop                                    'Permet d'attendre la durée secondes renseignée au-dessus
                        Cadenas_fermé = oGdi.Rotate(0 - i)
                    Next

                    For i = 1 To 8
                        timer_avant = Timer 'Variable timer_avant calée sur le Timer
                        Do While Timer < timer_avant + secondes 'Permet d'attendre la durée secondes renseignée au-dessus
                            DoEvents                            'Permet d'attendre la durée secondes renseignée au-dessus
                        Loop                                    'Permet d'attendre la durée secondes renseignée au-dessus
                        Cadenas_fermé = oGdi.Rotate(0 + i)
                    Next
            Next

            For i = 1 To 4
                timer_avant = Timer 'Variable timer_avant calée sur le Timer
                Do While Timer < timer_avant + secondes 'Permet d'attendre la durée secondes renseignée au-dessus
                    DoEvents                            'Permet d'attendre la durée secondes renseignée au-dessus
                Loop                                    'Permet d'attendre la durée secondes renseignée au-dessus
                Cadenas_fermé = oGdi.Rotate(0 - i)
            Next

Cadenas_fermé.Visible = False
Cadenas_ouvert.Visible = True
Clé.Visible = False

Application.Wait Now + TimeValue("00:00:02") '2 secondes

    Unload Me

Pouvez-vous m'aider à faire fonctionner ma petite animation dans un userform ?

Merci

116cadenas.xlsm (90.69 Ko)

Bonjour skyliniste,

il faut utilisé une librairie graphique GDI,

je ne l'ai jamais utilisé mais j'ai lu de bon commentaire au sujet de cette classe.

Oui merci, mais je n'arrive pas à mettre ça en place ! Quelqu'un peut-il m'expliquer car je ne comprends pas tout ce qu'il faut faire pour obtenir une bête rotation ?!

HELP ME PLEASE

Toujours personne pour m'aider ?

J'ai solutionné mon problème en créant de multiples images que je fais apparaître et disparaître pour donner l’illusion d'une rotation comme je n'ai pas su retranscrire mon code qui fonctionnait bien sur une feuille à un userform.

Bonjour,

Je viens de voir ton sujet .... qui est intéressant ...

Ce serait sympa de partager ta solution avec le Forum pour tous les futurs lecteurs ...

Par avance, merci ...

Bonjour James,

C'était peut-être long, mais là au moins je savais ce que je faisais !

Enregistrement de mon image avec une rotation, d'un degré par degré via Photofiltre.

Je me retrouve avec l'image originale, 10 images de +1 à +10 degrés, et 10 images de -1 à -10 degrés.

Ensuite, comme la fonction Rotation (0 + i) en boucle ne passe pas sur l'userform, j'ai donc paramétré chacune des images à coup de .Visible = False, .Visible = True, coupé par des Sleep, et agrémenté d'une boucle pour les allers-retours.

Voilà

Salut,

Merci ... :smile :

Rechercher des sujets similaires à "rotation image userform"