ordinamento dati



  • ordinamento dati
    di dlacascia data: 28/06/2013 16:35:26

    a fronte di una serie di dati, vorrei effettuare un ordinamento con 4 chiavi di ordinamento.
    mentre se faccio l'operazione manualmente, funziona, e pure se registro la macro va, nel caso in cui provo a semplificare il codice il programma mi segnale un errore in "key4". Dove stò sbagliando?
     
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Range(Cells(2, 1), Cells(r, 17)).Sort key1:=[g2], Order1:=xlAscending, Header:=xlYes, _
                                     key2:=[c2], Order2:=1,  _
                                     key3:=[d2], Order3:=1, _
                                     key4:=[h2], Order4:=2
    ' fatta in questo modo funziona
    Range(Cells(2, 1), Cells(r, 17)).Sort key1:=[g2], Order1:=xlAscending, Header:=xlYes, _
                                     key2:=[c2], Order2:=1, _
                                     key3:=[d2], Order3:=1 
    
    



  • di Vecchio Frac data: 28/06/2013 18:43:28

    La cella [H2] è valorizzata? che cosa contiene?
    ci sono colonne vuote nel range [A2:Q...]?





  • di lillo (utente non iscritto) data: 30/06/2013 19:23:28

    Ciao dlacascia, non so se dico una stupidità, però quando utilizzavo excel97, ricordo che non accetava più di 3 livelli, pertanto si consigliava questo trucco: se c'erano 5 livelli di ordinamento per es.colonna A-B-C-D-E di cui l'ordine di importanza iniziava dalla prima colonna si divideva in due ordinamenti C-D-E e poi A-B. dalla versione 2003 si possono aggiungere più di tre livelli, però chissà, in vba è rimasta alle versioni precedenti. Mi aspetto lumi da qualcuno più esperto. A questo punto prova la tua versione in questo modo e facci sapere. ciao
     
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Range(Cells(2, 1), Cells(r, 17)).Sort key1:=[c2], Order1:=xlAscending, Header:=xlYes, _
                                     key2:=[d2], Order2:=1,  _
                                     key3:=[h2], Order3:=2
    Range(Cells(2, 1), Cells(r, 17)).Sort key1:=[g2], Order1:=xlAscending, Header:=xlYes
    
    



  • di Vecchio Frac data: 30/06/2013 21:19:09

    @lillo
    Non è un problema di VBA ^_^
    Il nostro interlocutore dice che "se faccio l'operazione manualmente, funziona, e pure se registro la macro va", pertanto si può riprodurre in codice senza problemi. Il punto è che lui prova "a semplificare il codice il programma".
    Mentre attendiamo indicazioni, non si può che fare qualche supposizione.
    Del tipo che ci siano colonne vuote nella tabella dati :)






  • di diego (utente non iscritto) data: 01/07/2013 08:24:22

    confermo l'ultima risposta di veccio frac.
    per maggior chiarezza ho allegato un file con solo la parte inerente al problema