ASSEGNARE IMMAGINE A USERFORM
Hai un problema con Excel? 
ASSEGNARE IMMAGINE A USERFORM
di RITA (utente non iscritto) data: 05/02/2013 12:07:48
Ciao a tutti, piu' che un problema mi sono incaponita con una cosa
ossia in una userform ho precaricato la casellina immagine
ora con l'istruzione qui sotto riesco a rendere come immagine una zona del foglio excel, individuo il nome
ma non so come poterla inserire nella casellina immagine della userform
ho visto nell'aiuto in linea che dovrei utilizzare loadpicture ma si presuppone che abbia un percorso e un immagine salvata.
qualcuno puo' dirmi se si puo' fare e in quale modo.
Grazie
'COPIO L'IMMAGINE IN M1
Range("A1:A6").CopyPicture xlScreen, xlBitmap
Range("M1").PasteSpecial
X = Sheets("PROVA").Shapes.Count
If X <> 0 Then
For I = 1 To X
Y = Sheets("PROVA").Shapes(I).Name
Next I
End If
'QUI NON RIESCO
UserForm1.Image1.Picture = .........
|
di Vecchio Frac data: 05/02/2013 12:15:58
Si usa così:
Set UserForm1.Image1.Picture = LoadPicture("percorso completo e nome del file.jpg")
di Rita (utente non iscritto) data: 05/02/2013 17:10:31
Ok ma il problema è che l immagine la creo al momento tramite vba e quindi non ho nessun percorso da caricare e nessuna foto salvata
È solo un immagine che raffigura una zona del foglio Excel e che volevo mi comparisse nella userform nella casellina immagine
di Vecchio Frac data: 05/02/2013 22:52:05
C'eri quasi... dopo aver copiato in memoria l'immagine ti manca un metodo per incollarla nel controllo immagine dello userform.
E' complicatino da fare ma si può fare.
Stephen Bullen, nel 1998, ha prodotto il file di esempio che allego.
C'è tutta la routine PastePicture che ti serve, devi solo adattarla al tuo contesto.
Non sarà una passeggiata perchè ti devi studiare come viene usato il codice originale per capire come reimplementarlo. Ma ce la puoi fare ^_^
p.s. tutto quel
For I = 1 To X
Y = Sheets("PROVA").Shapes(I).Name
Next I
è inutile... alla fine Y avrà solo il nome dell'ultima Shape del foglio e poi non ti servirà a niente saperlo, perchè non ci fai niente nel resto del codice :)
di HarryBosch data: 06/02/2013 00:33:07
O.T.
Ho sempre trovato dell'ottimo materiale da Stephen ^_^
E niente male anche questa Picture
di RITA (utente non iscritto) data: 06/02/2013 15:20:06
Grazie vecchiofrac
dando un'occhiata al file ho estrapolato quello che mi serviva ed ho risolto
ossia copio una zona del foglio excel come immagine
salvo l'immagine
la carico nella casellina nella userform e poi cancello l'immagine salvata
grazie di cuore
sub salva ()
Dim vFile As Variant, sFilter As String, lPicType As Long, oPic As IPictureDisp
vFile = "C:1.BMP"
If vFile <> False Then
lPicType = IIf(obMetafile, xlPicture, xlBitmap)
Worksheets(1).Range("A1:H26").CopyPicture xlScreen, xlBitmap
Set oPic = PastePicture(lPicType)
SavePicture oPic, vFile
End If
Image1.Picture = LoadPicture(vFile)
Kill vFile
end sub
|
di Vecchio Frac data: 06/02/2013 18:02:02
Bene! Allora puoi marcare "Spunta se risolta" in una nuova risposta ^_^
di Rita (utente non iscritto) data: 06/02/2013 20:25:35
.
Vuoi Approfondire?