Sviluppare funzionalita su Microsoft Office con VBA Macro Vba in excel Copia incolla valori di immagini con link ipertestuale

LoginRegistrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #30770 Risposta

    daniel

      Buongiorno,

      Vi espongo il mio problema.

      Ho un file con 13000 righe sotto la colonna A dove all'interno di ogni cella è inserita un immagine con link ipertestuale.L'immagine viene visualizzata solo da chi ha accesso al repository delle foto qui nasce l'esigenza di copiare incollare a valore l'immagine nella colonna B.

      Questo è ciò che ho creato registrando da neofita la Macro su una cella.

       ActiveSheet.Shapes.Range(Array("Picture 33")).Select
      Selection.Copy
      Selection.Delete
      Range("B3").Select
      ActiveSheet.Paste

      Vorrei poter applicare un range oppure fare +1 fino a che non troverà più immagini.

      Mi trovo in difficoltà perchè la selezione dell'immagine avviene col mouse perchè la cella A2 risulta vuota. 

      Potete cortesemente aiutarmi?

      #30777 Risposta
      Lucastar
      Lucastar
      Partecipante
        4 pts

        Devi fare un ciclo, che scorra tutte le righe. Riesci ad allegare un file di esempio?

        #30779 Risposta

        Ciao Eccolo.

        L'ho troncato a 10 righe.

        Dovrei copiare le foto nella colonna B facendo copia valore.

        Allegati:
        You must be logged in to view attached files.
        #30783 Risposta
        PMC77
        PMC77
        Partecipante
          10 pts

          Ciao @Daniel!

          Concordo con @lucastar (che saluto)

          Devi crearti un ciclo che scorra tutte le righe del tuo foglio Excel e che faccia l'operazione ceh tu fai per la singola riga...

           

          Dim ShFoglio As Worksheet
           Set ShFoglio = ThisWorkbook.Worksheets("Sheet1")

          Row = 1
          RowMax = ShFoglio.Cells(ShFoglio.Rows.Count, "A").End(xlUp).Row
          While Row <= RowMax

              'Qui inserisci la tua parte

              Row = Row + 1

          Wend

           

          Ciao

          Paolo

          #30785 Risposta

          Ciao, grazie dell'aiuto!

          Purtroppo la macro mi si blocca dove ho inserito la mia parte.

          Non riconosce probabilmente picture 1, vi allego il file su cui sto provando.

          Credo il problema sia che registrando quella parte su un file diverso che ha lo stesso scopo non funziona.

          Sub MacroCP()
          '
          ' MacroCP Macro
          '
          ' Keyboard Shortcut: Ctrl+a
          
          
          Dim ShFoglio As Worksheet
           Set ShFoglio = ThisWorkbook.Worksheets("Sheet1")
          
          Row = 1
          RowMax = ShFoglio.Cells(ShFoglio.Rows.Count, "A").End(xlUp).Row
          While Row <= RowMax
          
              'copy paste
               
          ActiveSheet.Shapes.Range(Array("Picture 1")).Select
          Selection.Copy
          Selection.Delete
          Range("B2").Select
          ActiveSheet.Paste
          
              Row = Row + 1
          
          Wend
          
          End Sub
          Allegati:
          You must be logged in to view attached files.
          #30790 Risposta
          PMC77
          PMC77
          Partecipante
            10 pts

            Ciao @daniel!

            Credo che il problema sia nel nome della Picture a cui tu punti!

            Se ho capito bene guardando il file, ad ogni riga l'incremento è di 2, ovvero la prima immagine è "Picture 2", la seconda immagine è "Picture 4" e così via...

            Se così fosse devi usare una variabile per il nome dell'immagine!

            Tipo

            Nelle dichiarazioni iniziali:

            Dim ProgImm = 0 as Integer

            Dim NomImm as String

            Nel ciclo, prima di eseguire le tue istruzioni:

            ProgImm = ProgImm + 2

            NomImm = "Picture " & str(ProgImm)

            E poi invece di usare il nome "Picture X" usai la variabile!

            Ciao

            Paolo

            #30840 Risposta

            daniel

              Ciao,

              Grazie per la dritta immaginavo di dover riuscire a mettere una variabile purtroppo sono neofita con VBA.

              Ora ho un syntax error sulla riga Dim ProgImm = 0 as Integer

              Sembra ci sia la necessità di mettere un end statement per non ricevere l'errore ma non capisco come risolvere.

              Metto qui sotto la macro dopo aver aggiunto i vari suggerimenti.

              Sub MacroCP()
              '
              ' MacroCP Macro
              '
              ' Keyboard Shortcut: Ctrl+a
              
              
              
              Dim ProgImm = 0 as Integer
              
              Dim NomImm As String
              
              
              Dim ShFoglio As Worksheet
               Set ShFoglio = ThisWorkbook.Worksheets("Sheet1")
              
              Row = 1
              RowMax = ShFoglio.Cells(ShFoglio.Rows.Count, "A").End(xlUp).Row
              While Row <= RowMax
              
              
                  'copy paste
                  
              ProgImm = ProgImm + 2
              NomImm = "Picture " & Str(ProgImm)
                   
              ActiveSheet.Shapes("Picture X").Copy
              Selection.Delete
              Range("B2").Select
              ActiveSheet.Paste
              
                  Row = Row + 1
              
              Wend
              
              End Sub
            LoginRegistrati
            Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
            Rispondi a: Macro Vba in excel Copia incolla valori di immagini con link ipertestuale
            Gli allegati sono permessi solo ad utenti REGISTRATI
            Le tue informazioni:



            vecchio frac - 2750 risposte

            patel
            patel - 1089 risposte

            albatros54
            albatros54 - 1062 risposte

            Marius44
            Marius44 - 1000 risposte

            Luca73
            Luca73 - 798 risposte