| | Post: 1 | Registrato il: 17/04/2019
| Città: MILANO | Età: 34 | Utente Junior | 2007 | | OFFLINE | |
|
23/04/2019 17:14 | |
Salve a tutti. Sono nuovo del forum e mi occorre il vostro aiuto anche perché è da poco tempo che mi cimento con le macro. Vi espongo il problema: devo creare una macro che mi generi dei gruppi casuali di numeri! Tramite inputbox devo inserire di quanti gruppi necessito, di quanti numeri dispongo e quanti numeri vanno inseriti per gruppo. La macro deve poi riportare in un foglio i gruppi casuali prodotti. Ho risolto il problema immaginando la macro come l'estrazione delle squadre dei mondiali! Purtroppo la mia macro non gira 😅 per errori legati sicuramente alla sintassi o al tipo di definizione che attribuisco agli elementi. Di seguito riporto quanto ho scritto. Vi sarei infinitamente grato se mi aiutaste, devo completare questo progetto per il rientro a scuola e sto impazzendo! vi ringrazio in anticipo! Sub w() Dim Posizione As Integer Dim Estratti As Integer Dim Squadre As Integer Dim Gironi As Integer Dim SquadrePerGirone As Integer Squadre = InputBox("Numero di Squadre") Gironi = InputBox("Numero Gironi") SquadrePerGirone = InputBox("Numero di Squadre per Girone") Dim Numeri(1 To Squadre) Dim Sorteggiati(1 To Squadre) Randomize For Index = 1 To Squadre Numeri(Index) = Index 'costruisco il vettore in ordine dal più piccolo al più grande Next Index 'costruisco con il seguente ciclo il sorteggio casuale riempendo il vettore sorteggiati For i = 1 To Squadre Posizione = Int((Squadre + 1 - i) * Rnd + 1) Sorteggiati(i) = Numeri(Posizione) Numeri(Posizione) = Numeri(Squadre - i + 1) Next 'inserisco il contenuto dei vettori nelle celle del foglio n = 1 For Col = 3 To Gironi + 2 For Riga = 2 To SquadrePerGirone Cells(Riga, Col).Value = Cells(Numeri(n), 1).Value n = n + 1 Next Riga Next Col End Sub
|
|
| | Post: 5.655 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
23/04/2019 17:30 | |
Ciao Exceller, inserisci un file d'esempio,
Leggi QUI
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 3 | Registrato il: 17/04/2019
| Città: MILANO | Età: 34 | Utente Junior | 2007 | | OFFLINE | |
|
23/04/2019 18:00 | |
Sub w()
Dim Posizione As Integer
Dim Estratti As Integer
Dim Squadre As Integer
Dim Gironi As Integer
Dim SquadrePerGirone As Integer
Squadre = InputBox("Numero di Squadre")
Gironi = InputBox("Numero Gironi")
SquadrePerGirone = InputBox("Numero di Squadre per Girone")
Dim Numeri(1 To Squadre)
Dim Sorteggiati(1 To Squadre)
Randomize
For Index = 1 To Squadre
Numeri(Index) = Index 'costruisco il vettore in ordine dal più piccolo al più grande
Next Index
'costruisco con il seguente ciclo il sorteggio casuale riempendo il vettore sorteggiati
For i = 1 To Squadre
Posizione = Int((Squadre + 1 - i) * Rnd + 1)
Sorteggiati(i) = Numeri(Posizione)
Numeri(Posizione) = Numeri(Squadre - i + 1)
Next
'inserisco il contenuto dei vettori nelle celle del foglio
n = 1
For Col = 3 To Gironi + 2
For Riga = 2 To SquadrePerGirone
Cells(Riga, Col).Value = Cells(Numeri(n), 1).Value
n = n + 1
Next Riga
Next Col
End Sub |
| | Post: 3.740 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
23/04/2019 19:59 | |
Forse in Italianesco = https://www.freeforumzone.com/d/11202105/-COLORE-BLUE-FONT-BOLD-ATTENZIONE-SCARICARE-o-INSERIRE-un-FILE-ed-ALTRO-VEDI-QUI-/discussione.aspx Excel 2013 |
| | Post: 2.195 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
24/04/2019 11:16 | |
Ciao
dalla macro si capisce che non c'è bisogno di allegare nessun esempio in quanto la stessa "dovrebbe" generare una tabella senza utilizzare dati presenti nel foglio.
Ciò premesso, e senza entrare nel merito della tua macro, correggo quanto segue in quanto sintatticamente errato:
ReDim Numeri(1 To Squadre)
ReDim Sorteggiati(1 To Squadre)
Cells(Riga, Col).Value = Numeri(n)
Con queste correzioni la macro gira, ma a quanto dare i risultati voluti.....
saluti [Modificato da dodo47 24/04/2019 11:19] Domenico
Win 10 - Excel 2016 |
| | Post: 4 | Registrato il: 17/04/2019
| Città: MILANO | Età: 34 | Utente Junior | 2007 | | OFFLINE | |
|
24/04/2019 11:24 | |
ho caricato un esempio funzionante di quello che mi occorre. Ovviamente i dati di input, come indicato in apertura della discussione, mi occorrono tramite inputbox e non dichiarati come i questo esempio. Spero di essere stato chiaro! Grazie in anticipo per l'aiuto |
| | Post: 5 | Registrato il: 17/04/2019
| Città: MILANO | Età: 34 | Utente Junior | 2007 | | OFFLINE | |
|
24/04/2019 11:52 | |
Grazie Dodo47! era il maledetto ReDim che mi bloccava!
Grazie! ora cercherò di completarlo! Sperando non vi siano altri intoppi😀😀😀😀
|
|
|