Sviluppare funzionalita su Microsoft Office con VBA estrazione immagine da url in file excel

Login Registrati
Stai vedendo 20 articoli - dal 1 a 20 (di 20 totali)
  • Autore
    Articoli
  • #24234 Score: 0 | Risposta

    ellarossi
    Partecipante

      Buongiorno a tutti    
      avrei bisogno del vostro aiuto per ottimizzare l'utilizzo   un file excel 

      In pratica tramite un programma scarico  da web una serie di dati (vedi foglio Sheeto) dal quale copio  ciò che mi interessa nel file "estrazione " a questo punto vorrei:
      1.  che copiando  il link relativo all'immagine ( in colonna A) riportasse l'immagine stessa e non la stringa dello stesso 
      2. che copiando il link al quale fa riferimento la pagina (in colonna J) sia cliccabile 

      ps.
      premetto che ho una conoscenza minima di macro e Vba per cui sarò SUPER GRATA per ogni vostro suggerimento 

      Allegati:
      You must be logged in to view attached files.
      #24238 Score: 0 | Risposta

      albatros54
      Moderatore
        81 pts

        Se ho capito, vai sul foglio("sheet0""), e copi l'indirizzo della cella(C2).Vai sul foglio Estrazioni, attivi la cella (a2),col muose sulla cella tasto dx, e selezioni "inserisci collegamento ipertestuale", nella finestra che si apre, inserisci l'indirizzo che hai copiato precedentemente,vedi quello che succede.

         

        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
        Sempre il mare, uomo libero, amerai!
        ( Charles Baudelaire )
        #24259 Score: 0 | Risposta

        ellarossi
        Partecipante

          ciao albatros, non mi succede niente  non mi fa inserire collegamento,  comunque mi servirebbe qualcosa in automatico non da dover inserire manualmente su ogni riga ...

          #24263 Score: 0 | Risposta

          alfrimpa
          Partecipante
            24 pts

            Scusa Ellarossi

             

            Nel file allegato sullo sheet0 in  C2 ci sono due url

            https://img3.idealista.it/blur/WEB_LISTING/0/id.pro.it.image.master/f9/dd/52/232252253.jpg; https://img3.idealista.it/blur/WEB_LISTING/0/id.pro.it.image.master/da/02/87/232252229.jpg

            che come vedi fanno riferimento a file e quindi ad immagini diverse.

            Quale dei due si deve prendere a riferimento?

            Una volta appurato questo il tuo quesito è risolto.

            Alfredo

            #24264 Score: 0 | Risposta

            ellarossi
            Partecipante

              ciao Alfredo, 
              non avevo fatto caso che sullo stesso ce ne erano 2 (fanno parte entrambi dello stesso immobile)  a me servirebbe aprisse il 1° 

               

              #24267 Score: 0 | Risposta

              alfrimpa
              Partecipante
                24 pts

                Allora riallega un nuovo file dove in colonna A metti una decina di URL singole.

                Alfredo

                #24273 Score: 0 | Risposta

                ellarossi
                Partecipante

                  Eccolo    

                  Allegati:
                  You must be logged in to view attached files.
                  #24276 Score: 0 | Risposta

                  alfrimpa
                  Partecipante
                    24 pts

                    Siccome lo avevo già preparato ti allego io un file.

                    Questo il codice che è all'interno del file.

                    Dopo aver creato una directory "C:\prova" clicca sul pulsante Inserisci immagini presente sul foglio1.

                    Poi, se vuoi, ne parliamo.

                    Option Explicit
                    
                    Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
                      "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
                        szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
                    
                    
                    
                    Sub ScaricaImmagini()
                    Dim ur As Long
                    Dim strSavePath As String
                    Dim URL As String
                    Dim ret As Long
                    Dim miorange As Range
                    Dim cll As Range
                    ur = Cells(Rows.Count, 1).End(xlUp).Row
                    Set miorange = Range("a1:a" & ur) '
                    For Each cll In miorange
                        URL = cll.Value
                        strSavePath = "c:\prova" & "\" & cll.Offset(0, 2).Value & ".jpg"
                        ret = URLDownloadToFile(0, URL, strSavePath, 0, 0)
                    Next cll
                    End Sub
                    
                    
                    Sub InserisciImmagini()
                    Dim i As Long
                    Dim ur As Long
                    Dim r As Range
                    Dim ws As Worksheet
                    Dim imagePath As String
                    Dim img As Picture
                    Dim shp As Shape
                    Dim fname As String
                    ur = Worksheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
                    Set ws = Worksheets("Foglio1")
                    For Each shp In ActiveSheet.Shapes
                        shp.Delete
                    Next shp
                    For i = 1 To ur
                        If ws.Range("a" & i).Value <> "" Then
                            Set r = ws.Range("d" & i)
                            fname = Dir("c:\prova\" & Range("c" & i).Value & ".jpg") '<------ Cambiare percorso
                            If Len(fname) > 0 Then
                                imagePath = "c:\prova\" & Range("c" & i).Value & ".jpg" '<------ Cambiare percorso
                            End If
                            Set img = ws.Pictures.Insert(imagePath)
                            With img
                                .ShapeRange.LockAspectRatio = msoFalse
                                .Top = r.Top
                                .Left = r.Left
                                .Width = r.Width
                                .Height = r.Height
                            End With
                        End If
                    Next i
                    End Sub
                    
                    Sub Generale()
                    Call ScaricaImmagini
                    Call InserisciImmagini
                    End Sub
                    
                    Allegati:
                    You must be logged in to view attached files.
                    #24278 Score: 0 | Risposta

                    ellarossi
                    Partecipante

                      super efficiente, bravissimo!

                      Perdona la mia poca conoscenza...  come creo la directory  ?

                      #24279 Score: 0 | Risposta

                      alfrimpa
                      Partecipante
                        24 pts

                        No Ella non mi fare questa domanda   

                        La devi creare da Windows; prova a dare uno sguardo qui.

                        https://www.aranzulla.it/come-creare-una-cartella-945821.html

                        A parte questo hai un po' compreso quel che ho fatto nel file che ti ho allegato?

                        Alfredo

                        #24280 Score: 0 | Risposta

                        alfrimpa
                        Partecipante
                          24 pts

                          Ah, volendo, sempre con il VBA si possono cancellare (se non dovessero servire) tutti i file presenti nella directory "c:\prova"

                          Comunque ho usato il (vecchio) termine directory; oggi si dice cartella   

                          Quindi in Windows sai creare una cartella?

                          Alfredo

                          #24281 Score: 0 | Risposta

                          ellarossi
                          Partecipante

                            Alfredo sei un genio, funziona correttamente , BRAVO!
                            Praticamente fai scaricare le foto nella cartella "prova"  e da lì con il numero che gli hai dato le importa sul file in formato immagine 
                            Grazie mille 

                             

                            #24296 Score: 0 | Risposta

                            alfrimpa
                            Partecipante
                              24 pts

                              Buongiorno Ellarossi

                              Ti ringrazio delle parole ma il tutto è frutto da tante ricerche in rete; io ho solo adattato il codice al tuo caso.

                              Piuttosto è importante che tu capisca, almeno a grandi linee, come è stato costruito il file.

                              Nelle colonne B e C ho inserito delle formule per estrarre il numero finale delle URL in modo da denominare in modo univoco i file con tali numeri.

                              Questo è stato possibile perchè tutte le URL hanno la stessa lunghezza; se così non fosse questo sistema salterebbe.

                              In tal caso in colonna D dovresti mettere dei numeri progressivi da 1 in poi ed i file avranno come nome 1.jpg, 2.jpg e così via.

                              Se desideri ulteriori spiegazioni sono qua.

                              Alfredo

                              #30331 Score: 0 | Risposta

                              Lellaccio
                              Partecipante

                                ciao a tutti

                                sto leggendo questo post da giorni cercando di adattare  questa macro al mio foglio di lavoro...

                                non ci sto riuscendo... 

                                se vi posto il mio file potreste aiutarmi?

                                avrei bisogno delle immagini nella colonna ag e che vengano rinominate con l'id nella colonna k, la cosa diversa dall'esempio di sopra è che i link che ho io hanno una diversa lunghezza....

                                 

                                Allegati:
                                You must be logged in to view attached files.
                                #30339 Score: 0 | Risposta

                                albatros54
                                Moderatore
                                  81 pts

                                  Lellaccio ha scritto:

                                  vrei bisogno delle immagini nella colonna ag e che vengano rinominate con l'id nella colonna k, la cosa diversa dall'esempio di sopra è che i link che ho io hanno una diversa lunghezza....

                                  quindi tu vorresti che al posto del tuo link questo venga sostituito dalla'immagine che ti riporta al link. Quindi nella colonna "AG" non avresti piu il tuo link ma l'immagine.Se ho capito

                                   

                                   


                                  Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                  Sempre il mare, uomo libero, amerai!
                                  ( Charles Baudelaire )
                                  #30340 Score: 0 | Risposta

                                  Lellaccio
                                  Partecipante

                                    Grazie per la risposta tempestiva

                                    in realtà le foto le dovrebbe scaricare in una cartella sull’unità c

                                    #30350 Score: 0 | Risposta

                                    albatros54
                                    Moderatore
                                      81 pts

                                      Lellaccio ha scritto:

                                      in realtà le foto le dovrebbe scaricare in una cartella sull’unità c

                                      se è questo quello che vuoi ottenere, inserisci in un modulo dell'editor VBA il codice che ti posto, naturalmente devi variare il percorso dove vuoi salvare le immagini.

                                      Option Explicit
                                      
                                      Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
                                        "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
                                          szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
                                      Sub ScaricaImmagini()
                                          Dim ur As Long
                                          Dim strSavePath As String
                                          Dim URL As String
                                          Dim ret As Long
                                          Dim miorange As Range
                                          Dim cll As Range
                                          ur = Cells(Rows.Count, "ag").End(xlUp).Row
                                          Set miorange = Range("ag2:ag" & ur)    '
                                          For Each cll In miorange
                                              URL = cll.Value
                                              strSavePath = "C:\Users\Desktop\provaimmagini" & "\" & cll.Offset(0, -22).Value & ".jpg"
                                              ret = URLDownloadToFile(0, URL, strSavePath, 0, 0)
                                          Next cll
                                      End Sub
                                      

                                       


                                      Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                      Sempre il mare, uomo libero, amerai!
                                      ( Charles Baudelaire )
                                      #30352 Score: 0 | Risposta

                                      Lellaccio
                                      Partecipante

                                        albatros non ho parole.....

                                        ci stavo sbattendo la testa da giorni....

                                        ho dovuto solo adattare a 64bit cambiare savepath  ed è andata alla perfezione 

                                        grazie ancora

                                        #41880 Score: 0 | Risposta

                                        Fede G

                                          Ciao a tutti, 

                                          sono giorni che provo ad inserire questi codici ma non sto riuscendo ad avere il risultato che vorrei. 

                                          ho un elenco di 2000 righe ed ognuna ha nella colonna B2 una url che mi riporta ad una immagine, io dovrei mettere le immagini nella colonna C al posto del collegamento al link come posso fare? 

                                          grazie a tutti 

                                          #41881 Score: 0 | Risposta

                                          albatros54
                                          Moderatore
                                            81 pts

                                            conviese sempre aprire una discusssione nuova, e non appoggiarsi a discussioni passate.

                                            Cerca di allegare un file, senza da ti sensibili, per vedere la struttura per capirci qualcosa

                                             

                                            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                            Sempre il mare, uomo libero, amerai!
                                            ( Charles Baudelaire )
                                          Login Registrati
                                          Stai vedendo 20 articoli - dal 1 a 20 (di 20 totali)
                                          Rispondi a: estrazione immagine da url in file excel
                                          Gli allegati sono permessi solo ad utenti REGISTRATI
                                          Le tue informazioni: