|
Domanda.
nome=enzo
cognome=miranda
versione=2000
conosco2=medio
macro=SI
email=enzo.miranda@fastwebnet.it
chra=694
problema=in un foglio su alcune caselle ci sono delle immagini il cui nome è
stato assegnato da excel.
vorrei in una macro poterle copiare dopo aver selezionato la cella sulla
quale sono inserite
Ringrazio in anticipo
Saluti
Enzo
PS ho cercato nel sito senza successo per questo sono obbligato a
disturbarti!!
Risposta.
salve Enzo, Excel NON assegna il nome alle immagini, tuttalpiù le inserisce
come Shapes, e come tali le identifica con un nome.
Vedrai che te le chiama "Picture" seguite da un numero. Per poterle copiare
dovrai prima usare un comando per selezionare lo Shapes, e quindi dire dove
incollarlo, esempio:
ActiveSheet.Shapes("Picture 1").Select
Selection.Copy
Range("D9").Select
ActiveSheet.Paste
Io non so che numero è la tua immagine, dovrai trovarla da te.
Usa il registratore di macro, lo attivi, poi selezioni
l'immagine, lo stoppi, e vai a vedere nella macro che ti ha fatto, come è
stata chiamata l'immagine selezionata.
Comunque, nonostante tu dica di aver guardato, sull'altro sito, vai a vedere
l'articolo "Shapes (Forme) lavorare con gli", nella sezione vba.
Se gli articoli non li leggi, e ti fermi al titolo, non sai se quello che
c'è dentro è quello che ti serve.
saluti, ennius
Replica di
Enzo. Ennius
faccio seguito alla mia precedente mail per sottoporti questo codice che ho
trovato.
Io non sono abbastanza competente ma tu forse rieci a usare questa tecnica.
Se lo ritieni un vicolo cieco non perderci tempo!
Sub CheckShape()
'Find names of objects on a sheet -- Tom Ogilvy 01Nov199
'untested (dmcr) has a range("myzone")
Dim varArr()
Dim shpRange As ShapeRange
ReDim varArr(1 To 1)
i = 0
For Each shp In Worksheets("sheet1").Shapes
If shp.Type = msoFreeform Then
If Not Intersect(Range("MyZone"), _
shp.TopLeftCell) Is Nothing Then
i = i + 1
ReDim Preserve varArr(1 To i)
varArr(i) = shp.Name
End If
End If
Next
Set shpRange = ActiveSheet.Shapes.Range(varArr)
Debug.Print shpRange.Count
For Each shp In shpRange
Debug.Print shp.Name, shp.TopLeftCell.Address
Next
shpRange.Select
End Sub
Ti ringrazio comunque
Saluti Enzo
Risposta.
vedo che sei
poco pratico di vba, quindi ti suggerisco di usare questa routine che ti
copia un'immagine contenuta nella cella che selezioni, e te la incolla in un
altro foglio di cui però devi scrivere il riferimento:
Sub copia()
Worksheets("Foglio1").Activecell.CopyPicture xlScreen, xlBitmap
Worksheets("Foglio2").Paste Destination:=Worksheets("Foglio2").Range("B2")
End Sub
dove la destinazione in questo esempio è sul Foglio2, nella cella B2. Se tu
vorrai incollarla in un'altra cella, dovrai scrivere il riferimento a quella
cella al posto di B2.
saluti, ennius
|