Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Aggiornamento automatico ordinamento valori righe

Ultimo Aggiornamento: 14/05/2020 09:26
Post: 5
Registrato il: 27/03/2020
Età: 47
Utente Junior
excel 2013
OFFLINE
28/04/2020 11:14

Ciao, chiedo aiuto per questo problema: devo ordinare in automatico all'apertura del file i fogli Codig_sintesi_SP e DATA, Codig_sintesi_DATA e SP, Copparo_sintesi_SP e DATA,Copparo_sintesi_DATA e SP, Portom_sintesi_SP e DATA, Portom_sintesi_DATA e SP, Vigar_sintesi_SP e DATA, Vigar_sintesi_DATA e SP, che pescano dal foglio "sintesi_sfalci_distretti" i dati, a loro volta acquisiti dagli altri fogli del file, i quali pescano da un file esterno di rapporto giornaliero (per fare questo esempio ho inserito i valori nei fogli del file da cui pesca "sintesi_sfalci_distretti").

Ho inserito l'ordinamento per "SP" e "data", o viceversa in base alle necessità, ma ogni volta che sul file esterno di rapporto giornaliero aggiungo valori, devo aggiornare i filtri, non lo fa automaticamente.

C'è possibilità di inserire un pulsante, o attivare un comando per aggiornare automaticamente l'ordinamento?
Grazie come sempre...

http://www.filedropper.com/sfalcisintesiesempio_2
28/04/2020 14:15

Salva il files per macro = ???.XLSM (casomai abilitare le macro)
ALT+F11 si apre l'editor. In alto inserisci MODULO1 e incolla il codice sotto.
Questo solo per due fogli, seleziona la parte tra le righe verdi ed incolla prima di END SUB (per ogni incolla che fai devi sostituire il nome del foglio)

>>>o viceversa in base alle necessità
EDit, Se l'ordinamento non è giusto bisognera invertire riga 1 e 2
Sub auto_open()
Dim ur As Long
'...............
    Worksheets("Portom_sintesi_SP e DATA").Activate
    ur = Range("A" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Add Key _
        :=Range("B2:B" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal '1
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Add Key _
        :=Range("A2:A" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal '2
    With ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort
        .SetRange Range("A2:E" & ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
'...........
    Worksheets("Copparo_sintesi_DATA e SP").Activate
    ur = Range("A" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Add Key _
        :=Range("B2:B" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Add Key _
        :=Range("A2:A" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort
        .SetRange Range("A2:E" & ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

[Modificato da ABCDEF@Excel 28/04/2020 15:51]
Post: 5
Registrato il: 27/03/2020
Età: 47
Utente Junior
excel 2013
OFFLINE
30/04/2020 09:57

Re:
Ciao, ti ringrazio tantissimo per la macro; ho provato a svilupparla per gli 8 fogli e però mi da "errore di compilazione: rilevato nome non univoco:auto_open"
Come posso modificare per farla funzionare?
Grazie ancora. Michele


ABCDEF@Excel, 28/04/2020 14:15:

Salva il files per macro = ???.XLSM (casomai abilitare le macro)
ALT+F11 si apre l'editor. In alto inserisci MODULO1 e incolla il codice sotto.
Questo solo per due fogli, seleziona la parte tra le righe verdi ed incolla prima di END SUB (per ogni incolla che fai devi sostituire il nome del foglio)

>>>o viceversa in base alle necessità
EDit, Se l'ordinamento non è giusto bisognera invertire riga 1 e 2
Sub auto_open()
Dim ur As Long
'...............
    Worksheets("Portom_sintesi_SP e DATA").Activate
    ur = Range("A" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Add Key _
        :=Range("B2:B" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal '1
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Add Key _
        :=Range("A2:A" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal '2
    With ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort
        .SetRange Range("A2:E" & ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
'...........
    Worksheets("Copparo_sintesi_DATA e SP").Activate
    ur = Range("A" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Add Key _
        :=Range("B2:B" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Add Key _
        :=Range("A2:A" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort
        .SetRange Range("A2:E" & ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub





Post: 6
Registrato il: 27/03/2020
Età: 47
Utente Junior
excel 2013
OFFLINE
14/05/2020 07:39

Re:
Ciao, ti ringrazio tantissimo per la macro; ho provato a svilupparla per gli 8 fogli e però mi da "errore di compilazione: rilevato nome non univoco:auto_open"
Come posso modificare per farla funzionare?
Ho provato in questi giorni ma non ci arrivo in fondo..
Grazie ancora. Michele

ABCDEF@Excel, 28/04/2020 14:15:

Salva il files per macro = ???.XLSM (casomai abilitare le macro)
ALT+F11 si apre l'editor. In alto inserisci MODULO1 e incolla il codice sotto.
Questo solo per due fogli, seleziona la parte tra le righe verdi ed incolla prima di END SUB (per ogni incolla che fai devi sostituire il nome del foglio)

>>>o viceversa in base alle necessità
EDit, Se l'ordinamento non è giusto bisognera invertire riga 1 e 2
Sub auto_open()
Dim ur As Long
'...............
    Worksheets("Portom_sintesi_SP e DATA").Activate
    ur = Range("A" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Add Key _
        :=Range("B2:B" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal '1
    ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort.SortFields.Add Key _
        :=Range("A2:A" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal '2
    With ActiveWorkbook.Worksheets("Portom_sintesi_SP e DATA").Sort
        .SetRange Range("A2:E" & ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
'...........
    Worksheets("Copparo_sintesi_DATA e SP").Activate
    ur = Range("A" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Add Key _
        :=Range("B2:B" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort.SortFields.Add Key _
        :=Range("A2:A" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Copparo_sintesi_DATA e SP").Sort
        .SetRange Range("A2:E" & ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub





14/05/2020 09:26

>>>seleziona la parte tra le righe verdi...
mmmh Sub auto_open() Dim ur As Long... non rientrano trà le righe verdi.

La parte relativa inizia con Worksheets e finisce con End With
Comunque dato che hai detto che l'ordinamento potrebbe essere differente nei vari fogli. Suggerisco d'eliminare la macro, avviare il registratore, mettere in ordine tutti i fogli e spegnere il registratore. A questo punto basta allega il codice che modifico le righe.
Vota: 15MediaObject5,0015 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 20:40. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com