Categoria: Visual Basic & VBA

Come ottenere il vero random in VBA di Excel con la funzione Rnd e Randomize

  

Avete realizzato una funzione in VBA di Excel che usa il comando Rnd ma vi rendete conto che il random che crea è finto e che a ogni esecuzione della macro esegue sempre lo stesso schema? Purtroppo la triste realtà è che il random di excel fatto con Rnd non funziona. Ripete sempre gli stessi numeri casuali ad ogni play della macro.


// codice che crea ripetizione
for x = 1 to 100

numero = int((30) * End + 1)

next

Questo codice vi da sempre la stessa sequenza e non vi soddisfa perché volete un vero comportamento casuale "random" dei numeri pescati?

Eccovi la soluzione per fare in VBA il random senza seme (Random without seed):


// codice che crea vero random in VBA
for x = 1 to 100

Randomize
numero = int((30) * End + 1)

next

Basta scrivere "Randomize" (funzione interna di VBA) per creare un vero random ad ogni ciclo di esecuzione. Se quindi vi sembra che il Rnd non funzioni, eccovi la soluzione al problema, che vi permetterà di avere una casualità reale che non si ripete ad ogni avvio di programma.

Strano che tale Randomize debba essere dichiarata a mano e non sia VBA di Excel stesso a proporla integrata nella funzione Rnd.


   

  
  


Informazione libera online.
Resta aggiornato cliccando su Mi Piace

Clickyes, per inviare email con VBA su Microsoft Outlook Express.

  

Come inviare email con ClickYes dal VBA di Excel tramite Microsoft Oultook Express.

Per tutti coloro che usano Visual Basic for Application e che impazziscono nel cercare una soluzione per automatizzare l'invio di emails via Outlook Express o Microsoft Outlook.

Il codice per l'invio dell'email è il seguente:


Sub invia_Email_sa_microsoft_outlook_usando_VBA()
Dim myOutlook As Object
Dim myMailItem As Object
variabileEmailDelDestinatario = "info@dominio.ext"
Set otlApp = CreateObject("Outlook.Application")
Set otlNewMail = otlApp.CreateItem(olMailItem)
fName = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
With otlNewMail
.To = variabileEmailDelDestinatario
.Subject = "OGGETTO DEL MESSAGGIO"
.body = "TESTO DEL MESSAGGIO"
.Display
.send
End With
End Sub


A tutti quei disperati che perdono ore alla ricerca in rete di quella magica porzione di codice da poter incollare nel proprio Visual Basic Editor per riuscire ad evitare quell'odiosa e maledetta finestra che vi chiede se volete inviare l'email (e che se non siete voi trattasi di un virus) o se annullare l'operazione.

A tutti coloro che maledicono microsoft per non aver in nessun modo pensato che se si ATTIVA la MACRO in un progetto Excel, automaticamente significa che stiamo dando il consenso ad un'applicazione che per assurdo potrebbe essere programmata anche per cancellare tutti i files dell'hard disk, e che quindi un ulteriore richiesta per inviare un'email è a dir poco ridicola. Senza contare che comunque non esiste in alcuna parte di Outlook un'area in cui poter "sproteggere" la sicurezza.

Come a dire, "Hey Squid, Io Microsoft non ti lascerò fare questa cosa, neanche se sei cosciente che sproteggendo Outlook il tuo pc potrebbe squagliarsi o che potresti inviare email con scritto scemo chi legge ad ognuno dei tuoi destinatari".

La soluzione è qui:

http://www.contextmagic.com/express-clickyes/free-version.htm

Un programmino gratuito simpatico che se attivato esegue il click per noi quando tale finestra di windows è attiva. Ottimo da installare sulle postazioni di lavoro in cui sono depositate e attive le nostre applicazioni in VBA.

Una geniale intuizione che aiuta molto, anche se non risolve in toto il problema, soprattutto perchè il tempo di attesa per dare l'ok nella fastidiosa schermata, di circa cinque secondi, permarrà lasciandovi comunque l'amaro in bocca.


   

  
  


Informazione libera online.
Resta aggiornato cliccando su Mi Piace

Visual Basic editor e rotella mouse non scrolla.

  

By Pierfattori

Rotella Mouse Visual Basic VBA.

I programmatori di visual basic e visual basic for applications (VBA), ossia l'ambiente di sviluppo visual basic per il pacchetto office (excel, access e word) soffrono da anni per l'assenza della possibilità di usare la rotella del mouse (mousewheel) per scorrere su e giu il listato del codice del visual basic editor.
In questo articolo si descrive la soluzione al problema, e con alcuni semplici passaggi si potrà ripristinare lo scorrimento con la rotella del mouse sull'editor VBA.

Excel e Access, malgrado siano software Microsoft, si portano appresso problemini decisamente ridicoli, dei quali non si comprende la mancanza di un sostanziale update da parte della casa produttrice (forse perchè sono tutti concentrati a risolvere i casini mondiali di Windows sVista?).

Bando alle ciancie, potete scaricare lo zip contentente pdf esplicativo e files relativi rilasciati da Microsoft nel pacchetto mousefix Add support for the scroll wheel to the Microsoft Visual Basic for Applications 6 environment.

Disclaimer:
Neversleep non si assume responsabilità per eventuali danni arrecati al computer dall'installazione o l'apertura degli allegati scaricati dal sito www.neversleep.it ed installati sul proprio pc.


   

  
  


Informazione libera online.
Resta aggiornato cliccando su Mi Piace

.