OVH Cloud OVH Cloud

image dans userform

8 réponses
Avatar
jieme1
bonjour,

comment integrer un graphe (ou une image) dans un userform (et conserver la
mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a partir de la feuille de
calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée

8 réponses

Avatar
Misange
Je suis surprise de ce que tu dis sur la définition mauvaise...
As tu essayé les différentes propositions ?
Regarde par exemple le tutoriel sur les userforms. J'y integre une photo
de terrine de lapin qui reste en tous cas chez moi fort apétissante
(enfin pas à 9h du mat).
Quelle est la taille de ton graphique ?

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 13/10/2004 09:32:
bonjour,

comment integrer un graphe (ou une image) dans un userform (et conserver la
mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a partir de la feuille de
calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée




Avatar
Modeste
Bonsour ®,
un alternative que je n'ai pas encore réussi à réaliser
via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou bien
utiliser l'icone appareil photographique)
selectionner l'image puis dans la barre de formule saisir
la formule par exemple
þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique
souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp, jpeg
etc...),
l'actualisation est instantanée et la mise a jour
permanente
la qualité de la résolution dépend des proportions
dimensionnelles

;o)))
@+


-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un
userform (et conserver la

mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a
partir de la feuille de

calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.



Avatar
Misange
Salut GeeDee

Ca marche tout à fait dans un userform, sans passer par une boite xl5
mais en indiquant simplement dans la propriété picture l'adresse de la
plage contenant le graphique (voir classeur exemple sur excelabo)

Dans le userform, ajoute un contrôle image
Dans la feuille excel, crées ton graphique.
Copie la plage de cellules qui englobe ton graphique
Retourne dans le userform et sélectionne le contrôle image.
Dans la fenêtre propriétés, tu en as une nommée picture qui pour le
moment a comme
valeur "(aucun)".
A la souris, sélectionne ce texte (aucun). Lorsqu'il est grisé, colle
(ctrl+V) ta plage de
cellules. La valeur affichée devient "(image bitmap)".
Tu peux jouer sur la propriété pictureSizeMode pour modifier l'apparence
de ton image.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 13:08:
Bonsour ®,
un alternative que je n'ai pas encore réussi à réaliser
via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou bien
utiliser l'icone appareil photographique)
selectionner l'image puis dans la barre de formule saisir
la formule par exemple
þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique
souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp, jpeg
etc...),
l'actualisation est instantanée et la mise a jour
permanente
la qualité de la résolution dépend des proportions
dimensionnelles

;o)))
@+



-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un


userform (et conserver la

mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a


partir de la feuille de

calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.






Avatar
jieme1
Merci pour vos conseils

Effectivement le couper-coller "tout bête" donne un meilleur resultat pour
une plage de cellules à integrer et je pense qu'il faudrait avoir exactement
la meme geométrie des objets source et destination (j'ai un container de
108*282 points dans l'userform et j'ai un tableau de 8 colonnes de 8
(points?) par 9 lignres de 15 (points?)).
pour ce qui est des graphes les chiffres et les caractéres ne sont pas nets
(ceci est peut être moins sensible sur une photo..)

bonne journée





"Misange" a écrit dans le message de news:

Salut GeeDee

Ca marche tout à fait dans un userform, sans passer par une boite xl5 mais
en indiquant simplement dans la propriété picture l'adresse de la plage
contenant le graphique (voir classeur exemple sur excelabo)

Dans le userform, ajoute un contrôle image
Dans la feuille excel, crées ton graphique.
Copie la plage de cellules qui englobe ton graphique
Retourne dans le userform et sélectionne le contrôle image.
Dans la fenêtre propriétés, tu en as une nommée picture qui pour le moment
a comme
valeur "(aucun)".
A la souris, sélectionne ce texte (aucun). Lorsqu'il est grisé, colle
(ctrl+V) ta plage de
cellules. La valeur affichée devient "(image bitmap)".
Tu peux jouer sur la propriété pictureSizeMode pour modifier l'apparence
de ton image.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 13:08:
Bonsour ®,
un alternative que je n'ai pas encore réussi à réaliser via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou bien utiliser l'icone
appareil photographique)
selectionner l'image puis dans la barre de formule saisir la formule par
exemple þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp, jpeg etc...),
l'actualisation est instantanée et la mise a jour permanente
la qualité de la résolution dépend des proportions dimensionnelles ;o)))
@+



-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un


