Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [vba] contenuto di una cartella

    esiste un comando a cui passato un path fornisce l'elenco dei files contenuti all'interno della directory indicata ?
    grazie

  2. #2
    codice:
    Dim ElencoFile() As String
    Dim StringaAppoggio As String
    Dim ContatoreFile As Integer
    
    ContatoreFile = 0
    Redim Preserve ElencoFile(ContatoreFile)
    StringaAppoggio = Dir (Percorso & "*.*")
    ElencoFile(ContatoreFile) = StringaAppoggio
    
    While StringaAppoggio <> ""
       StringaAppoggio = Dir ()
       If StringaAppoggio <> "" Then
          ContatoreFile = ContatoreFile + 1
          Redim Preserve ElencoFile(ContatoreFile)
          ElencoFile(ContatoreFile) = StringaAppoggio
        End If
    Wend
    ElencoFile conterrà tutti i nomi dei file trovati per un totale di ContatoreFile + 1

  3. #3
    ti ringrazio
    la sto provando ora ma alla riga
    StringaAppoggio = Dir(CartellaFile & "*.*")
    la variabile StringaAppoggio non viene valorizzata e allora non entra nel ciclo che dovrebbe creare l'array.
    sicuro che Dir sia una funzione di vba ? forse funziona solo in vb ?

  4. #4
    Si, ti posto l'esempio riportato dalla guida di VBA
    codice:
    MyPath = "c:\"    ' Imposta il percorso.
    MyName = Dir(MyPath, vbDirectory)    ' Recupera la prima voce.
    Do While MyName <> ""    ' Avvia il ciclo.
        ' Ignora la directory corrente e quella di livello superiore.
        If MyName <> "." And MyName <> ".." Then
            ' Usa il confronto bit per bit per verificare se MyName è una directory.
            If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
                Debug.Print MyName    ' Visualizza la voce solo
            End If    ' se rappresenta una directory.
        End If
        MyName = Dir    ' Legge la voce successiva.
    Loop
    Sicuro che la variabile Percorso sia corretta? (Deve terminare con "\")

  5. #5
    verificato ed avevi ragione
    grazie 1000

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao Luciano79!
    Ho fatto una ricerca su MSDN sull'argomento postato, però non ho trovato soluzione al mio problema, che ora ti espongo.
    In sostanza vorrei ottenere i files contenuti in una sottocartella, per poi copiarli uno per uno. Il percorso è di questo tipo:
    codice:
    StringaAppoggio = Dir(App.Path & "\DATI\*.*")
    In effettti con
    codice:
    StringaAppoggio = Dir(App.Path & "\*.*")
    il codice funziona, ma se aggiungo \DATI Non si attiva.
    C'è una soluzione ?
    Ciao!
    LM

  7. #7
    .... strano!
    Il parametro che passi alla Dir() è una semplice stringa, poco importa se lo passi come variabile, come dato fisso, come tante variabili... quello che conta è la stringa finale, quindi se la sintassi è giusta (nell'esempio che mi posti lo è) e non funziona sicuramente c'è qualcosa che non va nel percorso.
    App.Path restituisce il percorso dell'eseguibile. Se lo lanci da un collegamento restituisce comunque il percorso dell'eseguibile. Se lanci il debug restituisce il percorso del progetto. Dovresti quindi far visualizzare App.Path e verificarlo.

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Luciano79,
    del percoso sono sicuro, ora provo ad associare un controllo alla routine per vedere quello che effettivamente fa.
    Grazie per la risposta.
    LM

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.