| | 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 | |
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 | |
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. |
|
|