
Private Sub CommandButton2_Click() Dim fd As FileDialog 'Dichiarazione della variabile "fd" come FileDialog object. Set fd = Application.FileDialog(msoFileDialogFilePicker) 'creiamo l'oggetto FileDialog 'come finestra di dialogo per le cartelle e lo 'assegniamo alla variabile "fd" 'Sotto: dichiariamo la variabile "FileSelezionato" che conterrà il "percorso" 'completo dei files selezionati. Sebbene il percorso sia una 'Stringa la variabile deve 'essere Variant perché il Ciclo For Each... Next lavora solo con variabili Variant o Objects Dim FileSelezionato As Variant With fd 'Usiamo l'istruzione With...End With per eseguire una serie di istruzioni con l'oggetto FileDialog. 'Usiamo il metodo Show per mostrare la dialog box ed usiamo la condizione If 'per verificare se l'utente ha premuto il pulsante (di azione, 'di conferma) "OK" If .Show = -1 Then 'se la condizione si è verificata, allora.... 'iniziamo un ciclo For Each Next necessario per scorrere l'insieme dei files che 'avremo selezionato (e SOLO QUELLI) (la Colletion del 'FileDialogSelectedItems) 'nella finestra '"Sfoglia" - sarà possibile selezionare anche files non contigui 'tenendo premuto il tasto 'CTRL (Control) mentre si selezionano i files. For Each FileSelezionato In .SelectedItems ''FileSelezionato è ora una stringa che contiene il path (il percorso) di ogni Item '(.In SelectedItems) selezionato. 'e per ogni FileSelezionato iniziamo un ciclo interno While..Wend 'che cerchi la prima cella libera e ci scriva nome e percorso. Dim iRow, icol As Integer iRow = 2 'inizio la ricerca dalla riga 2 del foglio come esempio icol = 1 'e dalla colonna 1 la colonna A While Cells(iRow, icol).Value <> "" iRow = iRow + 1 Wend TextBox11 = FileSelezionato Next FileSelezionato Else 'se invece l'utente avrà premuto il pulsante annulla, si esce dall'istruzione End If End With ' eliminiamo la variabile oggetto dalla memoria Set fd = Nothing End Sub |