userform (et conserver la
mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a


partir de la feuille de
calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.








Avatar
Misange
Quelque soit ta méthode, si tu déformes une image tu la dégrades. En
particulier si tu ne fais pas une déformation homothétique. Les
caractères ne supportent en particulier pas bien du tout ces
traitements. Commence donc dans ta feuille excel par mettre en forme ton
graphique (sur une copie de l'original éventuellement) de telle sorte
que tu ne modifies ensuite plus du tout ses dimensions pour qu'elles
s'adaptent dans ton userform.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 14:32:
Merci pour vos conseils

Effectivement le couper-coller "tout bête" donne un meilleur resultat pour
une plage de cellules à integrer et je pense qu'il faudrait avoir exactement
la meme geométrie des objets source et destination (j'ai un container de
108*282 points dans l'userform et j'ai un tableau de 8 colonnes de 8
(points?) par 9 lignres de 15 (points?)).
pour ce qui est des graphes les chiffres et les caractéres ne sont pas nets
(ceci est peut être moins sensible sur une photo..)

bonne journée





"Misange" a écrit dans le message de news:


Salut GeeDee

Ca marche tout à fait dans un userform, sans passer par une boite xl5 mais
en indiquant simplement dans la propriété picture l'adresse de la plage
contenant le graphique (voir classeur exemple sur excelabo)

Dans le userform, ajoute un contrôle image
Dans la feuille excel, crées ton graphique.
Copie la plage de cellules qui englobe ton graphique
Retourne dans le userform et sélectionne le contrôle image.
Dans la fenêtre propriétés, tu en as une nommée picture qui pour le moment
a comme
valeur "(aucun)".
A la souris, sélectionne ce texte (aucun). Lorsqu'il est grisé, colle
(ctrl+V) ta plage de
cellules. La valeur affichée devient "(image bitmap)".
Tu peux jouer sur la propriété pictureSizeMode pour modifier l'apparence
de ton image.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 13:08:

Bonsour ®,
un alternative que je n'ai pas encore réussi à réaliser via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou bien utiliser l'icone
appareil photographique)
selectionner l'image puis dans la barre de formule saisir la formule par
exemple þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp, jpeg etc...),
l'actualisation est instantanée et la mise a jour permanente
la qualité de la résolution dépend des proportions dimensionnelles ;o)))
@+




-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un


userform (et conserver la

mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a


partir de la feuille de

calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.











Avatar
Modeste
Bonsour ® Flo !!!
J'entends bien, tu penses bien que depuis longtemps
coller une image je sais faire !!

mon probleme il est là :
il n'y a pas d'actualisation, l'image bitmap est
statique !!
sauf bien sur à refaire par macro toute la maneuvre à
l'init du userform ;o)))
voir l'exemple :
http://cjoint.com/?knscZdH51u
;-x
@+

-----Message d'origine-----
Salut GeeDee

Ca marche tout à fait dans un userform, sans passer par
une boite xl5

mais en indiquant simplement dans la propriété picture
l'adresse de la

plage contenant le graphique (voir classeur exemple sur
excelabo)


Dans le userform, ajoute un contrôle image
Dans la feuille excel, crées ton graphique.
Copie la plage de cellules qui englobe ton graphique
Retourne dans le userform et sélectionne le contrôle
image.

Dans la fenêtre propriétés, tu en as une nommée picture
qui pour le

moment a comme
valeur "(aucun)".
A la souris, sélectionne ce texte (aucun). Lorsqu'il est
grisé, colle

(ctrl+V) ta plage de
cellules. La valeur affichée devient "(image bitmap)".
Tu peux jouer sur la propriété pictureSizeMode pour
modifier l'apparence

de ton image.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 13:08:
Bonsour ®,
un alternative que je n'ai pas encore réussi à
réaliser


via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou
bien


utiliser l'icone appareil photographique)
selectionner l'image puis dans la barre de formule
saisir


la formule par exemple
þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique
souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp,
jpeg


etc...),
l'actualisation est instantanée et la mise a jour
permanente
la qualité de la résolution dépend des proportions
dimensionnelles

;o)))
@+



-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un


