controllo data



  • controllo data
    di massimiliano (utente non iscritto) data: 01/08/2014 15:56:34

    Ho creato grazie al vostro aiuto una macro , che all'apertura del file controlla la data della cella A1 , con A1=oggi() , e punta quindi alla prima cella della colonna A con data uguale ad A1
    Poichè nella colonna A non sono presenti tutte le date , se non trova la data corrispondente ovviamente va in errore , vorrei quindi impostare quindi che il file si aprisse con riferimento alla prima cella con data uguale o superiore a A1
     
    Sub ORDINA()
    '
    ' ORDINA Macro
    '
    
    '
        Range("A10:N3000").Select
        ActiveWorkbook.Worksheets("riepilogo").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("riepilogo").Sort.SortFields.Add Key:=Range("A10") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("riepilogo").Sort
            .SetRange Range("A10:N3000")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        d = Range("AN10")
        LR = Cells(Rows.Count, "A").End(xlUp).Row
        Range("A2:A" & LR).Find(d).Select
    End Sub



  • di lepat (utente non iscritto) data: 01/08/2014 16:09:18

    credo occorra un ciclo invece del find

     
       d = Range("AN10")
       LR = Cells(Rows.Count, "A").End(xlUp).Row
       for r=2 to LR  
         if Range("A" & r) >= d then 
            Range("A" & r).select
            exit for
         end if
       next



  • di massimiliano (utente non iscritto) data: 01/08/2014 16:21:32

    Avevo dimenticato di scrivere che il controllo della partire dalla cella A10 , non tutta la colonna A



  • di lepat (utente non iscritto) data: 01/08/2014 16:33:43

    allora così
     
    for r=10 to LR



  • di massimiliano (utente non iscritto) data: 01/08/2014 16:52:20

    Grazie



  • di Raffaele_53 (utente non iscritto) data: 01/08/2014 18:57:26

    Solo per dire che il range/date ("A10:A" & LR) deve essere in ordine crescente.
     
    LR = Cells(Rows.Count, "A").End(xlUp).Row   
    Range("A10:N" & LR).Select
        ActiveWorkbook.Worksheets("riepilogo").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("riepilogo").Sort.SortFields.Add Key:=Range("A10") _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("riepilogo").Sort
            .SetRange Range("A10:N" & LR)
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        d = Range("AN10") '???? in alto c'è A10, qui AN10???
       for r=10 to LR  
         if Range("A" & r) >= d then 
            Range("A" & r).select
            exit for
         end if
       next r