Ordinamento cronologico automatico



  • 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