| | Post: 1 | Registrato il: 06/09/2016
| Città: GROTTAGLIE | Età: 40 | Utente Junior | 2010 | | OFFLINE | |
|
06/09/2016 13:30 | |
Ciao, vorrei creare 1 macro per estrarre una lettere casuale dell'alfabeto,magari con la creazione di 1 pulsante.
E' possibile?
Grazie in anticipo per quanto potrete fare. |
|
| | Post: 2.224 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | ONLINE |
|
06/09/2016 14:02 | |
Ciao Daniele
Crea una tabella da A1 a B26.
In colonna A metti i numeri da 1 a 26 e in colonna B le lettere dell'alfabeto.
Con questa macro ogni volta che viene eseguita viene inserita in D1 una lettera in maniera casuale.
Sub EstraiLettera()
Dim NumeroCasuale As Integer
Dim rng as Range
Set rng = Range("A1:B26")
Randomize
NumeroCasuale = Int ((26 - 1 + 1) * Rnd + 1)
Range("D1").Value = Application.WorksheetFunction.VLookup(NumeroCasuale, rng, 2, False)
End Sub
Sai inserire la macro in un file? Sai creare un pulsante e associargli la macro.
Googla un po' e vedrai che ci riesci.
Alfredo |
| | Post: 2.226 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | ONLINE |
|
06/09/2016 14:44 | |
Se non sai inserire la macro in un file vai su YouTube cerca Excel Magico e guarda il video n. 84
Per il pulsante inserisci sul foglio una forma cliccaci su con il tasto dx del mouse e scegli Assegna macro.
Alfredo |
| | Post: 3.356 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
06/09/2016 18:14 | |
si potrebbe fare anche senza la colonna dei numeri
Sub EstraiLettera()
Dim NumeroCasuale As Integer
Dim rng as Range
Set rng = Range("A1:A26")
Randomize
NumeroCasuale = Int ((26 - 1 + 1) * Rnd + 1)
Range("D1").Value = rng.cells(NumeroCasuale)
End Sub
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 1.950 | Registrato il: 27/07/2010
| Utente Veteran | | | OFFLINE |
|
07/09/2016 09:27 | |
Altra soluzione:
Sub Casual()
Range("D1").Value = Left(Cells(1, Application.WorksheetFunction.RandBetween(1, 26)).Address(0, 0), 1)
End Sub
Bye!
scossa
scossa's web site
___
Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| | Post: 3.358 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
07/09/2016 09:57 | |
più semplice di così non si può !
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 1 | Registrato il: 06/09/2016
| Città: GROTTAGLIE | Età: 40 | Utente Junior | 2010 | | OFFLINE | |
|
07/09/2016 15:28 | |
VI RINGRAZIO PER L'AIUTO HO RISOLTO IL PROBLEMA ALLA PROSSIMA |
| | Post: 672 | Registrato il: 06/04/2013
| Utente Senior | 2010 | | OFFLINE |
|
08/09/2016 17:52 | |
Ciao
si potrebbe evitare la colonna d'appoggio con le formule:
- per lettere minuscole: =CODICE.CARATT(CASUALE.TRA(97;122))
- per lettere maiuscole: =CODICE.CARATT(CASUALE.TRA(65;90))
(che ovviamente possono tradursi in macro)
Cells(1, 4) = Chr(Int((122 - 97 + 1) * Rnd + 97))
oppure
Cells(1, 4) = Chr(Int((90 - 65 + 1) * Rnd + 65))
saluti
[Modificato da dodo47 08/09/2016 18:06] Domenico
Win 10 - Excel 2016 |
|
|