I Preferiti. - dal 04/09/04 pagina vista: volte

Ovvero: come realizzare un database in Excel con l'elenco di siti internet e la possibilità di collegarsi direttamente ad un sito.

Questo esercizio non vuole sostituirsi alla gestione "Preferiti" di OutLook, ma è una buona occasione per cimentarsi nella gestione di database (le procedure valgono per tutti i tipi di gestione tabelle/elenchi), in questo caso con l'aggiunta di istruzioni che sfruttando gli "Hyperlinks" ci consentano di ottenere i collegamenti ad Accesso Remoto e quindi al Web.

Una delle deficienze maggiori nella gestione dei "Preferiti", è la mancanza di rintracciare un indirizzo memorizzato, da note o appunti che avremmo voluto scrivere per descrivere il contenuto del sito, ad esempio, trovare tutti i siti registrati in Preferiti, che trattino la "programmazione", oppure "musica", ecc. ecc., da noi scritti nell'apposito campo "Note sul Sito".

Il nostro database conterrà un campo nel quale potremo inserire una descrizione appropriata su un sito, e sfrutteremo un ciclo di ricerca su quel campo, per trovare una parola "chiave" che ci restituirà tutti i siti che conterranno, nel campo "Note sul Sito", quella parola.

Un occasione quindi, per tutti coloro che vorranno tenere un file .xls come gestione di indirizzi web, con tutti i vantaggi che ciò comporta:

  • possiamo tenere il file nella cartella Documenti, cartella che di solito siamo abituati a salvare in caso di formattazione dell'hard-disk (la cartella di sistema "Preferiti" viene invece regolarmente dimenticata, e persa con la formattazione).

  • spesso memorizziamo indirizzi di siti nei quali per accedere ad una particolare sezione, dobbiamo digitare un nome utente ed una password (che spesso non ricordiamo): il database prevede la registrazione di nome utente e di una password per ogni sito.

  • lo stesso può accadere se siamo in possesso di un sito proprio, e vogliamo memorizzare da qualche parte anche l' FtpAddress insieme al nome utente e password. In questo caso il database servirà solo come registrazione di questi dati e NON come collegamento (Hyperlink) FTP.

  • il campo "Note sul Sito" ci consente di prendere appunti specifici, che ci serviranno poi per rintracciare i siti.

  • unico accorgimento: nella textbox1 occorre digitare l'esatto indirizzo web: www.nomesito.estensione per i domini registrati (esempio: www.tin.it), oppure tuonome.nomeserver.estensione per i siti senza dominio (quelli offerti gratuitamente dai vari server, esempio: ennius.interfree.it), SENZA scrivere " http:// " in quanto provvede il codice ad aggiungerlo.

Il progettino è semplice, ed è simile a tanti altri esempi presenti sul sito in tema di gestione database (da "Database-Videoteca" a "Agenda Appuntamenti", a "Il mio Erbario", a "Database-GestioneMagazzino", ecc.): impostata una tabella sul foglio di lavoro, si usa una UserForm per l'inserimento, la consultazione, l'aggiornamento di dati.

