Codice per aprire una cartella



  • Codice per aprire una cartella
    di dpg70 (utente non iscritto) data: 14/02/2014 13:56:13

    Come posso aprire una sottocartella chiusa (es. in una pendrive) contenente file.xls dal comando immagine di un'altro file, usando il codice vba.
    Vorrei visualizzare il contenuto della sottocartella per successivamente in modo manuale, effettuale la selezione.
    Grazie a tutti.



  • di Vecchio Frac data: 14/02/2014 14:40:03

    Ho letto alcune volte, ma non capisco cosa intendi per "comando immagine di un'altro file".
    "Visualizzare il contenuto della sottocartella" significa elencarne i file contenuti?
    Puoi essere più preciso?





  • di Grograman (utente non iscritto) data: 14/02/2014 14:57:08

    Bzzzzt!
     
    Option Explicit
    
    Private Sub Sfoglia_Files()
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''' ATTENZIONE RICHIEDE L'ATTIVAZIONE DELLA LIBRERIA MICROSOFT SCRIPTING RUNTIME '''''
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '' Per l'attivazione andare su "Strumenti", "Riferimenti", cercare e spuntare il nome ''
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
      
       Dim strPath As String
       Dim fd As FileDialog
       Dim objfd As Variant
       
       Dim objFSY As FileSystemObject
       Dim objFOL As Folder
       Dim objFIL As File
       
       Set fd = Application.FileDialog(msoFileDialogFolderPicker)
       With fd
         .InitialFileName = "C:"
         .Title = "Sfoglia cartelle"
         .ButtonName = "Ok"
         .AllowMultiSelect = False
         .InitialView = msoFileDialogViewDetails
         .Show
         For Each objfd In .SelectedItems
           strPath = objfd
         Next objfd
       End With
       
       If strPath = "" Then GoTo Uscita
       
       Set objFSY = New FileSystemObject
       Set objFOL = objFSY.GetFolder(strPath)
       
       For Each objFIL In objFOL.Files
               Debug.Print objFIL.Name 'o altre azioni da fare sui files
       Next
    Uscita:
       Set objFSY = Nothing
       Set objFOL = Nothing
       Set fd = Nothing
    End Sub
    



  • di Vecchio Frac data: 14/02/2014 15:22:37

    Va bene, ma Grò, spiegami cosa hai capito da qui: "dal comando immagine di un'altro file".
    Ho mandato in assistenza la palla di vetro e ancora non è tornata ^_^





  • di dpg70 (utente non iscritto) data: 14/02/2014 17:51:52

    Mi scuso della non chiarezza di esposizione, non possiedo terminologie tecniche corrette ed indicative ma Grograman mi ha creato un codice che mi porta in Sfoglia Cartelle, alla cartella voluta però selezionando dal "Label _ Nome:" l'elenco risulta vuoto, probabilmente perché sono contenuti solo files .xls. Io vorrei aprirla cosi da poter visualizzare tutti i files presenti or visualizzare i files .xls sull'elenco precedente.
    '
    Ho levato il Private per agganciare l'esecuzione, ad una immagine contenuta in Foglio1 del mio file .xls e non so se sia corretto, ma funziona.
    '
    Grazie e alle prossime, buona serata.



  • di patel data: 14/02/2014 18:21:57

    Deduco che il comando immagine è un pulsante per avviare la macro, prova questo
     
    Sub SelezionaCartella_e_File()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    Dim FileSelezionato As Variant
    Set wb = ActiveWorkbook
    
    If fd.Show = -1 Then
       FileSelezionato = fd.SelectedItems(1)
       Workbooks.Open Filename:=FileSelezionato
    End If
    Set fd = Nothing
    End Sub






  • di dpg70 (utente non iscritto) data: 14/02/2014 19:11:00

    Io arrivo al UserForm Sfoglia ma non entro nella cartella che contiene i miei files .xls
    vedi codice.
     
    Sub SelezionaCartella_e_File()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    Dim FileSelezionato As Variant
    Set wb = ActiveWorkbook
    
    If fd.Show = -1 Then
       Fatture.xls = fd.SelectedItems(1)
       Workbooks.Open Filename:="F:Soccorso Edile srlDosumenti srlVenditeFatture.xls " 
    End If
    Set fd = Nothing
    End Sub
    



  • di patel data: 14/02/2014 20:21:41

    non devi cambiare niente del codice, FileSelezionato è una variabile e deve rimanere tale





  • di dpg70 (utente non iscritto) data: 14/02/2014 21:02:13

    Anche non modificando arrivo al UserForm Sfoglia ma se precedentemente avessi inserito "Sfoglia la cartella Documenti", con l'avvio successivo della macro, ritorno sempre di default in "Soglia Documenti" e non direttamente nella cartella Fatture.xls (una sottocartella della pendrive).
    A differenza la macro di Grograman, arriva sì sempre in "Sfoglia cartella Fatture.xls" ma non visualizzo e ne riesco ad aprire i files .xls interni.
    Non è che devo indicare il percorso, indicando in modo permanente la mia cartella di ricerca?



  • di patel data: 15/02/2014 07:41:48

    prova questa
     
    Sub Opendialog9()
    Dim strFile As String, strPath As String
        With Application.FileDialog(msoFileDialogOpen)
            .InitialFileName = "F:Soccorso Edile srlDosumenti srlVendite*.xls*"
            .Title = "Seleziona il File"
            .AllowMultiSelect = False
            .Show
            If .SelectedItems.Count = 0 Then Exit Sub 
            strFile = .SelectedItems(1)
        End With
       Workbooks.Open Filename:=strFile
    End Sub






  • di dpg70 (utente non iscritto) data: 15/02/2014 08:30:42

    Penso l'UserForm sia quello giusto, riesco a visualizzare e selezionare i files contenuti nella cartelle ma la ricerca parte sempre automaticamente da cerca in: "Documenti" poi, io deve sempre selezionare passo passo il percorso per spostarmi sempre alla cartella interessata. Si può indirizzare subito il cerca in:"Fatture.xls" che è un file excel ma .xls fa parte del nome inserito non è l'estensione scritta dal programma.