› Sviluppare funzionalita su Microsoft Office con VBA › Ordina in base alla data e orario
-
AutoreArticoli
-
Un saluto a tutti
Ho scaricato il calendario calcio 2025/2026 , e dovrei ordinare le partite in ordine alfabetico in base all'orario e la data
La macro che ho fatto io abbastanza ridicola per il momento va bene , ma gli orari sono solo nelle prime 3 giocate , e non credo che vada bene aggiungendo l'orario anche nelle partite restanti
Se qualcuno ha qualche idea buona grazie a tutti
Allegati:
You must be logged in to view attached files.Finalmente dopo 2 giorni di tribolamento sono arrivato a questa conclusione sembra che vada bene
Grazie a tutti
Option Explicit Sub Ordina_Squadre() Rem Ordino le Partite Dim I, X As Integer Dim A, B As Variant For I = 1 To 493 If Left(Sheets("Squadre").Range("A" & I), 5) = "Turno" Then A = 2 + I B = 2 + I For X = 2 To 11 If Format(Sheets("Squadre").Cells(1 + X + I, 1), "HH:MM") <> Format(Sheets("Squadre").Cells(X + I, 1), "HH:MM") Then B = I + X Sheets("Squadre").Range("B" & A, "C" & B).Sort Key1:=Sheets("Squadre").Range("B" & A), Order1:=xlAscending, Header:=xlNo A = I + X + 1 End If Next End If Next End SubDim I, X As Integer
Ormai dovresti saperlo che, in VBA, le variabili vanno dichiarate singolarmente in modo esplicito, quindi nel tuo caso I è un Variant.
Format(Sheets("Squadre").Cells(1 + X + I, 1), "HH:MM") <> Format(Sheets("Squadre").Cells(X + I, 1), "HH:MM")
che senso ha l'uso di Format()? se Format(x, "HH:MM") è uguale a Format(y, "HH:MM"), allora anche x sarà uguale a y.
Dim I, X As Integer
Grazie scossa per i consigli appena riesco provo la modifica poi ti faccio sapere grazie ancora
Format(Sheets("Squadre").Cells(1 + X + I, 1), "HH:MM") <> Format(Sheets("Squadre").Cells(X + I, 1), "HH:MM")
che senso ha l'uso di Format()? se Format(x, "HH:MM") è uguale a Format(y, "HH:MM"), allora anche x sarà uguale a y.
Allora ho riprovato la riga è necessaria per il cambio di data , in quanto ad ogni concorso ci sono piu date
e devo ordinare in ordine alfabetico in base alla data e ora
Io non ho trovato una soluzione migliore di questa esempio sotto vedi che cambia la data e ora

e devo ordinare in ordine alfabetico in base alla data e ora
Ok, evidentemente ti basta confrontare i minuti e non discriminare i secondi; allora credo sarebbe preferibile:
If Csng(Sheets("Squadre").Cells(1 + X + I, 1)) <> Csng(Sheets("Squadre").Cells(X + I, 1)) ThenOk, evidentemente ti basta confrontare i minuti e non discriminare i secondi; allora credo sarebbe preferibile:
If Csng(Sheets("Squadre").Cells(1 + X + I, 1)) <> Csng(Sheets("Squadre").Cells(X + I, 1)) ThenCiao scossa
Ho sostituito la riga è perfetto grazie mille i tuoi consigli sono sempre i migliori
Non ero a conoscenza della funzione (Csng)
-
AutoreArticoli
