OVH Cloud OVH Cloud

userform bis

3 réponses
Avatar
Stéphane
Re-bonjour

Je cherche la macro qui me permette de copier un tableau d'excel (de A1 à
d15) directment sur un Userform.

La mise en page devrait être la même (une sorte de photo)

Merci mille fois.

fornstep

3 réponses

Avatar
anonymousA
bonjour,

utiliser la méthode copypicture de l'objet range puis la copie par méthode
paste d'un chartobject crée par programmation sur la feuille en cours. Puis
ensuite utiliser la méthode chartexport de l'objet Chart de Chartobject vers
un fichier .gif dont tu donnes le nom de chemin complet.Au passage, tu
détruis l'objet ChartObject
Puis enfin utilsier la méthode LoadPicture dans le userfom initialize p.e
tel que Image1.Picture = LoadPicture(fname)

Si tes indications ne te suffisent pas pour démarrer, reviens sur le forum,
je te donnerai une solution complète mais là j'ai pas trop le temps.

A+


Re-bonjour

Je cherche la macro qui me permette de copier un tableau d'excel (de A1 à
d15) directment sur un Userform.

La mise en page devrait être la même (une sorte de photo)

Merci mille fois.

fornstep


Avatar
Stéphane
RE bonjour,

Ce'st avec plaisir que je réceptionnerais la solution complète car je ne
comprends pas trop ce que vous avez écrit

"anonymousA" wrote:

bonjour,

utiliser la méthode copypicture de l'objet range puis la copie par méthode
paste d'un chartobject crée par programmation sur la feuille en cours. Puis
ensuite utiliser la méthode chartexport de l'objet Chart de Chartobject vers
un fichier .gif dont tu donnes le nom de chemin complet.Au passage, tu
détruis l'objet ChartObject
Puis enfin utilsier la méthode LoadPicture dans le userfom initialize p.e
tel que Image1.Picture = LoadPicture(fname)

Si tes indications ne te suffisent pas pour démarrer, reviens sur le forum,
je te donnerai une solution complète mais là j'ai pas trop le temps.

A+


Re-bonjour

Je cherche la macro qui me permette de copier un tableau d'excel (de A1 à
d15) directment sur un Userform.

La mise en page devrait être la même (une sorte de photo)

Merci mille fois.

fornstep




Avatar
anonymousA
Re,

un exemple complet.

Tu crées un controle image appelé Image1 sur un UF appelé userform1 et tu
ajustes un peu sa taille à l'avance pour te permettre de bien voir ta plage
de cellules (tu pourras travailler plus tard si tu veux la modification
dynamique de la taille).
Tu mets la propriété Picturesizemode de ce controle à 1 (ou
fmPictureSizeModeStretch).ca c'est pour permettre que ton image occupe toute
la place dans le controle Image

Ensuite dans le UF, tu écris la procédure suivante

Private Sub UserForm_Initialize()

'on charge l'image du graphique sur le userform

Image1.Picture = LoadPicture(fname)
Kill fname

End sub

Puis dans un module standard tu écris la procédure suivante

Public fname As String
Sub transfertrange_versImage()

Application.ScreenUpdating = False

'on définit la plage des données à exporter
Set rng = Range("A1:C10")

'on copie l'image
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture

'on ajoute et on définit des variables de graphique
Set oChart = ActiveSheet.ChartObjects.Add(0, 0, 800, 600)
Set CtChart = oChart.Chart

'on active le graphique nouvellement créé
oChart.Activate

'on copie l'image dans le graphique
With CtChart
.ChartArea.Select
.Paste
Set pcPicture = .Pictures(1)
End With

'on ajuste l'image
With pcPicture
.Left = 0
.Top = 0
End With

'on travaille la taille et les cadres
With oChart
.Border.LineStyle = xlNone
.Width = pcPicture.Width + 7
.Height = pcPicture.Height + 7
End With

'on définit le chemin d'export du fichier .GIF représentant l'image du
graphique
fname = ThisWorkbook.Path & "temp.gif" 'nom du fichier enregistrement
temporaire

'exportation du graphique. Il n'y a pas de demande de confirmation de
l'écrasement de l'ancien fichier
CtChart.Export Filename:=fname, Filtername:="GIF"

oChart.Delete 'on détruit le graphique sur la feuille en cours

UserForm1.Show
Set oChart = Nothing

Application.ScreenUpdating = True

End Sub

Voilà, ici dans l'exemple c'est le range("A1:C10") mais n'importe quel range
peut faire l'affaire.Le fichier temporaire de l'image est systématiquement
détruit lors du UF.

A+


RE bonjour,

Ce'st avec plaisir que je réceptionnerais la solution complète car je ne
comprends pas trop ce que vous avez écrit

"anonymousA" wrote:

bonjour,

utiliser la méthode copypicture de l'objet range puis la copie par méthode
paste d'un chartobject crée par programmation sur la feuille en cours. Puis
ensuite utiliser la méthode chartexport de l'objet Chart de Chartobject vers
un fichier .gif dont tu donnes le nom de chemin complet.Au passage, tu
détruis l'objet ChartObject
Puis enfin utilsier la méthode LoadPicture dans le userfom initialize p.e
tel que Image1.Picture = LoadPicture(fname)

Si tes indications ne te suffisent pas pour démarrer, reviens sur le forum,
je te donnerai une solution complète mais là j'ai pas trop le temps.

A+


Re-bonjour

Je cherche la macro qui me permette de copier un tableau d'excel (de A1 à
d15) directment sur un Userform.

La mise en page devrait être la même (une sorte de photo)

Merci mille fois.

fornstep