Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ordinare numericamente fogli di più cartelle excel

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

Ordinare numericamente fogli di più cartelle excel

Postdi stefanin » 19/10/17 17:49

Buongiorno,
ho la necessità di elencare in un foglio excel i nomi dei fogli (ciascuno con il suo nome) di altre sette cartelle, in base al valore numerico di una cella, la CW33, ovviamente con a fianco il valore di ciascuno.
I fogli rappresentano ciascuno una squadra di calcio e la cella CW33 è la somma di ammonizioni e squalifiche, che cambia ovviamente quasi ogni settimana per nuove eventuali ammonizioni e squalifiche di giocatori.
Ogni cartella rappresenta un girone con dentro una quindicina di squadre.
La Classifica dell Disciplina è unica e riguarda tutte le 105 squadre.
Come fare?

Grazie! :roll:
stefanin
Newbie
 
Post: 2
Iscritto il: 19/10/17 17:26

Sponsor
 

Re: Ordinare numericamente fogli di più cartelle excel

Postdi Anthony47 » 20/10/17 19:42

Ciao stefanin, benvenuto nel forum.

Alla cieca sparo il seguente approccio:
-nel file dove vuoi creare il riepilogo, in Foglio1, da A2 versi il basso, metti il nome dei file da esaminare (es NomeFile1.xlsx, etc)
-salvi il file nella stessa directory dove sono localizzati i file da esaminare, chiamandolo (ad esempio) Riepilogo.xlsm
-in un "modulo standard del vba", es Modulo1, inserisci la seguente macro:
Codice: Seleziona tutto
Sub forStef()
Dim iWs As Worksheet, oWs As Worksheet
Dim I As Long, J As Long, myN As Long
'
Set iWs = ThisWorkbook.Sheets("Foglio1")       '<<< Indica il foglio con l'elenco Files
Set oWs = ThisWorkbook.Sheets("Foglio2")       '<<< Indica il foglio dove si creera' il riepilogo
'
Application.EnableEvents = False
oWs.Range("A:C").ClearContents                 '*** Vedi Testo
oWs.Range("A1:C1") = Array("Nome File", "Nome Foglio", "Punteggio")     '<<< Le intestazioni del Riepilogo
For I = 2 To iWs.Cells(Rows.Count, 1).End(xlUp).Row
    Application.DisplayAlerts = False
    Workbooks.Open ThisWorkbook.Path & "\" & iWs.Cells(I, 1)
    Application.DisplayAlerts = True
    For J = 1 To Worksheets.Count
        myN = oWs.Cells(Rows.Count, 1).End(xlUp).Row + 1
        oWs.Cells(myN, 1) = iWs.Cells(I, 1)
        oWs.Cells(myN, 2) = ActiveSheet.Name
        oWs.Cells(myN, 3) = ActiveSheet.Range("CW33").Value
    Next J
    ActiveWorkbook.Close False
Next I
Application.EnableEvents = True
End Sub

Operativamente, partendo da Excel col tuo file attivo:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Le righe marcate <<< sono da adattare, se non ti stanno bene le mie impostazioni

Poi, partendo dal file Riepilogo lancia la Sub forStef:
-premi Alt-F8
-seleziona forStef dall'elenco di macro disponibili
-premi Esegui
La macro aprira' uno dopo l'altro i file che hai elencato e creera' in Foglio2 un elenco di tre colonne.
L'Istruzione marcata *** azzera senza preavviso il contenuto di A:C di Foglio2, prima di creare il nuovo elenco; se questo non ti sta bene (es vuoi accodare i nuovi risultati a quanto gia' presente) allora devi rimuovere tale riga.

Se vuoi ordinare questo elenco, registrati una macro mentre, partendo da Foglio1:
-selezioni Foglio2, selezioni tutte le colonne A:C e ne fai l'ordinamento nella sequenza voluta.
Poi, prima della mia End Sub inserisci una
Call NomeMacroRegistrata

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

Re: Ordinare numericamente fogli di più cartelle excel

Postdi stefanin » 21/10/17 07:29

Ciao Anthony,
grazie per il benvenuto e grazie anche per la risposta.
In realtà ieri ci sono arrivato da solo e la soluzione è molto più semplice.
Apri un nuovo foglio excel (che salveremo come Classifica Disciplina) e sulla prima colonna A, a sinistra, scrivi tutti i nomi delle squadre.
Poi apri tutte le cartelle di tutti i gironi (importante fare queste operazioni con tutto aperto contemporaneamente).
Sul file Classifica Disciplina clicchi sulla cella B, a destra, in fianco a quella del nome di ogni squadra e scrivi =
Poi vai sul totale verde di Detrazioni Fair Play/Classifica Disciplina della squadra dove hai cliccato = , lo evidenzi cliccandoci sopra e schiacci Invio.
Come per magia, il totale di di Detrazioni Fair Play/Classifica Disciplina appare sulla cella B del file Classifica Disciplina in fianco al nome della squadra corrispondente.
Quando vuoi aggiornare la Classifica Disciplina, evidenzi tutta la colonna B, vai sul pulsante in alto Ordina e Filtra (penultimo a destra), e clicchi su Ordina dal più grande al più piccolo. Ti esce una finestrina di Avviso, seleziona Espandere la selezione e clicca su Ordina, La Classifica così è aggiornata.
Ciao grazie ancora comunque.
Stefanin
stefanin
Newbie
 
Post: 2
Iscritto il: 19/10/17 17:26


Torna a Applicazioni Office Windows


Topic correlati a "Ordinare numericamente fogli di più cartelle excel":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti