Modifica macro



  • Modifica macro
    di Nunzio (utente non iscritto) data: 15/05/2017 11:33:12

    Buon giorno.
    Ho il seguente codice: (che funziona)

    Dim d As Long
    Dim d1 As String
    Dim Rt As Long
    Rt=20
    d1 = 5
    For d = 4 To Rt
    d1 = d1 + 1
    Range("AJ" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("F" & d)
    Range("AK" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("G" & d)
    Range("AL" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("H" & d)
    Range("AM" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("J" & d)
    Range("AN" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("K" & d)
    Next

    Poichè "Prova.xlsm" viene letto dalla cella Range("A1")= Prova.xlsm che varia. Esempio Range("A1")= Pippo.xlsm

    E ' possibile sostituire "Prova.xlsm" con una variabile "Xy" in modo da ottenere il codice seguente ma funzionante.

    Dim Xy As String
    Xy = Range("A1")



    Questo è il risultato finale che vorrei ottenere:
    Dim d As Long
    Dim d1 As String
    d1 = 5
    For d = 4 To Rt
    d1 = d1 + 1
    Range("AJ" & d1) = Workbooks("Xy").Sheets("Generale").Range("F" & d)
    Range("AK" & d1) = Workbooks("Xy").Sheets("Generale").Range("G" & d)
    Range("AL" & d1) = Workbooks("Xy").Sheets("Generale").Range("H" & d)
    Range("AM" & d1) = Workbooks("Xy").Sheets("Generale").Range("J" & d)
    Range("AN" & d1) = Workbooks("Xy").Sheets("Generale").Range("K" & d)
    Next
    Per favore qualcuno può dirmi come fare.
    Un grazie a tutti.
    Ciao.
    Nunzio


     
    Dim d As Long
    Dim d1 As String
    Dim Rt As Long
       Rt=20
       d1 = 5
       For d = 4 To Rt
         d1 = d1 + 1
         Range("AJ" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("F" & d)
         Range("AK" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("G" & d)
         Range("AL" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("H" & d)
         Range("AM" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("J" & d)
         Range("AN" & d1) = Workbooks("Prova.xlsm").Sheets("Generale").Range("K" & d)
       Next
          
       Poichè  "Prova.xlsm" viene letto dalla cella Range("A1")= Prova.xlsm che varia. Esempio Range("A1")= Pippo.xlsm
    
       E ' possibile sostituire "Prova.xlsm" con una variabile "Xy" in modo da ottenere il codice seguente ma funzionante.
       
       Dim Xy As String
       Xy = Range("A1")
        
    
    
    Questo è il risultato finale che vorrei ottenere:
    Dim d As Long
    Dim d1 As String
       d1 = 5
       For d = 4 To Rt
         d1 = d1 + 1
         Range("AJ" & d1) = Workbooks("Xy").Sheets("Generale").Range("F" & d)
         Range("AK" & d1) = Workbooks("Xy").Sheets("Generale").Range("G" & d)
         Range("AL" & d1) = Workbooks("Xy").Sheets("Generale").Range("H" & d)
         Range("AM" & d1) = Workbooks("Xy").Sheets("Generale").Range("J" & d)
         Range("AN" & d1) = Workbooks("Xy").Sheets("Generale").Range("K" & d)
       Next
    Per favore qualcuno può dirmi come fare.
    Un grazie a tutti.
    Ciao.
    Nunzio
    
    



  • di patel data: 15/05/2017 11:43:03

    una volta assegnata la variabile Xy la devi richiamarla senza virgolette

    nella zona gialla devi mettere solo il codice, non la spiegazione
     
    Range("AJ" & d1) = Workbooks(Xy).Sheets("Generale").Range("F" & d)