072. Estrazione numeri casuali

Download PDF

Durante la realizzazione del precedente articolo ‘071. Estrazione casuale valori da un elenco’
ho pensato ad una variante del codice che permettesse di estrarre dei numeri
dopo aver definito il valore minimo e massimo della serie di numeri da cui estrarre,
ed il numero di valori da estrarre.

Questo è il codice:

Continua a leggere

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

Refresh in the Website!

Download PDF

Dear Readers,

we have refreshed the look&Feel of our Website to allow a better reading and we plan to introduce new features in the near future.

I want to thank you all for your interest in our website, we are slowly but steadly growing in terms of visitors.

We have already overpassed half a million visitors in 4 years and we reached 72.000 Visitors in 2016 and we want to serve 100.000 visitors in 2017.

Thank you again your interest and support!

Andrea

 

070. Contare dati univoci senza Pivot

Download PDF

Domanda:

Ricevo ogni mese un numero di bancali che lavorati diventano maggiori. Voglio calcolare per mese quanti bancali ho lavorato. Il problema che i bancali hanno un nome (UDL) che si ripete sugli stessi bancali, es.:
Data Colli Articolo U.M. Qta UDL
23/12/2016 1 122392131018 PZ 1 UDL1700016
23/12/2016 122392131018 PZ 1 UDL1700016
23/12/2016 122392831011 PZ 1 UDL1700016
23/12/2016 122392831011 PZ 1 UDL1700016
28/12/2016 2 02319920 PZ 1 UDL1700004
28/12/2016 02319920 PZ 1 UDL1700004
28/12/2016 21150654 PZ 1 UDL1700004
28/12/2016 02239912 PZ 1 UDL1700004
28/12/2016 02319940 PZ 1 UDL1700002
28/12/2016 03020NLC PZ 1 UDL1700002
28/12/2016 03020NME PZ 1 UDL1700002
28/12/2016 02113192 PZ 1 UDL1700003
28/12/2016 01071087 PZ 1 UDL1700001
quindi ricevuti 3 colli ma in totale sono 5 bancali se leggi gli UDL che si ripetono.
Non riesco a farmi restituire il totale degli UDL = 5

Continua a leggere

069. Aggiungere intervalli ad una data: Date Add in Excel

Download PDF

Domanda:

sto cercando di avere scadenze semestrali in successione su una riga
in K5 inserisco data iniziale
quindi poi in N5 inserisco =SE(VAL.VUOTO(K5);””;SOMMA(K5+180))
tutto ok
quando vado ad inserire in P5 =SE(VAL.VUOTO(N5);””;SOMMA(N5+180))
mi restituisce #valore
praticamente ho capito che il problema sta nel fatto che N5 no risulta vuota ma contiene la formula precedente e quindi mi crea l’errore successivo ma non riesco a trovare la soluzione , è possibile un aiuto?

Continua a leggere

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

Word Cloud

Download PDF

In presentations there is often the need of summarizing a lot of concepts in a single good looking image. Brainstorming is one of such examples, providing an eye-catching overview of many messages in a simple image. I wanted to provide a great overview of myself and my capabilities and I found an amazing tool to create the word clouds like this:

wordle-3

The tool allows for great drawing capabilities, different color-schemes, fonts, and it is free!

I highly recommend it for your presentations!

Wordle Logo