Tabella di collegamenti ipertestuali ad un gruppo di file

Stampa
( 1 Vote ) 
Valutazione attuale:  / 1
ScarsoOttimo 
Categoria: Informatica
Data pubblicazione
Scritto da Magellano Visite: 4816

Tabella di collegamenti ipertestuali ad un gruppo di file

Come inserire collegamenti ipertestuali ad un gruppo di file usando il registratore di macro e modificando il codice in VBA.
In questa lezione vediamo come creare un foglio di calcolo che ci permetta di aprire rapidamente un file (un'immagine, un documento di testo, un brano musicale, ecc.) scelto da un elenco. Ad esempio potremmo digitalizzare con lo scanner le nostre fatture e richiamarle con un clic senza andare ad aprire la cartella che contiene i file.
Per ottenere ciò, verrà usato il registratore di macro di Excel, strumento molto potente che permette di automatizzare qualunque sequenza di comandi ottenuti da tastiera o con l'uso del mouse e di ripeterli con la semplice pressione di una combinazione di tasti o col clic su un pulsante personalizzato.
Essa non è altro che una routine in VBA che va in esecuzione al nostro comando.


Mettiamo ad esempio i nostri documenti in una cartella denominata Fatture 2010, denominandoli Fatt001.tif, Fatt002.tif, ecc. (il tipo di compressione del file può essere un altro ma la compressione tiff è ottima per il bianco e nero senza grigi).
Facciamo doppio clic sul nome del Foglio1 e rinominiamolo in FATTURE, poi posizioniamoci sulla cella A1 di tale foglio.
Attiviamo il Registratore di Macro. Si va su Strumenti/Macro/Registra nuova macro.
La finestra di dialogo che si apre permette di scegliere:
- un nome per la macro (di default è Macro1 se non ne sono state create altre)
- un tasto che, premuto assieme al tasto Control (Ctrl), manderà in esecuzione la macro
- lo spazio in cui memorizzare la macro; ad esempio possiamo creare una macro che può andare in esecuzione per qualunque cartella di Excel creata, memorizzandola su un modello
- una breve descrizione della macro

Esempio:
Provate a posizionarvi su una cella qualunque con del testo, attivate il registratore di macro e scegliete ctrl+q come combinazione di tasti per l'esecuzione automatica. Cliccando su Ok compare una finestrella col pulsante Arresta macro. Da questo momento i comandi verranno registrati.
Selezionate sfondo giallo, grassetto e corsivo per questo testo, quindi cliccate sul pulsante di arresto.
A questo punto, ogni volta che vorrete applicare rapidamente questa formattazione, basterà premere ctrl+q per ottenere in un sol colpo la formattazione desiderata.
Se la macro è stata memorizzata in questa cartella di lavoro, non la potrete utilizzare in altre cartelle.
Nel nostro caso vogliamo invece inserire in una sola botta su una colonna di celle una serie di links ad un gruppo di file.
Scrivete Fattura 001 nella prima cella, posizionate il puntatore sul quadratino di riempimento e trascinate verso il basso (se il quadratino non è presente controllate su Strumenti/Opzioni, scheda Modifica, casella Trascina cella; automaticamente le celle verranno riempite con numeri progressivi preceduti dalla parola Fattura. Andate avanti ad esempio fino alla Fattura 100.
Riposizionatevi sulla cella A1 ed attivate il registratore di macro. Nella finestra di dialogo che si apre, leggete il nome assegnato alla macro e cliccate semplicemente su Ok. Il registratore è in ascolto. Esso non registra i comandi che eventualmente vengono annullati.

Andate su Inserisci/Collegamento ipertestuale.
Qui potete inserire un collegamento ad una pagina della stessa cartella di lavoro, un collegamento ad un file o anche ad una pagina web. Cliccate su File... (i puntini indicano che si aprirà una finestra di dialogo). Cercate la cartella contenente il file Fatt001.tif, selezionatelo, mettete ctrl+q come comando da tastiera e cliccate su Ok. Fermate il registratore di macro.
Ora sulla cella A1 il testo Fattura 001 ha cambiato colore ed è sottolineato, ad indicare la presenza di un link. Questa formattazione può comunque essere modificata in base ai propri gusti.
Se ora posizionate il puntatore sulla cella, compare l'icona della mano ad indicare la presenza del link.


Ora viene il bello.

Andate su Strumenti/Macro/Visual Basic Editor
La finestra dovrebbe presentarsi con tre pannelli: a sinistra vi è la finestra dei progetti, al centro uno spazio per le finestre di editor delle routine, in basso la finestra Immediata, comoda per dare comandi da far eseguire immediatamente o per visualizzare valori di variabili o risultati dell'elaborazione.
Si noti che è presente un progetto, EuroTool.XLA, che è dentro un modello, protetto da password, che contiene probabilmente funzioni aggiuntive di Excel.
I programmi che vogliamo scrivere possono essere contenuti in ThisWorkbook (questa cartella di lavoro), nello spazio dedicato ai singoli fogli, oppure in un modulo a parte; in questo caso il Modulo1 è stato automaticamente aggiunto per contenere la macro. Apriamola per vedere come è fatta. Dovreste leggere la routine seguente:

Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 31/01/2010 da Andrea
'

'
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "C:\Documents and Settings\Andrea\Documenti\LEZIONI\fatture\Fatt001.tif" _
        , TextToDisplay:="fattura 001"
End Sub

ActiveSheet significa che si fa riferimento al foglio attivo in questo momento.
La riga col percorso del file sarà diversa in base alla posizione in cui risiedono i vostri documenti.
Se ci fosse qualche altra riga vorrebbe dire che avete cliccato su altre celle o altri pulsanti. Riprovate o cancellate il superfluo.
Tutto ciò che è preceduto da un apice viene considerato commento e non istruzione da eseguire.
Il trattino di 'underscore' (sottolineatura) presente ad esempio dopo & ".tif" indica che la riga di codice va a capo.

A questo punto occorre modificare la macro e trasformarla in una vera e propria routine.
Modifichiamo il testo come segue:

Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 31/01/2010 da Andrea
'

For k = 1 To 100

    ActiveSheet.Hyperlinks.Add Anchor:=Cells(k, 1), Address:= _
        "C:\Documents and Settings\Andrea\Documenti\LEZIONI\fatture\Fatt" & Right(Str(k + 1000), 3) & ".tif" _

Next k

End Sub

Si noti che l'editor del VBA formatta il testo mettendo le maiuscole alle parole chiave del linguaggio ed aggiungendo degli spazi.
Che cosa abbiamo modificato:

For k =1 to 100, significa che per tutti i valori di una variabile k devono essere eseguite le istruzioni che seguono fino alla istruzione Next k, che chiude il blocco di iterazione.
Nel percorso del file si è chiusa la stringa con doppio apice e si è inserita una stringa che viene calcolata a partire dal valore di k; il carattere & serve per concatenare più stringhe; poiché bisogna mettere tre cifre, si somma 1000 a k, si trasforma il numero in stringa di testo (Str(...) e si prendono i tre caratteri a destra (Right(...,3)).
Si è cancellato il pezzo dell'istruzione: ,TextToDisplay:="Fattura 001" per evitare di scrivere Fattura 001 su tutte le celle.

Prima di provare l'esecuzione rapida con ctrl+q, si può verificare il lavoro fatto con l'esecuzione passo-passo:
lasciate le due finestre di Excel e del VBA ben visibili; ci si posiziona sulla cella A1 del foglio di calcolo e nell'editor del VBA ci si posiziona all'interno della routine creata; si preme F8 (o si clicca sul pulsante della barra dei comandi di debug; se questa barra non c'è, la possiamo visualizzare da Visualizza/Barra degli strumenti della finestra del VBA): ad ogni pressione del tasto il programma avanza di una istruzione facendone vedere l'effetto sul foglio di calcolo.


Analogamente a quanto fatto, potremmo utilizzare il Foglio2 per contenere elenchi di altri documenti, ad esempio documenti di trasporto o altro.

Joomla 1.7 Templates designed by College Jacke