Userform et PNG

Bonjour,

Comme vous l'avez peut-être constaté récemment je débute dans le VBA. J'ai cru comprendre que les PNG ne sont pas compatibles avec les userforms.

Je souhaite cependant intégrer la petite animation que j'ai réalisé dans un userform. Le problème est qu'il me faut des images gérant la transparence ?!

Comment faire ?

Je vous laisse mon fichier ! C'est cadeau pour le code

Cordialement.

35cadenas.xlsm (90.69 Ko)

Bonjour,

pourquoi pas un gif ?

Il gère la transparence, et même l'animation.

eric

Je te remercie eriiic

Maintenant comment sélectionner une image dans le userform ? J'ai essayé de remplacer ça :

Sheets("Feuil1").Shapes("Cadenas_fermé").Left = 390

Par ça :

Me.Shapes("Cadenas_fermé").Left = 390

Mais ça ne fonctionne pas !

En fait, comment adapter le code du fichier envoyé précédemment à un userform ?

Bonjour,

tu gagnerais ton temps en commençant toujours par une recherche sur google...

Je ne pense pas que ton image s'appelle ainsi dans l'UF.

nom_de_ton_objet.top =390

eric

J'ai cherché sur Google, mais je ne trouve rien de bien compréhensible pour moi.

Maintenant j'obtiens "Erreur de compilation : Fonction ou variable attendue".

Voici le code qui me surligne la ligne suivante :

                Test.Rotation = 0 + i

Code complet :

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

Range(Array("Cadenas_fermé", "Clé")).Select
Selection.ShapeRange.Group.Select
Selection.Name = "TEST"

            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
                Test.Rotation = 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
                        Test.Rotation = 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
                        Test.Rotation = 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
                Test.Rotation = 0 - i
            Next

Test.Select
Selection.ShapeRange.Ungroup.Select
Cadenas_fermé.Visible = False
Cadenas_ouvert.Visible = True
Clé.Visible = False

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

    Unload Me

C'est quoi Test ?

C'est quoi .Rotation ?

Rien dans ton code ne l'indique comment veux-tu avoir une réponse ? Il faut être logique...

C'est le regroupement des deux images. Je l'ai appelé TEST, mais quand j'écris Test.Rotation, il perd ses majuscules.

Je ne comprends rien, et je débute, il ne faut pas me lancer la pierre. J'ai passé toute la matinée à savoir comment faire avec des recherches Google, il ne faut pas dire que je n'ai pas cherché. J'apprends le VBA sur le tas !!!!!

Donc bref, mon code il fonctionnait très bien si on reprend mon premier post, il n'y a qu'à voir le fichier que j'ai joint.

Du coup, je ne comprends pas pourquoi il y a la moitié des lignes qui déconne quand je veux appliquer cette animation sur un userform !

Les objets sur feuille ne se manipulent pas de la même façon que dans un userform tout simplement.

Et je n'y suis pour rien si tu débutes...

Visiblement il ne connait pas TEST. Ca doit être un Shape ou un ShapeRange.

Mais comme il est toujours sélectionné tu devrais pouvoir continuer avec Selection.xxx

Reste à voir si .Rotation fonctionne dans un UF (?)

Vu que je pratique très peu ce style de gymnastique démarre un nouveau topic en cas de difficulté persistante.

eric

Rechercher des sujets similaires à "userform png"