Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ricerca, estrazione e apertura files da cartella Windows

48 views
Skip to first unread message

Final Job

unread,
Mar 19, 2022, 7:11:12 PM3/19/22
to
Salve,
ho un database in excel che, nel Foglio Articoli, raccoglie varie
informazioni riguardanti parecchi articoli.

Ogni articolo occupa un record e per ogni record, tra gli altri, sono
presenti due dati:
1) alla colonna B un codice univoco di identificazione (ogni codice è
presente una sola volta nella colonna)
2) alla colonna D i nomi di alcune cartelle che si trovano nel percorso
C:\ArchivioDocumenti\...... (esempio "Magazzino1" ... "Magazzino2" ... e
così via)

Nelle cartelle "Magazzino1", "Magazzino2" ... ecc, sono presenti
documenti che riguardano gli articoli contenuti nel DataBase.

Ho bisogno di un codice che, se lanciato, vada a leggere nella colonna D
della riga dove si trova il cursore, il nome della cartella di
competenza per poi puntarla e andare a cercare al suo interno i files
che contengono nel loro nome il codice indicato nella colonna B della
stessa riga.

Questi files possono essere sostanzialmente PDF, Immagini (PNG o Jpeg),
files di testo o un indirizzo web.

Una difficoltà è che in queste cartelle sono spesso presenti più files
per uno stesso codice. In questi casi, serve poter scegliere cosa aprire
mentre, se è presente un solo file, lo si apre direttamente con i
programmi predefiniti di windows.

La cartella si chiama "GestioneArticoli.xlsm"
Il foglio nel quale sono contenuti i records è nominato "Articoli"
L'estensione della tabella è rilevabile alla colonna B.
La colonna B non ha celle vuote fino all'ultimo record.
La colonna D, invece, non è uniformemente popolata; molti records non
hanno indicazioni in questa colonna.
Le intestazioni sono alla riga 4.
La riga 5 è popolata solo in alcune colonne.
I records partono dalla riga 6.

Io non ci riesco per cui, se avete voglia e tempo, qualche sostanziosa
soluzione sarebbe molto gradita.
Grazie
Ale


--
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com

issdr

unread,
Mar 20, 2022, 12:38:25 PM3/20/22
to
Final Job wrote:

> ho un database in excel che, nel Foglio Articoli, raccoglie varie
> informazioni riguardanti parecchi articoli.
>
> Ogni articolo occupa un record e per ogni record, tra gli altri, sono
> presenti due dati:

[...]

usi termini troppo "liquidi" per me. semplifico un po' e apro una
finestra di esplora file con il/i file/link richiesto/i (windows 10 in
italiano)

stai sulla riga dell'articolo (una cella vale l'altra) e lancia questa
macro:

