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

taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 09:41 - Dernière réponse : chonburi 11 Messages postés mardi 15 janvier 2008Date d'inscription 16 mai 2011 Dernière intervention
- 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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 11 juil. 2007 à 10:13
3
Merci
Set CommandButton1.Picture = LoadPicture("C:\image1.jpg")

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 11 juil. 2007 à 10:27
3
Merci
Exact renfield, VBA gère directement le style graphical !

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

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 11 juil. 2007 à 09:46
0
Merci
voir sa propriété Picture ...

tout simplement
Commenter la réponse de Renfield
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 11 juil. 2007 à 09:56
0
Merci
Ne pas oublier de mettre le style du bouton à Graphical par contre !
Commenter la réponse de cs_DARKSIDIOUS
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 11 juil. 2007 à 09:59
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
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 10:08
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
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 10:22
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
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 10:41
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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 11 juil. 2007 à 10:50
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
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 10:59
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
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 11 juil. 2007 à 11:02
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
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 11:12
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
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 11 juil. 2007 à 11:15
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
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 11:22
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
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 11 juil. 2007 à 11:25
0
Merci
http://silkyroad.developpez.com/VBA/ControlesUserForm/


 


Et un bonjour à Michel.
Commenter la réponse de jmfmarques
taj88 113 Messages postés mercredi 9 mai 2007Date d'inscription 28 août 2007 Dernière intervention - 11 juil. 2007 à 11:32
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
chonburi 11 Messages postés mardi 15 janvier 2008Date d'inscription 16 mai 2011 Dernière intervention - 20 mars 2009 à 09:45
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.