Visualizzazione post con etichetta vba. Mostra tutti i post
Visualizzazione post con etichetta vba. Mostra tutti i post

mercoledì 20 gennaio 2010

Access - Impostare posizione cartella database predefinita

Eccoci giunti a un post un po'... off topic, ossia un po' come se i nostri allievi andassero "fuori tema" :-)
Solitamente didaLGo tratta argomenti che non sono a livello di programmazione. Il post di oggi nasce come risposta a due commenti fatti a un precedente post in cui, molto tempo fa, http://didalgo.blogspot.com/2007/07/percorsi-predefiniti-in-microsoft.html avevo spiegato come impostare le cartelle predefinite nei vari applicativi di Office. Perdonate il linguaggio iniziatico... ma penso che i destinatari del post possano gradire la soluzione...

Il codice riportato nell'immagine imposta la cartella database predefinita alla posizione del database corrente. Se apro un file che si trova in d:\documenti, è come se in Strumenti-Opzioni-generale-Cartella database predefinita, scrivessi: d:\documenti
Come usare il codice? Fornisco due possibili soluzioni.

Soluzione A
1) crea una macro che esegua questa routine
2) imposta un collegamento di avvio del database, che all'apertura esegue la macro (come? guarda nella guida e cerca "opzioni riga di comando")
Soluzione B
1) se c'è una maschera che si apre in automatico all'avvio del database, inserisci l'unica riga di codice nell'evento Open oppure Load.

Tutto ciò non risolve l'impostazione automatica della posizione degli eventuali database collegati, ma se serve, didaLGo fornirà anche questa risposta!
Buona programmazione!

Emanuele

domenica 13 luglio 2008

Elenco dei fogli di Excel con VBA

Oggi vediamo come ottenere l'elenco dei fogli presenti nella nostra cartella di lavoro di Excel ricorrendo a VBA.
1) Vai nell'ambiente Visual Basic (vedi le istruzioni del precedente post, oppure premi ALT+F11)
2) Nel grande riquadro bianco che dovresti vedere, subito dopo Option Explicit digita quanto segue (dopo te lo spiego):

Sub ElencoFogli()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
Debug.Print wks.Name
Next
End Sub

Fatto? Ok, ora tanto per provare che cosa capita, posizionati su una delle righe che hai appena scritto e premi il tasto F5 (oppure fai clic sul pulsante in alto tipo "Play" del registratore).

Dovresti vedere elencati, in un riquadro bianco in basso, i nomi dei fogli presenti nella tua cartella di lavoro. Se non lo vedi, vai su Visualizza-Finestra immediata
Ora riduco al minimo i commenti su ciò che abbiamo scritto, altrimenti comincia un corso di programmazione...!

Sub ElencoFogli()
...
End Sub

Questo serve per indicare a Excel che vogliamo scrivere una routine, un insieme di istruzioni da eseguire, a cui diamo nome ElencoFogli.

Dim wks As Worksheet
Dico a Excel di riservare uno spazio della sua memoria per wks, che fa riferimento a Worksheet, in inglese foglio di lavoro.

For Each wks In ActiveWorkbook.Worksheets
...
Next

Imposto un ciclo: dico a Excel che voglio che passi in esame tutti i fogli di lavoro presenti nella cartella di lavoro (un po' come se dicessi: per ogni foglio di lavoro dell'insieme dei fogli di lavoro presenti nella cartella di lavoro attiva)

Debug.Print wks.Name
Voglio che Excel mi scriva nella finestra immediata il nome del foglio di lavoro
Tale comando sarà ripetuto per ogni foglio di lavoro esistente.

Forse ho già detto cose troppo difficili... oppure sono riuscito a farvi venire voglia di capirci qualcosa di più?!

Alla prossima!

Emanuele

venerdì 11 luglio 2008

VBA ed Excel

Un nostro lettore ci ha chiesto di raccontare qualcosa su VBA ed Excel... L'argomento è assai vasto. Cercherò comunque di dare almeno qualche indicazione, se non altro perché la prossima volta che ne sentiamo parlare sia chiaro di che cosa si tratta.
VBA= Visual Basic for Applications. VBA è un linguaggio di programmazione. Gli applicativi del pacchetto Office (Word, Excel, Powerpoint, Access) possono essere utilizzati non solo ricorrendo ai menu, ma anche con procedure create apposte dagli utenti, talvolta chiamate macro. Tanto per capirci e fare subito qualcosa di pratico: se hai Excel aperto, vai su Strumenti-Macro-Visual Basic Editor. Eccoci nell'ambiente di sviluppo di Excel. (Lo stesso si può vedere in Word e Powerpoint. In Access le cose sono diverse). Immagino la vostra domanda: a che cosa mi serve VBA? Che cosa mi dà in più rispetto a ciò che so già fare?
Due esempi... Supponiamo di avere una cartella di lavoro di Excel con una cinquantina di fogli. (Troppi? Dipende dal lavoro che dobbiamo fare...:-) ) Come possiamo avere l'elenco dei nomi di questi 50 fogli, per essere certi di non avere dimenticato qualcosa? O lo facciamo a mano... oppure usiamo VBA che ci può produrre in pochi secondi l'elenco desiderato.
Altro esempio. Ho diversi fogli di lavoro, che contengono diversi grafici. Devo eliminarli tutti. Come faccio? O a mano, li seleziono e li elimino uno per volta; oppure usiamo VBA. Come vedete, VBA può aiutarci a sveltire le operazioni. Attenzione! VBA fa veramente molto, ma molto di più di questo! Ma per cominciare a capire bisogna pur avere un punto di partenza, no?

Ora, se non altro, ne sappiamo qualcosa di più. Nel prossimo post risolveremo i due quesiti.
Emanuele