Inserire formula con VBA



  • Inserire formula con VBA
    di marnevi (utente non iscritto) data: 14/09/2016 11:47:53

    Salve. Vorrei inserire, automaticamente all'apertura del file, la seguente formula nella cella B2 del Foglio1:

    =[nomefile.xls]Situazione!$E$60

    il valore di "nomefile.xls" lo deve riprendere dalla cella F2 del Foglio1, che io inserisco manualmente all'occorrenza.

    Ho scritto questo codice VBA ma non funziona. Come riscriverlo correttamente? Grazie
     
    Private Sub Workbook_Open()
    
    nome = Sheets(1).Range("F2")
    Sheets(1).Range("B2").Formula = "=[nome]Situazione!$E$60"
    
    End Sub



  • di Luca73 data: 14/09/2016 13:23:05

    Ciao
    nome è una variabile pertanto non va scritta all'interno delle virgolette
    Per concatenare stringhe usa la e commerciale (&)
    Ciao
    Luca





  • di marnevi (utente non iscritto) data: 14/09/2016 13:23:36

    nessuno può aiutarmi?



  • di marnevi (utente non iscritto) data: 14/09/2016 13:31:02

    Luca ho provato così ma niente. Cortesemente potresti riscrivere il mio codice corretto? Te ne sarei grato
     
    Private Sub Workbook_Open()
    
    Nome = Sheets(1).Range("F2")
    Sheets(1).Range("B2").Formula = "=[&Nome&]Situazione!$E$60"
    
    End Sub



  • di Luca73 data: 14/09/2016 14:27:54

    Ciao ti avevo scritto che le variabili vanno fuori dalle virgolette.
    Prova come sotto e fammi sapere
     
    Sheets(1).Range("B2").Formula = "=[" & Nome & "]Situazione!$E$60"






  • di marnevi (utente non iscritto) data: 14/09/2016 15:19:11

    funziona.
    Ora però vorrei indicare il percorso relativo alla cartella MRT in cui si trova il file da cui estraggo i dati, facendo riferimento al percorso assoluto.
    Ho scritto il codice così, ma mi dà l'ennesimo errore. Dove sbaglio?
     
    Private Sub Workbook_Open()
    
    ChDir ActiveWorkbook.Path
    sPath = ActiveWorkbook.Path
    
    Nome = Sheets(1).Range("F2")
    Sheets(1).Range("B2").Formula = "=" & sPath & "/MRT/[" & Nome & "]Situazione!$E$60"
    
    End Sub



  • di Luca73 data: 14/09/2016 15:21:29

    innanzitutto
    a) dettaglia il tipo di erorre, in quale riga ti da errore, cosa dice l'errore.
    b) allega il file ....

    Ciao
    Luca





  • di marnevi (utente non iscritto) data: 14/09/2016 15:27:33

    l'errore è sulla seguente riga ed è di questo tipo:
    ------------------
    ERRORE DI RUN-TIME '1004':
    ERRORE DEFINITO DALL'APPLICAZIONE E DALL'OGGETTO
    ------------------
     
    Sheets(1).Range("B2").Formula = "=" & sPath & "/MRT/[" & Nome & "]Situazione!$E$60"



  • di Luca73 data: 14/09/2016 15:37:32

    Ciao
    Prova Così

    Ricordati di Dichiarare le variabili all'inizio

    Ciao
    Luca


     
    Option Explicit
    Private Sub Workbook_Open()
    Dim sPath As String
    Dim Nome As String
    
    ChDir ActiveWorkbook.Path
    sPath = ActiveWorkbook.Path
    
    With ActiveWorkbook.Sheets(1)
        Nome = .Range("F2")
        .Range("B2").Formula = "='" & sPath & "MRT[" & Nome & "]Situazione'!$E$60"
    End With
    End Sub
    






  • di marnevi (utente non iscritto) data: 14/09/2016 15:42:36

    Sei un grande Luca. Funziona. Grazie infinite!!!