Sub Apri()
With ActiveCell
If .Row > 5 And Cells(.Row, "B") <> "" And Cells(.Row, "D") <> "" Then
Shell ("explorer ""search-ms:crumb=nomefile:*""" _
& Cells(.Row, "B") _
& """*&crumb=location:C:\ArchivioDocumenti\""" _
& Cells(.Row, "D") _
& """&crumb=NON tipo:cartella""")
End If
End With
End Sub

Final Job

unread,
Mar 22, 2022, 4:24:20 PM3/22/22
to
Il 20/03/2022 17:38, issdr ha scritto:
>
> usi termini troppo "liquidi" per me.
Se per "liquido" intendi eccessivamente minuzioso si; mi stavo aggirando
per percorsi ben più articolati e pensavo servisse spiegare di più.

> stai sulla riga dell'articolo (una cella vale l'altra) e lancia questa
> macro:Funziona.

Una volta puntata la cartella e mostrata l'anteprima, è possibile far
aprire automaticamente una tipologia di file, se presente (.PDF, .Jpeg
.PNG)?

Final Job

unread,
Mar 22, 2022, 5:02:48 PM3/22/22
to
Non riesco a trovare riferimenti per questi due passi

search-ms:crumb=nomefile:*""" & Cells(.Row, "B")

Cells(.Row, "D") & """&crumb=NON tipo:cartella"""

issdr

unread,
Mar 22, 2022, 7:00:04 PM3/22/22
to
Final Job wrote:

> Una volta puntata la cartella e mostrata l'anteprima, è possibile far
> aprire automaticamente una tipologia di file, se presente (.PDF, .Jpeg
> .PNG)?

sono un invio o due click dell'utente, ti ho scritto che stavo
semplificando... magari qualcun altro ti darà una soluzione più calzante
ai tuoi desiderata

issdr

unread,
Mar 22, 2022, 7:00:23 PM3/22/22
to
Final Job wrote:

> Non riesco a trovare riferimenti per questi due passi
>
> search-ms:crumb=nomefile:*""" & Cells(.Row, "B")
>
> Cells(.Row, "D") & """&crumb=NON tipo:cartella"""

devi prima capire la funzione Shell (hint: i trattini bassi spezzano
un'unica linea di comando; le & fuori virgolette uniscono stringhe di
testo)

Final Job

unread,
Mar 22, 2022, 7:05:00 PM3/22/22
to
Il 23/03/2022 00:00, issdr ha scritto:

> devi prima capire la funzione Shell
non ho trovato quella sintassi, cercherò nuovamente

(hint: i trattini bassi spezzano
> un'unica linea di comando; le & fuori virgolette uniscono stringhe di
> testo)
fino a li ci arrivo :-))

Final Job

unread,
Mar 22, 2022, 7:05:52 PM3/22/22
to
Il 22/03/2022 23:58, issdr ha scritto:

> sono un invio o due click dell'utente, ti ho scritto che stavo
> semplificando... magari qualcun altro ti darà una soluzione più calzante
> ai tuoi desiderata

Ma funziona, era ciò che chiedevo.

E ti ho ringraziato, nuovamente grazie

issdr

unread,
Mar 23, 2022, 6:52:29 AM3/23/22
to
Final Job wrote:

>> devi prima capire la funzione Shell
> non ho trovato quella sintassi, cercherò nuovamente

è la funzione con un unico comando: explorer (che è l'eseguibile di
esplora file) seguito dall'URI della ricerca da compiere, costruita
prelevando stringa articolo e nome cartella dal tuo foglio. se sei
curioso, puoi vedere il risultato cliccando sulla barra degli/dei
indirizzi/percorsi di esplora file aperta dall'istruzione. la parte in
italiano è ciò che potresti scrivere tu nella casella di ricerca.

spero di essere stato chiaro, ciao

Final Job

unread,
Mar 23, 2022, 9:25:55 AM3/23/22
to
si, volevo individuare meglio i criteri costruttivi, diciamo così,
dell'istruzione

Grazie nuovamente.

Final Job

unread,
Apr 3, 2022, 11:13:16 AM4/3/22
to
Il 23/03/2022 11:52, issdr ha scritto:

> è la funzione con un unico comando: explorer (che è l'eseguibile di
> esplora file) seguito dall'URI della ricerca da compiere, costruita
> prelevando stringa articolo e nome cartella dal tuo foglio. se sei
> curioso, puoi vedere il risultato cliccando sulla barra degli/dei
> indirizzi/percorsi di esplora file aperta dall'istruzione. la parte in
> italiano è ciò che potresti scrivere tu nella casella di ricerca.

Ciao
Le cartelle di ricerca sono in realtà delle sottocartelle di una
gerarchicamente superiore nominata "RootDocumenti".

Posto che quanto già trattato lavora egregiamente, domando come sarebbe
possibile estendere la ricerca di una stringa che viene digitata in D3
del foglio attivo in tutte le sottocartelle contenute in "RootDocumenti"
esponendo sempre, come risultato, la lista delle corrispondenze
eventualmente trovate tra le quali scegliere il file interessato da aprire.
Grazie
Ale

issdr

unread,
Apr 3, 2022, 12:15:10 PM4/3/22
to
Final Job wrote:

> sarebbe possibile estendere la ricerca di una stringa che viene
> digitata in D3 del foglio attivo in tutte le sottocartelle contenute
> in "RootDocumenti" esponendo sempre, come risultato, la lista delle
> corrispondenze eventualmente trovate tra le quali scegliere il file
> interessato da aprire.

certo, ti basta riadattare l'URI. termini: cartelle di ricerca, immagino
siano le cartelle e sottocartelle in cui effettuare la ricerca; stringa
in D3, è la stringa contenuta nei file da trovare. confermi?

Final Job

unread,
Apr 3, 2022, 12:31:31 PM4/3/22
to
Il 03/04/2022 18:15, issdr ha scritto:
>
> certo, ti basta riadattare l'URI. termini: cartelle di ricerca, immagino
> siano le cartelle e sottocartelle in cui effettuare la ricerca; stringa
> in D3, è la stringa contenuta nei file da trovare. confermi?

Grazie per l'interessamento, e sempre che sia possibile.

In D3 si trova la stringa contenuta nei files da trovare, si.

La differenza tra lo scenario precedente e quello attuale è che, mentre
prima io sapevo dove andare a cercare (in una sottocartella il cui nome
era conosciuto), adesso io non so in quale delle sottocartelle contenute
in C:\"RootDocumenti\" è contenuto il file che nel suo nome contiene la
stringa.

C'è un'ulteriore variabile: i files che corrispondono al criterio di
ricerca possono essere più di uno, in cartelle differenti e dovrei poter
scegliere quale tra tutti questi aprire.

E' fuori dalla mia portata.

issdr

unread,
Apr 3, 2022, 4:04:29 PM4/3/22
to
Final Job wrote:

> In D3 si trova la stringa contenuta nei files da trovare, si.
>
> La differenza tra lo scenario precedente e quello attuale è che,
> mentre prima io sapevo dove andare a cercare (in una sottocartella il
> cui nome era conosciuto), adesso io non so in quale delle
> sottocartelle contenute in C:\"RootDocumenti\" è contenuto il file che
> nel suo nome contiene la stringa.
>
> C'è un'ulteriore variabile: i files che corrispondono al criterio di
> ricerca possono essere più di uno, in cartelle differenti e dovrei
> poter scegliere quale tra tutti questi aprire.

in realtà la ricerca che ti ho proposto viaggiava già attraverso le
sottocartelle, quindi...

Sub Apri_ricorsivo()
If [D3].Value <> "" Then
Shell ("explorer ""search-ms:crumb=nomefile:*""" _
& [D3].Value _
& """*&crumb=location:C:\RootDocumenti""" _
& """&crumb=NON tipo:cartella""")
End If
End Sub

