Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Excel: tabella con collegamenti. Opzioni
mblu
Inviato: Monday, November 06, 2006 9:51:02 AM
Rank: AiutAmico

Iscritto dal : 6/28/2005
Posts: 58
Ciao,
ho una tabella in excel con l'anagrafica di persone ed affianco una colonna con una numerazione crescente tale che , per es. a Bianchi Mario corrisponde il numero 1 ; a Rossi Antonio il numero 2 e così via.
Ho realizzato una cartella, con delle sotto cartelle numerate 1, 2 ecc. In modo che la cartella 1 contenga tutte le informazioni di Bianchi Mario; la cartella 2 quelle di Rossi Antonio ecc.
Chiedo: è possibile, mentre sono nella tabella excel, digitare in una cella il numero per es. 1 e aprire così automaticamente la cartella n.1 (che corrisponde a Bianchi Mario) e mostrare tutti i file in essa contenuti (file di word, jpg, ecc) ?
Non so se sono stato abbastanza chiaro.

Grazie per l'aiuto
Giuseppe
Sponsor
Inviato: Monday, November 06, 2006 9:51:02 AM

 
a10n11
Inviato: Monday, November 06, 2006 12:29:39 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
prova a valutare questa soluzione.
Le macro sotto descritte, prevedono che la cartella contenenti le sottocartelle con le informazioni si chiami "Prova" e sia contenuta nella radice del disco "C", il nome della sottocartella sia prelevabile dal valore della cella A1 ( da cambiare secondo necessità)del foglio di lavoro. L'estrazione dei file contenenti nella sottodirectory avviene nel foglio di lavoro a partire dalla cella E5 (da cambiare secondo necessità), ai nomi dei file estratti, viene applicato un collegamento ipertestuale per l'apertura e visione.
<font color=blue>
Dim riga As Integer
Sub cercafile()
riga = 5
Range(Cells(riga, 5), Cells(riga, 5).End(xlDown)).ClearContents
miapath = "c:\prova\"
SDir = [a1].Value ' prende il valore della cella A1 che identifica la sottocartella
Set fs = Application.FileSearch
With fs
.NewSearch
.LookIn = miapath & SDir & "\"
.SearchSubFolders = True
.Filename = "*.*"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
<font color=red>riga = 5</font id=red> <font color=red>va eliminata questa riga è di troppo</font id=red>
For I = 1 To .FoundFiles.Count
X = .FoundFiles(I)
Cells(riga, 5).Value = X
collIper
riga = riga + 1
Next I
End If
End With
Set fs = Nothing
End Sub
</font id=blue>
<font color=blue>
Sub collIper()
'crea un collegamento ipertestuale ai file presenti nella subdirectory
Cells(riga, 5).Select
test = ActiveCell.Value
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=test
End Sub
</font id=blue>

saluti
Andrea



Edited by - a10n11 on 11/07/2006 09:35:50

Edited by - a10n11 on 11/07/2006 15:43:33

mblu
Inviato: Monday, November 06, 2006 7:28:48 PM
Rank: AiutAmico

Iscritto dal : 6/28/2005
Posts: 58
Ciao,
ti ringrazio inanzitutto della risposta; volevo chiederti alcuni chiarimenti prima di provare la macro: ovvero va bene per la cartella "Prova" nella radice di C ; non ho afferrato il concetto delle sottocartelle cioè devo dargli lo stesso nome di quello che propongo nella colonna A1? Nella cella E5 devo digitare il numero della sottocartella che desidero aprire ? Infine le due macro devo copiarle così come le hai scritte e quindi abbinare un tasto per lanciarle?
Scusami dell'ulteriore disagio che ti arreco.
Grazie Andrea
Ciao
a10n11
Inviato: Monday, November 06, 2006 7:52:17 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
sono andato dietro alla tua domanda.
Ho supposto che tu abbia una cartella chiamata "prova" al suo interno avrai tante sottocartelle per quanti sono i nominativi. il nome delle sottocartelle saranno i numeri che associ ai nominativi stessi (1 - 2- 3 ecc)es. c:\prova\1 - c:\prova\2 ecc..
Ora se in una cella digiti un numero corrispondente ad un nominativo (nella macro ho indicato la cella A1 ma puoi cambiarla come ti pare)eseguendo la macro troverai l'elenco dei file contenuti nella Cartella corrispondente al valore digitato.
Tieni presente che l'elenco dei file viene scritto a partire dalla cella E5 accertati pertanto che lo spazio sia inutilizzato altrimenti cambia la destinazione.
Le macro puoi copiarle così come si trovano e associarle ad un pulsante oppure creare un elenco a discesa per i numeri di riferimento ed applicarci le macro.
saluti
Andrea



Edited by - a10n11 on 11/06/2006 19:55:10

mblu
Inviato: Tuesday, November 07, 2006 9:21:36 AM
Rank: AiutAmico

Iscritto dal : 6/28/2005
Posts: 58
Ciao,
ho copiato la macro nel file excel (che ho chiamato cartella di prova localizzata sul desktop) ho associato un tasto; quando nella cella A1 digito la cartella che vorrei visualizare un msg mi avverte : errore di run-time 1004; errore definito dall'applicazione o dall'oggetto. Se clicco su debug un cursore si ferma sulla riga Cells(riga, 5). select
Sicuramente sbaglio qualche passaggio...
Puoi venirmi incontro ?
Ti ringrazio
ciao
a10n11
Inviato: Tuesday, November 07, 2006 9:40:22 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
hai copiato anche la riga della dichiarazione della variabile
Dim riga As Integer
in testa alla Sub Cercafile()
perchè da come dici, sembra che la macro CollIper() perda il valore della variabile stessa.
se non riesci mandami il tuo file di esempio.
saluti
Andrea


Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.