Rimando eventualmente agli articoli citati per le spiegazioni sui cicli che lavorando sugli "insiemi" (le celle del foglio, e le textbox sull'UserForm), ci consentono la gestione dati, segnalo invece le varianti (istruzioni) qui inserite sia per dire ad Excel che stiamo inserendo un "Collegamento Ipertuestuale" (HyperLink/HyperLinks), sia che vogliamo "connetterci" ad un "Collegamento Ip.". Vediamo intanto un'immagine della UserForm:

La gestione è semplice: col pulsante "NUOVO" verrà cercata la prima riga libera, vengono resi non visibili i pulsanti "NUOVO" e "AGGIORNA", ed appare il pulsante "REGISTRA": basterà scrivere i dati nelle textbox e premerlo per vedere registrati i nuovi dati. Alla pressione ritorneranno visibili  i predetti pulsanti e reso invisibile "REGISTRA".

Lo ScrollBar (rosso) ci consente di scorrere uno ad uno tutti i presenti, ed il pulsante "AGGIORNA" ci consente di modificare i dati attualmente selezionati.

Il CheckBox "AGGIUNGI AI PREFERITI", di default è impostato a False (non spuntato): saremo noi che metteremo un segno di spunta nel caso volessimo, tra i siti registrati, evidenziare con questo tutti i siti di nostro particolare interesse. Il pulsante "Cerca Tutti i Preferiti" eseguirà un ciclo tra tutti i dati registrati, cercando nella colonna "Preferiti" le voci "VERO", e ci chiederà se vorremo fermarci al sito proposto (Excel registra come "vero" o Falso" i dati che inseriremo tramite il CheckBox : infatti viene restituito un valore boleano (si o no, vero o falso) a secondo che il CheckBox sia "spuntato" o meno).

Infine la sezione "Ricerca" : a secondo l'opzione selezionata (Cerca URL oppure Cerca per Note Sul Sito), verrà cercata la parola (intera o in parte) che avremo scritto nella textbox (scrivi il nome da cercare).

Il pulsante "AL FOGLIO" (una label con con la proprietà SpecialEffect impostata a : 1- fmSpecialEffectRaised) ci consente di accedere al foglio di lavoro che ora non vediamo, chiudendo la UserForm; infatti quando apriamo il file, la seguente istruzione posta nell'evento Workbook_Open, ci permette di minimizzare Excel e di avere a video solo la UserForm:

  • Private Sub Workbook_Open()
    Application.WindowState = xlMinimized
    UserForm1.Show
    Sheets(1).Activate
    End Sub

Per coloro che hanno letto gli articoli presenti sul sito, le istruzioni sono facili da capire, segnalo e commento quindi le due procedure di rilievo. E' nella fase di "Registrazione" dati che dovremo dire ad Excel che il contenuto della TextBox1 deve essere considerato come un "Collegamento Ipertestuale"; per questo usiamo il metodo Add applicato all'insieme Hyperlinks

  • Private Sub CommandButton1_Click()    'pulsante "REGISTRA"
    If TextBox1 = "" Then Exit Sub
     'se la textbox1 è vuota usciamo dalla routine, altrimenti:
    riga = 4               
     'impostiamo la riga iniziale dalla quale scendere per trovare la prima cella vuota, col ciclo While
    While Cells(riga, 1) <> ""
    riga = riga + 1
    Wend
    'trovata la riga vuota (quindi la variabile "riga" corrisponderà al numero della riga la cui cella (riga, colonna A)è stata 'trovata libera), si assegnano i valori alle Celle, prelevandoli dalle textbox della userform.

  • 'ora si controlla che nella textbox1 sia scritto il prefisso "http://" ; poichè potremmo non averlo scritto, verifichiamo se 'le prime 7 lettere da sinistra corrispondano; se non corrispondono lo aggiungiamo noi:
    If Left(TextBox1, 7) = "http://" Then
    URL = TextBox1
    Else
    URL = "http://" & TextBox1
    End If

  • 'con la variabile "URL" prendiamo il contenuto della textbox1, ed usiamo il metodo Add Hyperlinks per la cella(riga, 'colonna A(la 1)), aggiungendovi il collegamento ipertestuale corrispondente a "URL"
    With Worksheets(1)
    .Hyperlinks.Add .Cells(riga, 1), URL
    End With
    Cells(riga, 2) = CStr(TextBox2) 
    'indi rendiamo nelle altre celle, stessa riga, ma colonne diverse, i dati delle altre
    Cells(riga, 3) = CStr(TextBox3) 
    'textbox e del ChekBox
    Cells(riga, 4) = CStr(TextBox4)
    Cells(riga, 5) = CheckBox1.Value
    CommandButton1.Visible = False 
    'rendiamo non visibile questo pulsante
    CommandButton4.Visible = True   
    'rendiamo visibile il pulsante "Nuovo"
    CommandButton2.Visible = True    
    'rendiamo visibile il pulsante "Aggiorna"
    W = Sheets(1).[A3].End(xlDown).Row
    'aggiunto il nuovo dato, prendiamo l'ultimo numero di riga attuale
    ScrollBar1.Max = W 
    'e reimpostiamo il valore max da assegnare allo ScrollBar che sarà uguale alla riga (W)
    ScrollBar1.Value = W 
    ' e ora spostiamo il cursore dello ScrollBar alla riga W
    MsgBox "Registrazione eseguita"
     'si avvisa che la registrazione è andata a termine
    End Sub

Lo scopo di rendere visibili/invisibili i pulsanti è solo quello di "aiutare", costringendo ad eseguire solo i giusti "passaggi" dopo che si è premuto il pulsante "NUOVO".

Chiarimento: lo scopo di far passare il dato dalla textbox1 alla cella già come Hyperlink, ci consentirà di ottenere un collegamento anche semplicemente cliccando su uno degli indirizzi presenti nella colonna A, senza bisogno di ricorrere al pulsante "Collegati al Sito" sulla UserForm, oltre che a semplificare l'istruzione contenuta nell'evento Click del pulsante stesso, che sfrutterà il metodo Follow applicato ad un HyperLinks. Vediamo la routine e chiariamo i concetti: abbiamo parlato di "Hyperlinks" visti come "insiemi": se inseriamo più "Collegamenti Ipertestuali" su un foglio vengono appunto visti come un "insieme" di collegamenti, ed Excel li identifica attraverso un numero progressivo da lui assegnato ad ogni nuovo inserimento: quindi per poter "seguire" (Follow) un collegamento è necessario indicare quale numero tra i Collegamenti presenti "seguire": per questo uso la variabile "n" che prendendo il valore che lo ScrollBar avrà in quel momento (meno 4, che sono le righe iniziali da cui iniziano i "Collegamenti", ci restituirà il numero da assegnare a HyperLinks(numero).

  • Private Sub CommandButton5_Click()   'pulsante "Collegati al Sito"
    If TextBox1 = "" Then
     'se la textbox1 è vuota, avvisiamo con un messaggio, ed usciamo dalla routine
    MsgBox "NESSUN SITO EVIDENZIATO"
    Exit Sub
    End If
    n = ScrollBar1.Value - 4 
    'con "n" prendiamo il numero da assegnare all'Hyperlink leggendo il valore dello ScrollBar
    Worksheets(1).Range("A5:A200").Hyperlinks(n).Follow
    'e apriamo (Follow) la connessione di Accesso Remoto per 'connetterci all'URL corrispondente
    End Sub

Lo ScrollBar ci restituirà sempre il numero giusto anche se eseguendo una "Ricerca", ci fermeremo ad un determinato sito: facciamo infatti spostare il Valore nello ScrollBar tramite l'istruzione ScrollBar.Value = riga posta nei cicli di ricerca; quando poi premeremo il pulsante "Collegati al Sito", ci pensa n = ScrollBar1.Value - 4 (meno 4) e indicare il giusto numero del collegamento.

Il programma è predisposto per ospitare 195 indirizzi web, ma per ampliarlo basta modificare gli intervalli richiamati nelle routines.

Mi sembra sia tutto, buon lavoro.

File consultabile e scaricabile :         Preferiti.zip       30  Kb  (Modificato il 15/08/04)

 

prelevato sul sito www.ennius.altervista.org