017. Creare file con VBA ed inviarli via mail (avanzato)

Download PDF

Ciao a tutti,

in questo giorni ho modificato il Tool che invia allegati tramite email seguendo alcune necessità di Alessandra.
Le modifiche sono le seguenti:
1) verifica della presenza dei nomi inseriti nella base dati con quelli presenti in elenco
e segnalazione di eventuali assenze
2) selezione attraverso di un file dialog della cartella dove salvare gli allegati
3) creazione di un file “xls” o “xlsx” in base alla versione Excel utilizzata
4) scelta tra invio del file allegato in Excel o in Pdf
5) inserimento nell’allegato di un’intestazione e/o logo aziendale

Ecco il file avanzato:
Tool crea file da elenco – Excel o PDF

Per chi fosse interessato a come funziona il codice…. buona lettura!

Continua a leggere

015. Generatore quiz patente

Download PDF

Domanda:

Ciao, Ho in un file excel circa 700 domande per fare dei quiz per la patente catalogate in ordine numerico, con altrettante risposte. C\’è la possibilità, in un altro foglio dello stesso file, di selezionare casualmente 30 domande per la prova teorica? Spero di essermi spiegato.
saluti

Risposta:

per risolvere il suo problema ho operato nel seguente modo:

1)    Nel foglio “Elenco completo” ho inserito 700 domande fittizie nella colona A
2)    Ho inserito nella colonna B la formula “=ROUND(RAND()*(20000-1)+1;0)”
(se utilizza la verisone italiana Excel le indichera la sintassi in italiano)
RAND restituisce un numero casuale tra due estremi (ho scelto arbitrariamente 1 e 20.000)
ROUND arrotonda il risultato della formula RAND a zero decimali

Continua a leggere

014. Classifica tramite VBA – v2

Download PDF

Questo articolo segue al precedente “Classifica tramite VBA” di cui è un evoluzione.
L’esigenza del nostro lettore era quella di avere la classifica per categoria
in un’unica colonna, dal momento che dovrà gestire fino a 10 categorie contemporaneamente.
Ho modificato quindi il codice permettendo di gestire N categorie contemporaneamente
senza colonne dedicate.

Ecco la versione aggiornata del file:

Continua a leggere

013. Classifica tramite VBA

Download PDF

Domanda:

Salve ho un problema da risolvere.
ho un foglio excel dove ricavo una classifica generale  di arrivo dando la posizione con un doppio click che mi inserisce via via la numerazione di classifica utilizzando quasta formula vba

Private Sub Worksheet_BeforedoubleClick( ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Range("c3:c65536"),Target) Is Nothing Then
 If Cells(Target.Row, 1) = "" Then
 Cells(Target.Row, 1) = Application.Max(Range("a:a")) + 1
 End If
 End If
 Cancel = True
 End Sub

fino a qui tutto ok.

il problema è che vorrei sempre con doppio click oltre a fare la classifica generale di arrivo farla contemporaneamente per categoria. Continua a leggere

Abilitare le macro su Excel 2010 e 2013

Download PDF

Spesso si chede come fare per abilitare le Macro. In questo sito vengono presentati molti tool che necessitano di macro per il loro funzionamento. E’ quindi fondamentale permettere ad Excel di far funzionare le Macro. Le stesse pero’ possono essere estremamente pericolose dato che, di fatto, una macro in Excel, se fatta male o da malintenzionati, puo’ distruggere letteralmente il sistema operativo e rendere il computer inservibile.

Per questo la policy di gestione delle macro deve essere decisa con estrema cautela.

Comunque sia, in genere Excel viene installato con una poiicy fin troppo restrittiva.

Continua a leggere

Estrarre una data da una cella di testo

Download PDF

Un lettore ci chiede:

Buongiorno
Vorrei se possibile estrarre le date dalle seguenti stringhe
esempio
DESENZANO DEL GARDA (BS) 10.04.1986 N.186
SALO’ (BS) 15.02.1946 N.115
EXCEL 2007

Risposta:

La questione  è abbastanza complicata utilizzando solo le formule Excel perché bisgna ricercare il pattern xx.xx.xxxx con “x” una cifra.

Ho quindi preparato una piccola funzione su misura che ricerca all’interno di un testo più lungo una parte con la struttura indicata (xx.xx.xxxx) e lo resituisce.

L’utilizzo della funzione è a dir poco banale:

estrai_data

nello stesso file di esempio che trovate qui sotto è disponibile la stessa funzionalità anche in versione MACRO per chi lo preferisse

Scarica il file di esempio: estrai_data

 

 

La “classe” non è … acqua: un suggerimento sulla programmazione ad oggetti

Download PDF

Il piccolo file allegato vuole mostrare l’uso un po’ più sofisticato che si può realizzare in Excel all’interno di Vba. Infatti abbiamo mostrato come si realizza una piccola classe: la classe Quadrato. Un ottimo lavoro nell’ambito mi sembra quello di Emanuele Mattei nel suo blog:http://blog.shareoffice.it/emanuele/articles/9973.aspx ma è indicato soprattutto per Vb.Net e C#. Invece la programmazione ad oggetti può aver luogo anche in Vba e in particolare in Excel. Il file mostra come si può calcolare l’area di un quadrato in vari modi: con le formule, con una piccola macro, con una classe. L’ultimo modo è certamente il più complicato, ma come esempio di costruzione di una classe deve essere visto al di là dei risultati immediati. In realtà per apprezzare i vantaggi nell’utilizzo delle classi bisogna scrivere codice. La nostra classe rappresenta sostanzialmente un quadrato geometrico: specificando il lato che viene memorizzato e che può essere letto e variato, rimangono fissate le proprietà conseguenti: diagonale, area, perimetro. Inoltre, come detto, il nostro quadrato possiede due “metodi” non euclidei: può essere ingrandito o rimpicciolito di una percentuale fissata. Una volta compiuto il lavoro di implementazione della classe vediamone l’uso: per prima cosa si deve creare un’istanza nel nostro programma con l’istruzione: Dim Q As New Quadrato. In questo modo si fa sapere ad Excel che Q è un “oggetto” della classe quadrato. Questa istruzione deve essere fatta per prima. Quindi abbiamo realizzato due piccole routines: la prima calcola l’area esattamente come si potrebbe fare in altro modo, la seconda utilizza il metodo IngrandisciP per incrementare il lato del quadrato. Notate come non compaiano formule matematiche nel codice del foglio1. Ma i fatti più interessanti accadono nell’Ide. Vediamo nell’immagine seguente come si comporta Vba quando scriviamo Q. dopo aver dichiarato che fa parte della classe Quadrato.

Ide

Vba correttamente ci indica quali metodi e proprietà possono essere applicate a Q.

Quadrato