Unità pendrive



  • Unità pendrive
    di Beppe (utente non iscritto) data: 09/05/2017 08:59:18

    Posto la parte iniziale di una macro che utilizzo comunemente. Come si vede, la macro fa riferimento all'unità G, che è la lettera che il mio PC assegna alla pendrive sulla quale lavoro. Mi capita però di lavorare spesso su altri PC, sui quali la pendrive viene individuata con la lettera E oppure F. Come fare per far sì che la macro funzioni indipendentemente da ciò? Faccio presente che nel foglio dati della cartella di lavoro, denominato DATI, alla casella A3 ho inserito una formula che mi restituisce in ogni caso la lettera assegnata dal PC su cui lavoro alla pendrive: può essere sfruttato questo riferimento nella macro??
     
    Sub provoinserimentofile()
    Dim WBW As Workbook
    Dim fileToOpen
    ChDrive ("G")
    ChDir ("g:Ufficio")
    



  • di patel data: 09/05/2017 11:19:34

    prova così
     
    Sub provoinserimentofile()
    Dim WBW As Workbook
    Dim fileToOpen
    ChDrive (range("A3"))
    ChDir (range("A3") & "Ufficio")






  • di Beppe (utente non iscritto) data: 09/05/2017 11:55:16

    Caro Patel, ti ringrazio, ma mi dà errore sull'istruzione ChDir (range("A3") & "Ufficio") (errore di run-tine 76: impossibile trovare il percorso). Preciso che la cella A3 si trova sul foglio DATI, quindi io ho inserito:
    ChDir (range ("Dati!a3) & "Ufficio")




  • di Mister_x (utente non iscritto) data: 09/05/2017 12:30:14

    ciao

    un saluto a Patel

    penso che in VBA devi dichiarare il foglio di riferimento

    ciao
     
    Sub provoinserimentofile()
    Dim WBW As Workbook
    Dim fileToOpen
    ChDrive (Sheets("Dati").Range("A3").Value)
    ChDir (Sheets("Dati").Range("A3").Value & "Ufficio")
    






  • di Beppe (utente non iscritto) data: 09/05/2017 13:07:50

    Ho modificato la macro come suggerito da Mister X, ma non funziona, mi dà sempre lo stesso errore di run-tine 76 impossibile provare il percorso.

    Sub provoinserimentofile()
    Dim WBW As Workbook
    Dim fileToOpen
    ChDrive (Sheets("dati").Range("A3").Value)
    ChDir (Sheets("dati").Range("A3").Value & "Ufficio")



  • di patel data: 09/05/2017 14:52:59

    allega un file di esempio





  • di Mister_x (utente non iscritto) data: 09/05/2017 15:03:58

    ciao

    non avendo niente da provare una seconda soluzione e' provare a passare il valore ad una variabile Testo

    ciao
     
    Sub provoinserimentofile()
    Dim WBW As Workbook
    Dim fileToOpen As Variant
    Dim Ch_Drive As Variant, Ch_Dir As Variant
    Ch_Drive = Sheets("Dati").Range("A3").Value
    Ch_Dir = Sheets("Dati").Range("A3").Value & "Ufficio"
    ChDrive (Ch_Drive)
    ChDir (Ch_Dir)
    






  • di Beppe (utente non iscritto) data: 09/05/2017 16:07:40

    Ci siamo quasi Mister X. Con la tua correzione mi apre correttamente l'Unità pendrive (nel mio caso, unità G), ma non la directory Ufficio (facendo il debug mi evidenzia errore per l'istruzione ChDir (Ch_Dir)).



  • di patel data: 09/05/2017 16:33:15

    Ch_Dir = Sheets("Dati").Range("A3").Value & "Ufficio"
    senza la finale
    quale formula usi per restituire la lettera assegnata dal PC su cui lavoro alla pendrive ?





  • di Beppe (utente non iscritto) data: 09/05/2017 20:18:23

    Non funziona ancora, allego file di prova.
    La formula che utilizzo è =Sinistra(Cella("Nomefile");1)



  • di Nick (utente non iscritto) data: 09/05/2017 23:04:08

    Mancano i :

    E' risaputo che il disco deve essere scritto

    G:

    O lo metti nella cella o lo aggiungi nel codice VBA



  • di Beppe (utente non iscritto) data: 09/05/2017 23:18:27

    Risolto!!!
    Grazie a tutti per l'impegno e soprattutto per la pazienza dimostrata!!!!



  • di patel data: 10/05/2017 07:24:47

    la prossima volta allega subito il file, pensa a quanto tempo abbiamo perso !





  • di Nick (utente non iscritto) data: 10/05/2017 10:11:25

    Sono d'accordo con patel ma direi che bisognerebbe anche riflettere un attimo prima di usare il forum ...

    Se uno si imbarca con VBA ed Excel senza sapere come è fatto un percorso (sin dai tempi del DOS ...) forse il problema è a monte ...