userform (et conserver la

mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a


partir de la feuille de

calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.


.







Avatar
Michel Pierron
Bonjour Modeste;
Dans le module UserForm:

Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(8) As Byte
End Type

Private Type PICTDESC
cbSize As Long
picType As Long
hImage As Long
End Type

Private Declare Function OpenClipboard& Lib "user32" (ByVal hwnd As Long)
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function GetClipboardData& Lib "user32" (ByVal wFormat%)
Private Declare Function CloseClipboard& Lib "user32" ()
Private Declare Function CopyImage& Lib "user32" (ByVal handle&, ByVal un1&
_
, ByVal n1&, ByVal n2&, ByVal un2&)
Private Declare Function IIDFromString Lib "ole32" (ByVal lpsz As String _
, ByRef lpiid As GUID) As Long
Private Declare Function OleCreatePictureIndirect Lib "olepro32" (pPictDesc
_
As PICTDESC, ByRef riid As GUID, ByVal fOwn As Long _
, ByRef ppvObj As IPicture) As Long

Private Sub CommandButton1_Click()
ImageToMePicture
End Sub

Private Sub UserForm_Initialize()
ImageToMePicture
End Sub

Private Sub ImageToMePicture()
actualisation
Range("B3:E14").CopyPicture xlScreen, xlBitmap
Dim hCopy&: OpenClipboard 0&
hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H4)
CloseClipboard: If hCopy = 0 Then Exit Sub
Const IPictureIID = "{7BF80981-BF32-101A-8BBB-00AA00300CAB}"
Dim iPic As IPicture, tIID As GUID, tPICTDEST As PICTDESC
If IIDFromString(StrConv(IPictureIID, vbUnicode), tIID) Then Exit Sub
With tPICTDEST
.cbSize = Len(tPICTDEST)
.picType = 1
.hImage = hCopy
End With
If OleCreatePictureIndirect(tPICTDEST, tIID, 1, iPic) Then Exit Sub
Me.Image1.Picture = LoadPicture("")
Me.Image1.Picture = iPic
Set iPic = Nothing
ClearClipboard
End Sub

Private Sub ClearClipboard()
OpenClipboard 0&
EmptyClipboard
CloseClipboard
End Sub

*** Module standard:
Sub Bouton_Userform()
UserForm1.Show
End Sub

Sub actualisation()
Application.Calculate
ActiveSheet.Ovals(1).Interior.ColorIndex = [C4]
End Sub

MP

"Modeste" a écrit dans le message de
news:0b9601c4b13e$8f727c30$
Bonsour ® Flo !!!
J'entends bien, tu penses bien que depuis longtemps
coller une image je sais faire !!

mon probleme il est là :
il n'y a pas d'actualisation, l'image bitmap est
statique !!
sauf bien sur à refaire par macro toute la maneuvre à
l'init du userform ;o)))
voir l'exemple :
http://cjoint.com/?knscZdH51u
;-x
@+

-----Message d'origine-----
Salut GeeDee

Ca marche tout à fait dans un userform, sans passer par
une boite xl5

mais en indiquant simplement dans la propriété picture
l'adresse de la

plage contenant le graphique (voir classeur exemple sur
excelabo)


Dans le userform, ajoute un contrôle image
Dans la feuille excel, crées ton graphique.
Copie la plage de cellules qui englobe ton graphique
Retourne dans le userform et sélectionne le contrôle
image.

Dans la fenêtre propriétés, tu en as une nommée picture
qui pour le

moment a comme
valeur "(aucun)".
A la souris, sélectionne ce texte (aucun). Lorsqu'il est
grisé, colle

(ctrl+V) ta plage de
cellules. La valeur affichée devient "(image bitmap)".
Tu peux jouer sur la propriété pictureSizeMode pour
modifier l'apparence

de ton image.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 13:08:
Bonsour ®,
un alternative que je n'ai pas encore réussi à
réaliser


via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou
bien


utiliser l'icone appareil photographique)
selectionner l'image puis dans la barre de formule
saisir


la formule par exemple
þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique
souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp,
jpeg


etc...),
l'actualisation est instantanée et la mise a jour
permanente
la qualité de la résolution dépend des proportions
dimensionnelles

;o)))
@+



-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un


