Insérer une image sur un objet [Résolu]

Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
- - Dernière réponse : chonburi
Messages postés
11
Date d'inscription
mardi 15 janvier 2008
Dernière intervention
16 mai 2011
- 20 mars 2009 à 09:45
Bonjour,
j'aimerais savoir comment on peut inserer une image sur un commandbutton
si quelqu'un à une idée je suis preneur.

@+

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
3
Merci
Set CommandButton1.Picture = LoadPicture("C:\image1.jpg")

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
3
Merci
Exact renfield, VBA gère directement le style graphical !

Pour enlever l'image :
Set CommandButton1.Picture = Nothing

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
voir sa propriété Picture ...

tout simplement
Commenter la réponse de Renfield
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
108
0
Merci
Ne pas oublier de mettre le style du bouton à Graphical par contre !
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
pas en VBA, DarkSidious, juste besoin de spécifier la Picture

(+possibilité de jouer avec le PicturePosition)
Commenter la réponse de Renfield
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
Bonjour,
désolé de ne pas avoir préciser mais je voudrais le faire de manière "automatique" du genre

image=insert.picture (C: image1.jpg)
CommandButton1.Picture = image

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
Merci ca marche, et par contre si je veux l'enlever existe t-il
Set CommandButton1.Picture = UnloadPicture("C:\image1.jpg")

Merci
@+
Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
Par contre, je n'arrive pas à utiliser cette comande dans un module (peut on le faire?)

Dim CommandButton1 As CommandButton
Set CommandButton1.Picture = LoadPicture("C:\image1.jpg")

il me dis qu'il na connait pas CommandButton1 alors que je l'ai déclaré ???
Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
l'erreur vient du fait qu'il faudrait, dans l'absolu, faire ce genre de choses...

Dim CommandButton1 As CommandButton
Set CommandButton1 = New CommandButton
Set CommandButton1.Picture = LoadPicture("C:\image1.jpg")

je ne comprend pas pourquoi tu cherches a créer ce bouton dynamiquement....
Commenter la réponse de Renfield
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
En fait j'utilise une webcam dont je récupére l'image toute les seconde dans image1
et en fait je voudrais insérer toute les seconde cette image dans le CommandButton, pour avoir seconde par seconde la visualisation de ma webcam

Donc comme j'utilisa la fonction Sleep, apparement je ne peu faire cela que dans un module

En fait, j'en suis arivée à l'idée du command bouton car au debut j'inserais mon image toute les seconde avec :


Sub Commencer()
Temporisation
End Sub
Sub Temporisation()
Application.OnTime Now + TimeValue("00:00:01"), "Macro1"
End Sub
Sub Temporisation2()
Application.OnTime Now + TimeValue("00:00:01"), "efface"
End Sub
Sub Macro1()


ActiveSheet.Pictures.Insert( _
        "C:\Documents and Settings\steven thomas\My Documents\My Pictures\image1.jpg" _
        ).Select


       
 Temporisation
 Sleep 200
 Temporisation2
 
End Sub
Sub efface()
    Dim P As Object
   For Each P In ActiveSheet.Pictures
       If TypeOf P Is Picture Then Call P.Delete
   Next
End Sub

Mais le PB c'est que l'image ce met sur la cellule selectionnée alors que je voudrait qu'elle s'insert "automatiquement en haut à gauche de ma feuille" et que je puisse utyiliser le reste de ma feuille librement

Voilà c'est un peu compliquer, mais j'étudie ses pistes

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
21
0
Merci
Bonjour RenField,


 


je crois qu'il ne crée pas dynamiquement mais souhaite simplement définir l'image depuis un module, ce qu'il peut faire en se référant à son bouton de commande et à la Form qui le contient.


genre, donc :


UserForm1.Commandbutton1.picture = .... etc...
Commenter la réponse de jmfmarques
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
En fait aprés mon explication j'aimerais un truc du genre :


Sub Macro1()

Set CommandButton1.Picture=LoadPicture("C:image1.jpg")

 Temporisation
End Sub

Ce qui me mettrais l'image toute les seconde dans mon CommandButton

à moins que j'arrive à inserer mon image en haut à gauche de ma feuille (position(0,0)) avec


ActiveSheet.Pictures.Insert( _
        "C:\Documents and Settings\steven thomas\My Documents\My Pictures\image1.jpg" _
        ).Select




sans que cela n'ai d'impact sur le reste de la feuille

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
utilises un controle Image, plutot qu'un CommandButton

et utilises la syntaxe proposée par jmfmarques, que je salue au passage
Commenter la réponse de Renfield
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
Désolé ca va vous paraitre bête....
mais ou se trouve un controle image dans Excel, j'ai jamais entendu parler de  cela...

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
21
0
Merci
http://silkyroad.developpez.com/VBA/ControlesUserForm/


 


Et un bonjour à Michel.
Commenter la réponse de jmfmarques
Messages postés
113
Date d'inscription
mercredi 9 mai 2007
Dernière intervention
28 août 2007
0
Merci
Merci pour le lien, je devrais pouvoir m'en sortir, merci à tous de votre aide et bonne journée

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
Commenter la réponse de taj88
Messages postés
11
Date d'inscription
mardi 15 janvier 2008
Dernière intervention
16 mai 2011
0
Merci
Bonjour,
Je crois que c'est mon premier post sur ce forum alors je me présente, je vis en Thaïlande où je travaille comme principal d'un collège, j'ai 57 ans et suis autodidacte au niveau VBA. Je me suis mis à programmer en VBA dès la sortie d'Excel 5, mais pas de façon continue.
C'est un autre problème sur le même sujet "Picture"qui m'amène, J'ai une feuille Excel appellé "Form" qui contient plusieurs images (des photos d'élèves), le code suivant génère un message d'erreur:
Sub TotoTriesToReset()
    Dim obj
    For Each obj In Worksheets("Form").OLEObjects
         obj.Object.Picture = Nothing
    Next
End Sub
Il s'agit d'une petite routine que j'ai écrite pour tenter de trouver l'origine de l'erreur, il n'y a bien sûr aucun autre type d'objet sur cette feuille.
Si j'essaye obj.Object.Picture = LoadPicture(), j'ai le même message d'erreur:
"Run-time error '-2147417848 (80010108)
Method 'Picture' of Object 'IImage' failed"
le code complet qui ,si je me souviens bien, fonctionnait, est le suivant:
Sub Reinitialise()
Dim b%
Dim ws as Worksheet
Dim strNameSheet$
Dim s
   b = 1
    For Each ws In ThisWorkbook.Sheets
        strNameSheet = ws.Name
        If Left(strNameSheet, 5) = "Form" Then
            If Len(strNameSheet) > 5 Then
                ws.Delete 'deletes the copies of "Form : Form(2), Form(3) etc."
            End If
        End If
    Next
    With Sheets("Form")
        .Range("C1:C32").ClearContents
        .Range("G1:G32").ClearContents
   For Each s In .Shapes
        .OLEObjects(b).Object.PictureSizeMode = fmPictureSizeModeStretch
        .OLEObjects(b).Object.Picture = LoadPicture() 'unload the picture
       b = b + 1
    Next
    End With
End Sub
Ce qui est curieux c'est qu'après avoir lancé le programme et bug, la feuille propriété de l'image indique
 Picture  (None)
alors que l'image est toujours présente...
Quelqu'un pourrait-il m'aider à me sentir un peu moins C...[javascript:Insert_Emoticon('/imgs2/smile_blush.gif'); ]
Merci
Commenter la réponse de chonburi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.