Integrare immagini su foglio Excel



  • Integrare immagini su foglio Excel
    di kadkam (utente non iscritto) data: 12/04/2013 20:48:00

    Salve

    Ho inserito un pulsantino che va semplicemente a caricare un'immagine.
    Il problema è che se cancello l'immagine dall'hardisk, sparisce anche quella dentro il foglio Excel.
    Come risolvo?

    Allego lo script del pulsante.

    Grazie




     
    Private Sub CommandButton2_Click()
        'IMMAGINE 1
        Dim FName As Variant
        Dim wb As Workbook
        Dim MyPath As String
        Dim SaveDriveDir As String
        Set wshShell = CreateObject("WScript.Shell")
        
        Range("X1").Select
        Selection.Copy
        Range("S1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        
        SaveDriveDir = CurDir
    
        MyPath = "c:
    cd"
        ChDrive MyPath
        ChDir MyPath
    
        FName = Application.GetOpenFilename(filefilter:= _
                                                        "Pictures(*.png;*.jpg;*.gif;*.bmp), *png;*.jpg;*.gif;*.bmp")
    
        If FName <> False And spunta.Value = True Then
            'MsgBox ("cmd /c convert " & FName & " -fill white -opaque black " & FName)
            wshShell.Run "cmd /c convert """ & FName & """ -fill white -opaque black """ & FName, 2, True
            ActiveSheet.Shapes.AddPicture FName, msoTrue, _
                                          msoFalse, 3, 30, 350, 261
                                             
        End If
        
        If FName <> False And spunta.Value = False Then
            
            ActiveSheet.Shapes.AddPicture FName, msoTrue, _
                                          msoFalse, 3, 30, 350, 261
                                             
        End If
        
        
    
        ChDrive SaveDriveDir
        ChDir SaveDriveDir
    End Sub



  • di Vecchio Frac data: 12/04/2013 21:16:19

    La firma di .AddiPicture è
    .AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height)

    e le tue due istruzioni dicono
    ActiveSheet.Shapes.AddPicture FName, msoTrue, msoFalse, 3, 30, 350, 261

    Cosa ne deduci? quali parametri devi cambiare? ^_^






  • di kadkam data: 15/04/2013 14:05:39



    mi arrendo



  • di Vecchio Frac data: 15/04/2013 17:12:56

    Ma perchè ti arrendi? ^_^
    ActiveSheet.Shapes.AddPicture FName, msoFalse, msoTrue, 3, 30, 350, 261
    cioè: non creare un collegamento al file (quindi rendilo incorporato, embedded) e salva l'immagine con il file.
    In questo modo puoi anche cancellare il file dal disco (per provare, semplicemente rinominalo).
    Purtroppo così però le dimensioni del file Excel crescono.






  • di kadkam data: 16/04/2013 08:40:44



    Perdonami Frac purtroppo non avevo tempo di mettermi a studiare ... conosco a livello molto base la cosa, giusto per andare avanti.
    Ti ringrazio molto.




  • di Vecchio Frac data: 16/04/2013 08:44:43

    Quando hai bisogno di conoscere il significato dei parametri, scrivi il nome dell'istruzione e premi F1, si apre la Guida con (quasi) tutte le indicazioni necessarie.
    Il tempo è una risorsa che ormai nessuno ha più purtroppo, io per primo ^_^