Ordinamento cronologico automatico
Hai un problema con Excel? 
Ordinamento cronologico automatico
di pasquale83 (utente non iscritto) data: 02/02/2017 18:17:11
Buonasera a tutti,
ho un problema con un planning in excel realizzato per il lavoro...
ho creato un una tabella suddivisa nelle seguenti colonne:
Colonna A: Attività
Colonna B: Articolazione (coloro che svolgono l'attività)
Colonna C: Inizio attività
Colonna D: Fine attività
Dalla Colonna E alla NE: Calendario di 6 mesi con formattazione condizionale fatto in maniera tale da colorare i giorni dell'attività con differenti colori in base all'Articolazione coinvolta.
N.B.: Le Righe da 1 a 8 sono intestazioni mentre l'elenco delle attività inizia dalla riga 9
Vorrei che, inserendo le attività di volta in volta si dispongano in automatico in ordine cronologico secondo la data di inizio.
Ho cercato anche delle VBA ma non ho trovato l'ordinamento per data e quelle che ho trovato non funzionavano…
qualcuno può aiutarmi..
Grazie a tutti anticipatamente..
di patel data: 02/02/2017 18:21:33
allega un file di esempio con anche il risultato desiderato
di pasquale83 (utente non iscritto) data: 06/02/2017 09:15:39
Ok... ho allegato il file!!
Aprendolo credo sia abbastanza chiaro capire quale risultato vorrei ottenere... Le attività vorrei si ordinassero in automatico in base alla data di "Inizio" della colonna C nell'attimo in cui vengono inserite
di Cucù (utente non iscritto) data: 06/02/2017 10:27:33
Hai già provato con il registratore di macro a vedere cosa puoi ottenere?
di Gianfranco data: 06/02/2017 11:20:18
ciao
metti il filtro sulle colonne e
metti questa macro sul foglio
sia attiva solo se scrivi sulla colonna D
ho immaginato che sia l'ultimo dato che metti
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("D9:D1000")) Is Nothing Then
ActiveWorkbook.Worksheets("Planning 60° Stormo").AutoFilter.Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Planning 60° Stormo").AutoFilter.Sort.SortFields. _
Add Key:=Range("C9:C1000"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Planning 60° Stormo").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
Application.ScreenUpdating = True
Range("E9").Select
End Sub |
di Luca73 data: 06/02/2017 13:30:49
Ciao
Io farei così come sotto
usando l'ordinamento personalizzato dei dati
lo collegherei ad un pulsante senza usare filtri e senza usare automatismi
Ma andrebbe bene porlo
in un Private Sub Worksheet_Change(ByVal Target As Range)
Sub OrdineperC()
With ActiveWorkbook.Worksheets("Planning 60° Stormo").Sort
.SortFields.Clear
.SortFields.Add Key:= _
Range(Range("C9"), Range("C9").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range(Range("A9"), Range("C9").End(xlDown))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
|
di Gianfranco data: 07/02/2017 10:06:49
ciao Luca
con pulsante può andare
ma al change
senza limitare la partenza ad un dato inserimento
sarebbe praticamente sempre in uso.
se scrivessi una data iniziale inferiore in riga 500
mi sparirebbe da sotto il naso per portarsi in prima riga
ecco perché ho limitato alla colonna D che a mio avviso
è l'ultimo dato che si inserisce
Vuoi Approfondire?