userform (et conserver la

mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a


partir de la feuille de

calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.


.







Avatar
Modeste
Bonsour ® à tous,
un grand merci à Michel.Pierron
suivre le lien : http://cjoint.com/?koqJqYaZoC

un classeur exemple d'image dynamique
dans un userForm à comparer à une boite de dialogue
Excel 5.0

mise à disposition également sur Excelabo.net

@+
c'est formidable MPFE !!!!

-----Message d'origine-----
Bonjour Modeste;
Dans le module UserForm:

Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(8) As Byte
End Type

Private Type PICTDESC
cbSize As Long
picType As Long
hImage As Long
End Type

Private Declare Function OpenClipboard& Lib "user32"
(ByVal hwnd As Long)

Private Declare Function EmptyClipboard Lib "user32" ()
As Long

Private Declare Function GetClipboardData& Lib "user32"
(ByVal wFormat%)

Private Declare Function CloseClipboard& Lib "user32" ()
Private Declare Function CopyImage& Lib "user32" (ByVal
handle&, ByVal un1&

_
, ByVal n1&, ByVal n2&, ByVal un2&)
Private Declare Function IIDFromString Lib "ole32"
(ByVal lpsz As String _

, ByRef lpiid As GUID) As Long
Private Declare Function OleCreatePictureIndirect
Lib "olepro32" (pPictDesc

_
As PICTDESC, ByRef riid As GUID, ByVal fOwn As Long _
, ByRef ppvObj As IPicture) As Long

Private Sub CommandButton1_Click()
ImageToMePicture
End Sub

Private Sub UserForm_Initialize()
ImageToMePicture
End Sub

Private Sub ImageToMePicture()
actualisation
Range("B3:E14").CopyPicture xlScreen, xlBitmap
Dim hCopy&: OpenClipboard 0&
hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H4)
CloseClipboard: If hCopy = 0 Then Exit Sub
Const IPictureIID = "{7BF80981-BF32-101A-8BBB-
00AA00300CAB}"

Dim iPic As IPicture, tIID As GUID, tPICTDEST As PICTDESC
If IIDFromString(StrConv(IPictureIID, vbUnicode), tIID)
Then Exit Sub

With tPICTDEST
..cbSize = Len(tPICTDEST)
..picType = 1
..hImage = hCopy
End With
If OleCreatePictureIndirect(tPICTDEST, tIID, 1, iPic)
Then Exit Sub

Me.Image1.Picture = LoadPicture("")
Me.Image1.Picture = iPic
Set iPic = Nothing
ClearClipboard
End Sub

Private Sub ClearClipboard()
OpenClipboard 0&
EmptyClipboard
CloseClipboard
End Sub

*** Module standard:
Sub Bouton_Userform()
UserForm1.Show
End Sub

Sub actualisation()
Application.Calculate
ActiveSheet.Ovals(1).Interior.ColorIndex = [C4]
End Sub

MP

"Modeste" a écrit
dans le message de

news:0b9601c4b13e$8f727c30$
Bonsour ® Flo !!!
J'entends bien, tu penses bien que depuis longtemps
coller une image je sais faire !!

mon probleme il est là :
il n'y a pas d'actualisation, l'image bitmap est
statique !!
sauf bien sur à refaire par macro toute la maneuvre à
l'init du userform ;o)))
voir l'exemple :
http://cjoint.com/?knscZdH51u
;-x
@+

-----Message d'origine-----
Salut GeeDee

Ca marche tout à fait dans un userform, sans passer par
une boite xl5

mais en indiquant simplement dans la propriété picture
l'adresse de la

plage contenant le graphique (voir classeur exemple sur
excelabo)


Dans le userform, ajoute un contrôle image
Dans la feuille excel, crées ton graphique.
Copie la plage de cellules qui englobe ton graphique
Retourne dans le userform et sélectionne le contrôle
image.

Dans la fenêtre propriétés, tu en as une nommée picture
qui pour le

moment a comme
valeur "(aucun)".
A la souris, sélectionne ce texte (aucun). Lorsqu'il est
grisé, colle

(ctrl+V) ta plage de
cellules. La valeur affichée devient "(image bitmap)".
Tu peux jouer sur la propriété pictureSizeMode pour
modifier l'apparence

de ton image.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 13/10/2004 13:08:
Bonsour ®,
un alternative que je n'ai pas encore réussi à
réaliser


via un Userform :

utiliser un Boite de Dialogue EXCEL 5.0
y coller une image (coller à partir d'un copier ou
bien


utiliser l'icone appareil photographique)
selectionner l'image puis dans la barre de formule
saisir


la formule par exemple
þuil1!$A$1:$F$17
qui correspond à la plage recouverte par le graphique
souhaité

il n'y a pas de sauvegarde à faire(gif ou autre bmp,
jpeg


etc...),
l'actualisation est instantanée et la mise a jour
permanente
la qualité de la résolution dépend des proportions
dimensionnelles

;o)))
@+



-----Message d'origine-----
bonjour,

comment integrer un graphe (ou une image) dans un


userform (et conserver la

mise a jour permanente) avec une qualité graphique
suffisante?
J'utilise .export (il y a un exemple dans exelabo) a


partir de la feuille de

calcul mais la definition est vraiment mauvaise.

qq'un a t-il une idée ?

merci et bonne journée


.


.






.