Ordinamento 9055 colonne



  • Ordinamento 9055 colonne
    di Dasty (utente non iscritto) data: 15/09/2015 01:48:58

    - -
    Salve e grz,
    ho un file con 22 ff e in ciascun foglio 9055 colonne da dover ordinare in modo crescente.
    Ogni colonna è formata da una cella di intestazione contenente numeri in progressione e 5 celle con singoli numeri.
    Il range è: b1 fino a mcm 6
    Grazie e saluti a tutti



  • di cromagno data: 15/09/2015 02:00:19

    Ciao Dasty,
    dovresti allegare il file (o uno simile) per capire esattamente di cosa stiamo parlando.
    Di primo acchito ti direi di usare un ciclo in VBA, però prima facci vedere quello che hai già provato a fare



  • di patel data: 15/09/2015 08:09:52

    ovvimente non con 22 fogli e 9000 colonne, deve essere un file di esempio e sarebbe utile anche il risultato desiderato




  • Ordinamento 9055 colonne
    di Dasty (utente non iscritto) data: 15/09/2015 15:15:40

    Salve,
    grz innanzitutto della risposta
    Vi allego il file
    Avevo provato a cercare la macro, ma non l'ho trovata.
    Ho provato a registrarla ordinandone 100, ma quando l'ho eseguita........si è stancato pure lui e ne ha ordinate si e no 50
    Vi saluto



  • di Mister_x (utente non iscritto) data: 15/09/2015 16:34:38

    ciao

    in base al tuo file allegato da inserire in un modulo di classe

    si intende come esempio creato con il creatore di macro

    ciao


     
    Sub Macro1()
    Dim i As Long
    For i = 8 To 9055
        Range(Cells(1, i), Cells(6, i)).Select
        ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add Key:=Range(Cells(1, i), Cells(6, i)) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Foglio1").Sort
            .SetRange Range(Cells(1, i), Cells(6, i))
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    Next
    End Sub
    






  • di Raffaele_53 data: 15/09/2015 17:04:40

    Ciao a tutti
    Per colorare basta che selezioni le righe 2:6 (oppure range preciso H2:mcm6) e in formattazione condizionale metti =SE(CONTA.SE(A$2:A$6;A2)>1;VERO;FALSO) e scegli un colore



  • di Mister_x (utente non iscritto) data: 15/09/2015 18:50:23

    ciao

    sempre in base al tuo file
    colora le celle interessate durante l'elaborazione di incolonnamento

    allego il file elaborato
    ciao
     
    Sub Macro1()
    Dim i As Long, c As Long
    Dim N As Long
    For i = 8 To 9055
        Range(Cells(1, i), Cells(6, i)).Select
        ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Foglio1").Sort.SortFields.Add Key:=Range(Cells(1, i), Cells(6, i)) _
            , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Foglio1").Sort
            .SetRange Range(Cells(1, i), Cells(6, i))
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    Range(Cells(2, i), Cells(6, i)).Interior.ColorIndex = xlNone
    For c = 2 To 6
     N = Cells(c, i)
     If N = Cells(c + 1, i) Or N = Cells(c - 1, i) Then
      If N > -0 Then
        Cells(c, i).Interior.ColorIndex = 3
      End If
     End If
    Next
    Next
    End Sub
    





  • Ordinamento 9055 colonne
    di Dasty (utente non iscritto) data: 17/09/2015 14:28:37

    - -
    Salve
    Grazie a tutti,
    ho provato entrambi i suggerimenti, ma non ho ancora una soluzione definitiva al problema.
    Il suggerimento di colorarle durante l'incolonnamento era perfetto se non fosse che se ci sono doppi gli zeri non li considera.
    e se inserisco questa formula per ovviare al problema mi dice che c'è un errore

    =SE(CONTA.SE(A$2:A$6;A2)>1;VERO;FALSO)



  • di Raffaele_53 data: 17/09/2015 15:11:35

    A me funzionano tutte due colorando anche i zeri, forse non hai selezionato l'area. Sarebbe in "Si Applica a", basta mettere =$H$2:$mcm$6

    =SE(CONTA.SE(H$2:H$6;H2)>1;VERO;FALSO) e scegli colore
    =E(CONTA.SE(H$2:H$6;H2)>1) e scegli colore

    Comunque ho notato un particolare MOLTO strano colora eventualmente una cella vuota (che non dovrebbe fare, si dovrebbe aggiungerne un'altra prima di quella)
    =E(H2="") sempre riferito a =$H$2:$mcm$6, e scegli colore diverso

    A riguardo l'ultimo codice di Mister_x , basta che sostituisci le ultime righe

      
     
    Range(Cells(2, i), Cells(6, i)).Interior.ColorIndex = xlNone
    For c = 2 To 5
     If Cells(c, i) = Cells(c + 1, i) Then
        Range(Cells(c, i), Cells(c + 1, i)).Interior.ColorIndex = 3
     End If
    Next c
    Next i
    End Sub



  • di Mister_x (utente non iscritto) data: 17/09/2015 15:51:37

    ciao

    intanto ne approfitto per salutare Raffaele

    alla mia sub() per considerare anche gli 0 basta sostituire un controllo , da valore numerico N a cella interessata

    da cosi'
    If N > -0 Then

    a cosi'
    If Cells(c, i) <> "" Then

    in questo caso non vengono considerate le celle nulle ( vuote )

    ciao




  • Ordinamento 9055 colonne
    di Dasty (utente non iscritto) data: 23/09/2015 20:54:20

    Grazie a tutti
    - -