| | Post: 1.337 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Veteran | EXCEL 2016 - SPREAD32 | | OFFLINE |
|
10/04/2024 14:12 | |
Ciao a tutti
ho una macro molto semplice che sviluppa le Permutazioni di 6 numeri con un algoritmo elementare.
Ma l'elenco si svolge su un'unica colonna e inizia dal rigo 2.
Io sono molto scarso in VBA.
Qualcuno puo' gentilmente fare in modo che
- l'elenco cominci dal rigo 1
- l'elenco si svolga in 6 colonne distinte ?
grazie
PERMU Sub permB()
Dim i As Long, j As Long, k As Long, l As Long, m As Long, n As Long
For i = 1 To 6: For j = 1 To 6: For k = 1 To 6
For l = 1 To 6: For m = 1 To 6: For n = 1 To 6
'FillC = ""
If (j = i Or k = i Or k = j Or l = i Or l = j Or l = k Or m = i Or m = j Or m = k Or m = l Or n = m Or n = l Or n = k Or n = j Or n = i) Then GoTo skip
'Range("A65536").End(xlUp).Offset(1, 0) = i & FillC & j & FillC & k & FillC & l & FillC & m & FillC & n
Range("A65536").End(xlUp).Offset(1, 0) = i & j & k & l & m & n
skip:
Next: Next: Next: Next: Next: Next
End Sub
[Modificato da L2018 10/04/2024 15:04]
LEO
https://t.me/LordBrum |
|
| | Post: 1.243 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Veteran | Excel2019 | | OFFLINE |
|
10/04/2024 16:30 | |
Ciao Leo
Prova così
Option Explicit
Sub permB()
Dim i As Long, j As Long, k As Long, l As Long, m As Long, n As Long, a As Long, b As Long
For i = 1 To 6
b = i: a = 0
For j = 1 To 6
For k = 1 To 6
For l = 1 To 6
For m = 1 To 6
For n = 1 To 6
If (j = i Or k = i Or k = j Or l = i Or l = j Or l = k Or m = i Or m = j Or m = k Or m = l Or n = m Or n = l Or n = k Or n = j Or n = i) Then GoTo skip
a = a + 1
Cells(a, b) = i & j & k & l & m & n
skip:
Next
Next
Next
Next
Next
Next
End Sub
Ciao,
Mario |
| | Post: 1.337 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Veteran | EXCEL 2016 - SPREAD32 | | OFFLINE |
|
10/04/2024 18:57 | |
ciao Mario
ti ringrazio, ma a dire il vero per colonne distinte intendevo dire che i 6 numeri di ogni permutazione devono essere in celle separate
mi sa che non mi sono spiegato come dovevo, se non è complicato...grazie [Modificato da L2018 10/04/2024 19:01]
LEO
https://t.me/LordBrum |
| | Post: 1.244 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Veteran | Excel2019 | | OFFLINE |
|
10/04/2024 19:08 | |
Ciao
Nella macro precedente elimina
b = i: a = 0
e sostituisci a questa riga
Cells(a, b) = i & j & k & l & m & n
queste altre
Cells(a, 1) = i
Cells(a, 2) = j
Cells(a, 3) = k
Cells(a, 4) = l
Cells(a, 5) = m
Cells(a, 6) = n
Ciao,
Mario |
| | Post: 1.338 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Veteran | EXCEL 2016 - SPREAD32 | | OFFLINE |
|
10/04/2024 19:10 | |
grazie, scusa per l'equivoco, vado a provare, mi ci vuole qualche minuto
LEO
https://t.me/LordBrum |
| | Post: 1.342 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Veteran | EXCEL 2016 - SPREAD32 | | OFFLINE |
|
10/04/2024 22:11 | |
grazie Mario
avevo pensato ad una cosa simile, ma non l'avevo neppure provata pensando che ritardasse un po' troppo, invece...va benissimo
LEO
https://t.me/LordBrum |
|
|