Condividi:        

Excel Macro per ordinamento dati

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel Macro per ordinamento dati

Postdi saxas » 06/03/16 12:48

Salve a tutti,
Dovrei ordinare delle colonne in base a dei parametri
Colonna G => Dipendente
Colonna H => Tipo Attività Lavorativa
Colonna I => Cantiere
Colonna K => Automezzo

Attualmente ho creato una macro con il registratore di macro che ordina con valore crescente e le seguenti priorità
Colonna I H K G
ed il risultato è quello nell'immagine
Immagine

Quindi ordina per cantiere, Tipo attività, Autovettura e Dipendente e fin qui tutto bene, infatti raggruppa le righe per cantiere e tipo attività e vettura e di conseguenza mette vicini i dipendenti che andranno nello stesso cantiere che svolgeranno la stessa attività pur con mezzi differenti


Il problema che mi sorge è il seguente
Quando lo stesso dipendente va in più cantieri, vorrei che il raggruppamento per lo specifico dipendente avvenga per nome, quindi la tabella precedente dovrebbe proporsi nel seguente modo

Immagine

c'è la possibilità di creare una macro che risolva il mio problema?

allego file prova da cui ho ricavato le immagini
https://www.dropbox.com/s/onjo7hotts3f1cp/prova.xlsm?dl=0
Win10 - Office 2016 Ita
saxas
Utente Junior
 
Post: 55
Iscritto il: 14/11/13 16:58

Sponsor
 

Re: Excel Macro per ordinamento dati

Postdi Anthony47 » 06/03/16 18:17

Mah... L'ordinamento per DipenTiere in excel non e' previsto...
Ho ottenuto qualcosa di simile a quello che chiedi inserendo una colonna di servizio dove, su riga 7, ho usato la formula
Codice: Seleziona tutto
=(100-CONTA.SE($G$7:$G$19;G7))&G7&I7
Da copiare verso il basso per il tuo elenco.

Poi fai l'ordinamento in prima priorita' su questa colonna e in subordine sulle altre.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19217
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel Macro per ordinamento dati

Postdi ricky53 » 07/03/16 15:02

Ciao Saxas,
prima leggi l'intervento di Anthony e ... aggiornaci

Io ti scrivo solo per chiederti ma che ordinamento ti occorre perchè NON mi è chiaro (leggi anche il tipo "originale" di ordinamento che ti ha scritto Anthony) cosa vuoi ottenere.
Chiarisco: la seconda immagine NON ha un ordinamento specifico della colonne ma .. un ordinamento il cui nome di fantasia di Anthony calza bene.

Cortesemente puoi chiarire, grazie.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Macro per ordinamento dati

Postdi Anthony47 » 09/03/16 10:50

Andando ad archiviare il caso mi sono accorto che la formula che avevo dato non fa esattamente quanto richiesto (o meglio: quello che ho capito dalla richiesta). Serve infatti una formula piu' articolata:
Codice: Seleziona tutto
=SE(CONTA.SE($G$7:$G$19;G7)>1;(100-CONTA.SE($G$7:$G$19;G7))&G7&I7;99&I7&G7)

Io l'ho messa in L7 e poi l'ho copiata verso il basso; poi si esegue l'ordinamento della tabella in base a questa colonna e in subordine per le colonne H e K (G e I sono incluse nella formula).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19217
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel Macro per ordinamento dati

Postdi saxas » 10/03/16 16:37

Grazie Anthony47
con l'ultima formula risolvo una buona parte dei problemi che mi si presentano, vedo di modificare alcuni parametri e credo di risolvere tutto
Win10 - Office 2016 Ita
saxas
Utente Junior
 
Post: 55
Iscritto il: 14/11/13 16:58

Re: Excel Macro per ordinamento dati

Postdi saxas » 12/03/16 18:17

alla fine sto optando per questa soluzione che al momento dei vari test che ho fatto funzioni,

Codice: Seleziona tutto
Sub ordina()
Sheets("Foglio1").Select
Col_Op = 7
EndRow_Col_Op = Worksheets("Foglio1").Cells(Rows.Count, Col_Op).End(xlUp).Row
    For POp = 8 To EndRow_Col_Op
        NumOpD = 0
        POpD = Sheets("Foglio1").Cells(POp, Col_Op)
            For SOp = 8 To EndRow_Col_Op
                SOpD = Sheets("Foglio1").Cells(SOp, Col_Op)
                    If POpD = SOpD Then
                        NumOpD = NumOpD + 1
                            If NumOpD >= 2 Then
                                Cells(POp + 1, 1).Select
                                Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
                                Range(Cells(SOp + 1, 1), Cells(SOp + 1, 11)).Select
                                Selection.Cut
                                Cells(POp + 1, 1).Select
                                ActiveSheet.Paste
                                Cells(SOp + 1, 1).Select
                                Selection.EntireRow.Delete
                                POp = POp + 1
                            End If
                    End If
            Next
    Next
End Sub


forse un pò spartana come soluzione ma fa quello che volevo ... almeno fino ad ora
Win10 - Office 2016 Ita
saxas
Utente Junior
 
Post: 55
Iscritto il: 14/11/13 16:58

Re: Excel Macro per ordinamento dati

Postdi Anthony47 » 13/03/16 20:59

forse un pò spartana come soluzione ma fa quello che volevo
Se funziona e' perfetta!
Avatar utente
Anthony47
Moderatore
 
Post: 19217
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel Macro per ordinamento dati":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti