Chiedere numeri in ordine crescente
Hai un problema con Excel? 
Chiedere numeri in ordine crescente
di francesca24 (utente non iscritto) data: 20/05/2014 16:19:24
Come posso creare un programma in VBA excel che chieda all'utente tre numeri e li disponga poi in ordine crescente?
di Vecchio Frac data: 20/05/2014 16:34:27
Il professore, a scuola, ha dato altre informazioni o questo è tutto quello che abbiamo?
di lepat (utente non iscritto) data: 20/05/2014 17:15:53
Una delle tante possibili soluzioni
Sub a()
For R = 1 To 3
Cells(R, 1) = InputBox("numero " & i)
Next
Range("A1:A3").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlNo, DataOption1:=xlSortTextAsNumbers
End Sub
|
di lepat (utente non iscritto) data: 20/05/2014 17:24:37
ho cambiato una r con una i
Sub a()
For r = 1 To 3
Cells(r, 1) = InputBox("numero " & r)
Next
Range("A1:A3").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlNo, DataOption1:=xlSortTextAsNumbers
End Sub |
di lepat (utente non iscritto) data: 20/05/2014 23:20:11
oppure senza utilizzare funzioni di excel
Sub b()
Dim arr()
n = 3
ReDim arr(n)
For r = 0 To n - 1
arr(r) = Val(InputBox("numero " & r + 1))
Next
For i = 0 To n - 2
For j = i + 1 To n - 1
If arr(i) > arr(j) Then
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Next j
Next i
For r = 0 To n - 1
s = s & arr(r) & ","
Next
MsgBox s
End Sub |
di francesca24 (utente non iscritto) data: 21/05/2014 23:38:26
Grazie lepat! Visto che però devo anche saperlo spiegare, fino al ciclo For...Next ci sono, Header e DataOption li ho omessi visto che non li abbiamo ancora studiati (ho controllato e funziona comunque). Qual è la funzione di .Sort key1 e order1?
di lepat (utente non iscritto) data: 22/05/2014 07:50:39
sort è il metodo che fa l'ordinamento
key1 indica la colonna su cui fare l'ordinamento
order1 indica se farlo crescente o decrescente, puoi anche eliminarlo
di francesca24 (utente non iscritto) data: 31/05/2014 17:26:52
Il professore ha detto che va bene ma che vorrebbe lo facessi con la struttura If...
di lepat (utente non iscritto) data: 31/05/2014 18:02:32
Francesca, almeno guarda tutte le risposte, il codice con le if te l'ho già allegato
di francesca24 (utente non iscritto) data: 02/06/2014 20:57:25
non me n'ero accorta, ma ci capisco poco e nulla. se proprio non può essere semplificato, puoi almeno spiegarmelo?
di lepat (utente non iscritto) data: 02/06/2014 22:21:40
per fare una cosa fatta bene avrei bisogno di sapere cosa sai di vba, gli array li conosci ?
quel codice è fatto per ordinare una serie di numeri, se i numeri sono soltanto 3 forse si può semplificare.
di lepat (utente non iscritto) data: 02/06/2014 23:08:08
questo lo capisci ?
Sub aaa()
a = 7: b = 1: c = 3
If a < b And b < c Then
s = a & "," & b & "," & c
ElseIf a < c And c < b Then
s = a & "," & c & "," & b
ElseIf b < a And a < c Then
s = b & "," & a & "," & c
ElseIf b < c And c < a Then
s = b & "," & c & "," & a
ElseIf c < b And b < a Then
s = c & "," & b & "," & a
Else
s = c & "," & a & "," & b
End If
MsgBox s
End Sub |
Vuoi Approfondire?