Eseguire macro all’apertura del foglio Excel

Download PDF

Breve tutorial per vedere come creare una macro che viene eseguita automaticamente quando il file excel viene aperto

Questa funzionalità è per esempio utile quando si vuole eseguire un file excel a intervalli precisi, e si inserisce il file excel nello scheduler di Windows.

Windows apre il file excel ma succede ben poco se il file excel non esegue la macro.

Questo trucco consente di eseguire la macro e automatizzare completamente la gestione del file excel che verrà eseguito, aprira’ la macro, farà cosa è pensato per fare e se nell’ultima riga della macro si inserisce un

workbook.close

allora il file si chiuderà da solo senza disturbare il PC e il suo utilizzatore oltre il tempo necessario per eseguire la macro.

Qui qualche riferimento al metodo indicato:

vediamo qui il video del tutorial:

è necessario gestire un evento di Excel. é tutto molto semplice ma se volte riferimenti su questo aspetto, potete leggere ad esempio questo libro:

Come potete vedere dal video, il processo si blocca quando la macro non è considerata sicura o i settaggi di esecuzione delle macro VBA non sono corretti.

Qui trovate un secondo tutorial per cambiare i settaggi delle macro

071. Estrazione casuale valori da un elenco

Download PDF

Ci scrivono:

Buonasera, io dovrei estrarre, casualmente, da una colonna di 170 celle 40 celle. Mi potreste dare info su la funzione da utilizzare ? Grazie

<!–more–>

Risposta:

Dopo aver indicato nella cella D1 il numero di valori che voglio estrarre dal mio elenco
basta premere il bottone “ESTRAI” che esegue il seguente codice (commentato):

Public Sub EstraiCelleDaElenco()

Dim arr As New Collection
Dim i As Long
Dim IndiceCasuale As String

Dim DA_ESTRARRE As Integer
DA_ESTRARRE = Sheet1.Range("D1")


'---------------------------------------------------------------------------------------'
'Pulisco colonna dove estrarre i numeri

Sheet2.Select
Last_Row2 = Sheet2.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

If Last_Row2 > 1 Then
   Sheet2.Range(Cells(2, 1), Cells(Last_Row2, 1)).ClearContents
End If
'---------------------------------------------------------------------------------------'

 
'Individuo ultima riga non vuota dell'elenco

MAX = Sheet1.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'Definisco intervallo inferiore (indice della prima riga contente i dati)
MIN = 2  'é la riga del primo elemento dell'elenco


'Ripeto il ciclo DO-LOOP fino a quando il numero di elementi contenuti nel vettore 'arr'
'è uguale al numero degli elementi da estrarre 'DA_ESTRARRE

Do Until arr.Count = DA_ESTRARRE
'estraggo un numero da inserire in un vettore
   IndiceCasuale = Int((MAX - MIN + 1) * Rnd + MIN)
'Se il numero fosse già presente nel vettore, non sarebbe possibile inserirlo e si genererebbe un errore.
'Ottengo quindi il risultato voluto (estrazione senza ripetizione)
'e faccio riprendere il ciclo
On Error Resume Next
arr.Add IndiceCasuale, IndiceCasuale

Loop
 

For i = 1 To arr.Count

'Ricalcolo l'ultima riga vuota del foglio in cui estrarre i dati
Last_Row2 = Sheet2.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'Copio nel foglio ESTRAZIONE i valori del foglio DATI
'utilizzando i numeri di riga casuali estratti precedentemente ed inseriti nel vettore arr
'di cui prendo gli gli elementi 'i' dal numero 1 all'ultimo arr.Count

 Sheet2.Cells(Last_Row2 + 1, 1) = Sheet1.Cells(arr(i), 1)

Next

End Sub

A voi il file:
APRI

Riccardo Vincenti

068. Invio mail tramite VBA – risposta a mail ricevuta

Download PDF

A seguito di una domanda che mi è stata posta, ho pensato di creare un tool che una volta ricevuta una mail,
permetta di rispondervi utilizzando dei template.
Il funzionamento è semplice:
1) si apre la mail da Outlook
2) si apre il tool in allegato
3) si seleziona nella colonna A l’argomento del template
4) si preme il tasto ‘Rispondi alla mail
La macro di seguito riportata
– crea una mail di risposta alla mail aperta inserendo tutti gli indirizzi mail coinvolti
– inserisce l’oggetto della mail prendendolo dal file excel
– inserisce il testo della mail prendendolo dal file excel

Continua a leggere

Training for Excel and VBA in Lynda

Download PDF

Here a nice training course in Lynda for Excel and VBA to learn how to manage and data:

You can learn how to filter data, open and closing files, use built-in worksheets functions in VBA, create charts and forms.

It is pretty simple but many tricks are nice and not everybody knows them!

As always you have voice transcripts, the list of chapters so you can jump from one to the other and take advantage of what you really need and finally a notebook for you directly online.

Happy listening!

060. Ricerca collegamenti esterni

Download PDF

Domanda:

Vorrei evidenziare le celle che contengono collegamenti esterni e creare su un foglio un elenco di esse, perché spesso capita che le formule copiate creino involontariamente collegamenti di questo tipo che poi si diventa pazzi a trovare

Risposta:

Mi sono ricordato di un articolo che avevo letto un pò di tempo fa, che riportava il codice
Continua a leggere

052. Copia riga da foglio1 a foglio2

Download PDF

Domanda:

Ho 2 fogli : 1) prenotazioni; 2) pagato
Sul foglio prenotazioni i dati sono inseriti da B a AC e ci sono delle celle vuote, dove si andranno a mettere dei dati,  ed altre celle con formule. La mia necessità è che quando nella colonna AC, su qualsiasi riga, inserisco la “p”, mi deve copia la riga di competenza (es. B12:AC12) ed incollare i valori sul foglio pagato, nella prima riga libera.
Ho provato con il filtro ma le righe sono tante e ci mette moltissimo a lavorare…non ne sto venendo a capo.
Continua a leggere