Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] GetOpenFileName - lista di nomi fiel predefiniti

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi maxmula » 16/06/10 11:28

Ciao a tutti,
ho una cartelal che contiene decine di file di testo. QUesti sono generati automaticametne da una macro ed hanno nomi del tipo:

    SET1_1QAZ
    SET1_2WSX
    SET1_3EDC
    SET1_4RFV
    SET2_1QAZ
    SET2_2WSX
    SET2_3EDC
    SET2_4RFV
    SET3_1QAZ
    SET3_2WSX
    SET3_3EDC
    SET3_4RFV
    ...

E così via.
Per aprire i file uso questo codice:

Codice: Seleziona tutto
        APRI = Application.GetOpenFilename("Log files, *.log", MultiSelect:=True)



Mi piacerebbe poter filtrare la visualizzazione, mostrando ad esempio tutti i file il cui nome inizia per "SET3".

Domandona:
1) Come faccio, da codice, a settare il campo Nome File, ad esempio come "SET3_*"

2) Al campo Nome file è associata una ComboBox che tiene traccia dei filtri digitati in precedenza. E' anche possibile pre-caricarla con delle stringhe a mio piacimento?

Illuminatemi pls....

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Sponsor
 

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi Flash30005 » 16/06/10 11:54

Suppongo che l'elenco dei file che hai, abbiano estensione ".log" (che non hai riportato...?)
Se così e il codice da te scritto li apre tutti
potresti usare una variabile tipo:
Codice: Seleziona tutto
NF = "SET3"
APRI = Application.GetOpenFilename("Log files, " & NF & "?????.log", MultiSelect:=True)


NF potrebbe essere anche il valore di una cella, di un combox o altro
I cinque punti interrogativo "?????" sostituiscolo i cinque caratteri rimanenti del nome del file "_1QAZ"


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi maxmula » 16/06/10 13:23

Hmmmm.... la cosa potrebbe avere un senso ed in effetti ci avevo anche pensato.
Però questo cambia il campo "Tipo FIle" e non "Nome File"... Purtroppo, per qualche oscura ragione VBA non sembra gradire i caratteri jolly nel campo FileFilter ed accetta solo stringhe nel formato "*.estensione"... :-/

MAx

PS. in effetti non ho riportato le estensioni (ed anche i nomi dei veri file non hanno tutti la stessa lunghezza)
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi maxmula » 16/06/10 14:15

Nel frattempo ho continuato a scrtabellare tra i siti...
LA soluzione che più si avvicina a quello che vorrei fare è questa:

Codice: Seleziona tutto
Set filetoopen = Application.FileDialog(msoFileDialogOpen)
    filetoopen.InitialFileName = INITIALPATH & FILEFILTER 
                         'INITIALPATH è IL PERCORSO DA APRIRE ALLA VISUALIZZAZIONE
                          'DELLA FINESTRA (es. "d:\reporting\logs\")
                         'FILEFILTER E' UN FILTRO, TIPO "*.txt"
    filetoopen.Show
    C = filetoopen.SelectedItems.Count
    If filetoopen.SelectedItems.Count = 0 Then
        APRI = Null
    Else
        ReDim APRI(1 To C)
        For Q = 1 To C
            APRI(Q) = filetoopen.SelectedItems(Q)
        Next
    End If




Con questa routine posso impostare il campo "Nome file"... però non riesco ancora a modificare la lista dei filtri proposti (sui nomi, non sulle estensioni): a quanto sembra traccia soltanto le ricerche già eseguite.
Poco male: così è già meglio di prima! :)


Ciao e grazie!
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi Anthony47 » 16/06/10 14:26

Ti stavo per rispondere con questa macro, non so se risponde al tuo problema residuo (che pero' non ho capito):
Codice: Seleziona tutto
    With Application.FileDialog(msoFileDialogFilePicker)
            .AllowMultiSelect = False
            .Filters.Clear
            .InitialFileName = "SET3*"   '<<< Filtro per nome
            .Filters.Add "Log Files", "*.log", 1   '<<< Filtro per estensione
'            .Filters.Add "Text", "*.Txt", 2       '<< Eventuale altra opzione di filtro
             .Show
         If .SelectedItems.Count = 0 Then
         MsgBox ("Nessuna voce selezionata, procedura annullata")
         GoTo Esci
         End If
         FullNome = .SelectedItems(1)     'Directory e Nome del file selezionato
        End With
Esci:


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi Flash30005 » 16/06/10 15:08

Beh, non ho testato i caratteri jolly (?????) nella tua macro ma io li uso spesso quando devo crearmi un elenco in un foglio di excel es.:
Codice: Seleziona tutto
Public Perc As String
Sub Avvio()
Perc = "C:\Prova\"   '<<<< percorso dei file testo
Call ElencoFileTxt
'Macro Finale
End Sub
Sub ElencoFile(Direct As String, Estens As String, Inicell As Range)
  Dim i As Integer, f As String
  ChDrive "C"
  ChDir Direct
  f = Dir(Estens)
  If f = "" Then Exit Sub
  While f <> ""
    i = i + 1
    Inicell(i) = f
    f = Dir
  Wend
End Sub
Sub ElencoFileTxt()
Worksheets("Foglio1").Select
Range("A1").Select
  With ActiveCell
    Worksheets("Foglio1").Range(.Cells(1), .End(xlDown)).ClearContents
  End With
    ElencoFile Direct:=Perc, Estens:=1 & "?.txt", Inicell:=ActiveCell  '<<<<< riga filtro
End Sub


L'ultima riga della macro "ElencoFileTxt"
fa da filtro, in pratica selezionerà tutti i file .txt che iniziano per "1" o hanno al massimo (oltre all'1) un solo carattere al seguito.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi maxmula » 16/06/10 21:58

[quote="Anthony47"]Ti stavo per rispondere con questa macro, non so se risponde al tuo problema residuo (che pero' non ho capito):

La tua macro è analoga alla soluzione che ho adottato (finestra di dialogo di sistema anziché controllo di Excel).

Provo a spiegare il problema residuo:
mi piacerebbe fare in modo che l'utente possa selezionare dalla combobox del Nome File il filtro da applicare (ad esempio "SET1*", "SET2*", "SET3*" ecc.

Purtropo però, a quanto ho capito, non è possibile assegnare dei valori a questa combobox: è la finestra di dialogo stessa che l'aggiorna salvando i filtri digitatia mano nelle sessioni precedenti...
Spero che così sia più chiaro...

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel] GetOpenFileName - lista di nomi fiel predefiniti

Postdi Anthony47 » 17/06/10 02:36

Si, le macro sono equivalenti a parte il ".Filters.Clear" che avevo messo in qualche relazione al problema residuo, che ora penso di aver capito.
In effetti puoi predisporre piu' valori di filtro sull' estensione ma non puoi impostare piu' valori di InitialFileName (nel senso che ne' tu ne' io siamo riusciti a farlo...); se le scelte sono sempre le stesse, probabilmente puoi usare un combobox esterno per preparare questa scelta, da usare poi come InitialFileName; pero' a quel punto (se la directory e' fissa o e' da scegliere tra un elenco noto) ti potrebbe forse convenire portare tutto su una userform e avere una sola user interface...

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] GetOpenFileName - lista di nomi fiel predefiniti":


Chi c’è in linea

Visitano il forum: alfrimpa e 14 ospiti