nella finestra dei risultati poi puoi cambiare modalità di
visualizzazione, ti suggerisco la dettagliata, dove cliccando sulla
colonna delle cartelle puoi ordinare i risultati in base a dove si
trovano

Final Job

unread,
Apr 3, 2022, 8:08:18 PM4/3/22
to
Il 03/04/2022 22:04, issdr ha scritto:


> in realtà la ricerca che ti ho proposto viaggiava già attraverso le
> sottocartelle, quindi...
>
> Sub Apri_ricorsivo()
> If [D3].Value <> "" Then
> Shell ("explorer ""search-ms:crumb=nomefile:*""" _
> & [D3].Value _
> & """*&crumb=location:C:\RootDocumenti""" _
> & """&crumb=NON tipo:cartella""")
> End If
> End Sub
>
> nella finestra dei risultati poi puoi cambiare modalità di
> visualizzazione, ti suggerisco la dettagliata, dove cliccando sulla
> colonna delle cartelle puoi ordinare i risultati in base a dove si
> trovano

Ti ringrazio.

Final Job

unread,
Apr 4, 2022, 10:28:41 AM4/4/22
to
Il 03/04/2022 22:04, issdr ha scritto:
> Sub Apri_ricorsivo()
> If [D3].Value <> "" Then
> Shell ("explorer ""search-ms:crumb=nomefile:*""" _
> & [D3].Value _
> & """*&crumb=location:C:\RootDocumenti""" _
> & """&crumb=NON tipo:cartella""")
> End If
> End Sub

mi da errore:
Explore.exe
impossibile trovare il file "(null)". Verificare che il nome del file
sia corretto, quindi riprovare.

Il file esiste ed è presente sia nella Root che in tutte le sottocartelle.

issdr

unread,
Apr 4, 2022, 3:07:44 PM4/4/22
to
Final Job wrote:

> impossibile trovare il file "(null)". Verificare che il nome del file
> sia corretto, quindi riprovare.
>
> Il file esiste ed è presente sia nella Root che in tutte le sottocartelle.

hai ragione, pasticcio con le "", prova così:

Sub Apri_ricorsivo()
If [D3] <> "" Then
Shell ("explorer ""search-ms:crumb=nomefile:*" _
& [D3] _

Final Job

unread,
Apr 4, 2022, 3:58:36 PM4/4/22
to
Il 04/04/2022 21:07, issdr ha scritto:

> Sub Apri_ricorsivo()
> If [D3] <> "" Then
> Shell ("explorer ""search-ms:crumb=nomefile:*" _
> & [D3] _
> & "*&crumb=location:C:\RootDocumenti" _
> & "&crumb=NON tipo:cartella""")
> End If
> End Sub


Funziona. Grazie ancora
Ale
0 new messages