Aprire cartelle

di il
14 risposte

Aprire cartelle

Ciao,
premetto che di codice VBA ne conosco poco, e ho la seguente esigenza, all'interno del server ho una cartella contenete una serie di sottocartelle che fanno riferimento ai vari anni. Quello che vorrei fare è al click di un pulsate si dovrebbe aprire la cartella dell'anno corrente.
Ho inserito il seguente codice ma non funziona.

Private Sub txt_apri_documenti_Click()

Dim anno As Integer
anno = Year(Date)
Application.FollowHyperlink ("\\Server\z\01_GESTIONE AZIENDA\COMMESSE\anno")

End Sub

14 Risposte

  • Re: Aprire cartelle

    Anno è una variabile numerica ... devi concatenarla al resto del percorso come stringa

    "\\Server\z\01_GESTIONE AZIENDA\COMMESSE\" & CStr(anno)
  • Re: Aprire cartelle

    Grazie mille oregon, ora pero ho un altro problema all'interno dell'anno ho altre cartelle che prendono il nome da varie parti del databare, come faccio a concatenare la seguente stringa a quella precedente?

    "C_" & Left([txt_numero_commessa], 4) & "-" & Right([txt_numero_commessa], 4) & " " & ([ragione_sociale]) & "-" & ([riferimento])
  • Re: Aprire cartelle

    Siccome la stringa è molto lunga, ti consiglio di usare una variabile di tipo String e fare concatenazioni "a pezzetti", ossia:
    Dim strPath As String
    strPath = "\\Server\z\01_GESTIONE AZIENDA\COMMESSE\" & CStr(anno)
    strPath = strPath & "\C_" & Left([txt_numero_commessa], 4) & "-" & Right([txt_numero_commessa], 4) & " " & ([ragione_sociale]) & "-" & ([riferimento])
    Application.FollowHyperlink strPath
    Il backslash \ prima di C ce l'ho messo io ipotizzando che tutta quella "pappardella" sta sotto la cartella dell'anno.
  • Re: Aprire cartelle

    Pippo ... la questione è molto semplice, basi di programmazione ... una volta che hai avuto un esempio, potresti essere tu a provarci ...
  • Re: Aprire cartelle

    Grazie OsvaldoLaviosa ho provato con le tue indicazioni, ma mi da errore alla terza riga.

    Oregon se avevo basi di programmazione non stavo a chiedere aiuto qui.
  • Re: Aprire cartelle

    Pippo_012 ha scritto:


    Oregon se avevo basi di programmazione non stavo a chiedere aiuto qui.
    Se "avessi avuto" ... ma dovresti studiare qualcosa per farti queste basi ... copiare e incollare non serve a nulla.
    I consigli si danno proprio per iniziare ad andare con le proprie gambe .... ma se non ci si prova ...

    COSA hai provato a fare? QUALE errore ti dà? L'hai LETTO con attenzione?
  • Re: Aprire cartelle

    Mi va in Debug ("errore di run-time 2465" impossibile trovare il campo 1 a cui viene fatto riferimento nell'espressione)
    e viene evidenziato di giallo la terza riga.
    Ho creato una cartella "C_" e fino a li tutto Ok quando vado ad aggiungere l'altra strina va in errore
  • Re: Aprire cartelle

    Mostra la linea di codice che hai scritto
  • Re: Aprire cartelle

    StrPath = strPath & "\C_" & Left([txt_numero_commessa], 4) & "-" & Right([txt_numero_commessa], 4) & " " & ([ragione_sociale]) & "-" & ([riferimento])
  • Re: Aprire cartelle

    Ma questi campi

    txt_numero_commessa
    txt_numero_commessa
    ragione_sociale
    riferimento

    esistono con questi nomi?

    Hai provato ad aggiungerne uno alla volta alla stringa per capire quando si presenta l'errore? Prima prova così

    StrPath = strPath & "\C_" & Left([txt_numero_commessa], 4)

    poi

    StrPath = strPath & "\C_" & Left([txt_numero_commessa], 4) & "-" & Right([txt_numero_commessa], 4)

    poi

    StrPath = strPath & "\C_" & Left([txt_numero_commessa], 4) & "-" & Right([txt_numero_commessa], 4) & " " & ([ragione_sociale])
  • Re: Aprire cartelle

    Già inserendo la prima riga da errore.
    i campi esistono tutti con questa stringa ci creo, con un'altro pulsante le cartelle che ora voglio aprire


    Call MkDir("\\Server\z\01_GESTIONE AZIENDA\COMMESSE\" & anno & strseparatore & "C_" & Left([txt_numero_commessa], 4) & "-" & Right([txt_numero_commessa], 4) & " " & ([ragione_sociale]) & "-" & ([riferimento]))
  • Re: Aprire cartelle

    Controlla la concatenzione della stringa con cui crei la directory, tenendo presente che:
    - deve esistere la directory padre prima che possa essere generata quella figlia;
    - si deve avere i diritti per la scrittura su dette folder.
  • Re: Aprire cartelle

    Trovato l'inghippo, le commesse vengono create con questo formato "0000/2018" mentre le cartelle che vado a creare e poi aprire vengono create in questo formato 0000-20108 in quanto windows non permette di mettere il simbolo "/" ora non so come risolvere il problema.
  • Re: Aprire cartelle

    Pippo_012 ha scritto:


    Trovato l'inghippo, le commesse vengono create con questo formato "0000/2018" mentre le cartelle che vado a creare e poi aprire vengono create in questo formato 0000-20108 in quanto windows non permette di mettere il simbolo "/" ora non so come risolvere il problema.
    Ciao Pippo,
    una possibile soluzione potrebbe essere quella di effettuare, all'interno della sola numerazione della commessa, la sostituzione del carattere "/" con il carattere "-" tramite la funzione Replace.
Devi accedere o registrarti per scrivere nel forum
14 risposte