Formula x directory



  • Formula x directory
    di Massimo Bussi (utente non iscritto) data: 01/04/2016 09:40:06

    Buongiorno a tutti, non so se è giusto chiedere qui, ma più che un problema con VBA ne ho uno con le formule.

    ='C:UsersmassimoDownloadsRilievi[MCM - S0855.xls]Ciclo di Montaggio'!$S$12

    visto che ho molti collegamenti come questo vorrei avere una cella, mettiamo A1 dove inserisco l' indirizzo della formula
    C:UsersmassimoDownloadsRilievi
    in modo che se dovessi cambiare posizione mi basterebbe cambiare solo indirizzo in A1

    Grazie mille



  • di ffante data: 01/04/2016 17:13:14

    Massimo vedi se ti possa andare bene questo codice, franco. 
     
    Sub Salva_File()
    
    Dim mypath As String
    Dim nFile As String
    nFile = Range("A1").Value	' Inserire il nome del file da salvare	= MCM - S0855.xls
    mypath = Range("A2").Value	' Inserire il nome del percorso desiderato 	= C:UsersmassimoDownloadsRilievi
    
    
        ActiveWorkbook.SaveAs Filename:=mypath & nFile & ".xls", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            
            MsgBox ("File salvato con successo."), vbInformation, "                    Prova Salvataggio"
     
    End Sub



  • di kaigoo66 data: 01/04/2016 23:56:28

    Grazie prima di tutto, ma non è questo il mio problema. Io vorrei usare ancora le formule non VBA
    questa formula vorrei trasformala
    ='C:UsersmassimoDownloadsRilievi[MCM - S0855.xls]Ciclo di Montaggio'!$S$12
    così
    =A1[MCM - S0855.xls]Ciclo di Montaggio'!$S$12 (dove naturalmente in A1 avrò il percorso C:UsersmassimoDownloadsRilievi

    grazie ancora



  • di Luca73 data: 04/04/2016 13:29:44

    Ciao
    devi usare il comando indiretto
    per esempio nel tuo caso
    =INDIRETTO(A1 & "[MCM - S0855.xls]Ciclo di Montaggio'!$S$12")

    Ciao
    Luca







  • di kaigoo1966 data: 05/04/2016 05:33:49

    Ciao Luca,
    la tua funzione non andava dopo alcune prove ho fatto questo
    =INDIRETTO("A1")&"[MCM - S0855.xlsm]Ciclo di Montaggio'!$S$12"
    ed ora funziona, ma non in modo corretto, praticamente è come fare un CONCATENA
    riporta nella cella desiderata il testo completo C:SantoniUfficio Tempi e MetodiTempiRilievi[MCM - S0855.xlsm]Ciclo di Montaggio'!$S$12,
    ma non crea alcun collegamento con il file richiesto .....
    se hai altre soluzioni

    per ora grazie



  • di Luca73 data: 05/04/2016 15:20:14

    Ciao
    il comando indiretto (vedi help di excel) ti permette di avere il contenuto di una cella partendo da un testo che la identifica. Se per esempio tu vuoi scegliere nella cella A1 il nome di un foglio e vedere cosa c'è nella cella A2 di quel foglio allora potrai scrivere =INDIRETTO(A1&"!A2") Come vedi !A2 è passato come testo
    Se tu scrivessi nella cella =A1&"!A2" Allora nella tua cella non avresti il valore voluto ma un testo tipo "Foglio2!A2" ovvero il testo dell'indirizzo.

    Il tuo problema è se vuoi riferirti ad una cella di un file chiuso.

    Nel qual caso Excel ti riporterà errore in quanto non riesce a leggere in un file chiuso.

    Penso a questo punto che l'unica soluzione sia scrivere una macro che ti apra il file, aggiorni i valori e poi lo tenga aperto fino a quando non chiudi il tuo file....

    CIao
    Luca








  • di alfrimpa data: 05/04/2016 15:20:36

    Ciao kaigoo

    Prova a scrivere:

    =COLLEG.IPERTESTUALE(INDIRETTO("A1")&"[MCM - S0855.xlsm]Ciclo di Montaggio'!$S$12")

    Alfredo





  • di kaigoo1966 data: 05/04/2016 22:52:32

    Ciao Luca,
    la funzione è così
    =INDIRETTO("'"&A1&"["&CONCATENA(K5193;" - ";A5193&".xls]Ciclo di Montaggio'!S17"))
    tralasciando naturalmente il fatto che io ho aggiunto CONCATENA
    purtroppo non posso aprire tutte le volte il file collegato perchè sono parecchie decine
    e poi tutte le volte che modifichi qualcosa nel foglio "saltano"

    Grazie ancora lo stesso penso che terrò le formule come sono ora