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

LoginRegistrati
Stai vedendo 18 articoli - dal 1 a 18 (di 18 totali)
  • Autore
    Articoli
  • #24234 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 Risposta
      albatros54
      albatros54
      Moderatore
        54 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 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 Risposta
          alfrimpa
          alfrimpa
          Partecipante
            18 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 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 Risposta
              alfrimpa
              alfrimpa
              Partecipante
                18 pts

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

                Alfredo

                #24273 Risposta

                ellarossi
                Partecipante

                  Eccolo    

                  Allegati:
                  You must be logged in to view attached files.
                  #24276 Risposta
                  alfrimpa
                  alfrimpa
                  Partecipante
                    18 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 Risposta

                    ellarossi
                    Partecipante

                      super efficiente, bravissimo!

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

                      #24279 Risposta
                      alfrimpa
                      alfrimpa
                      Partecipante
                        18 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 Risposta
                        alfrimpa
                        alfrimpa
                        Partecipante
                          18 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 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 Risposta
                            alfrimpa
                            alfrimpa
                            Partecipante
                              18 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 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 Risposta
                                albatros54
                                albatros54
                                Moderatore
                                  54 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 Risposta

                                  Lellaccio
                                  Partecipante

                                    Grazie per la risposta tempestiva

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

                                    #30350 Risposta
                                    albatros54
                                    albatros54
                                    Moderatore
                                      54 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 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

                                      LoginRegistrati
                                      Stai vedendo 18 articoli - dal 1 a 18 (di 18 totali)
                                      Rispondi a: estrazione immagine da url in file excel
                                      Gli allegati sono permessi solo ad utenti REGISTRATI
                                      Le tue informazioni:



                                      vecchio frac - 2750 risposte

                                      patel
                                      patel - 1073 risposte

                                      albatros54
                                      albatros54 - 1058 risposte

                                      Marius44
                                      Marius44 - 970 risposte

                                      Luca73
                                      Luca73 - 766 risposte