IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Excel
  New Posts New Posts RSS Feed - riassunto classifica
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

riassunto classifica

 Post Reply Post Reply
Author
Message
mumu View Drop Down
Veterano
Veterano


Joined: 16/Set/2013
Status: Offline
Points: 1102
Post Options Post Options   Thanks (0) Thanks(0)   Quote mumu Quote  Post ReplyReply Direct Link To This Post Topic: riassunto classifica
    Posted: 15/Mar/2019 at 19:42
Ciao tutti,

ho bisogno del vostro prezioso aiuto.


Nel file in allegato ho un estratto di fogli di calcolo dedicati a varie discipline sportive nei quali riporto il valore della prestazione ottenuta e mi viene calcolata in automatico la classifica (in questo file la classifica è fatta a mano). Ovviamente in questi fogli la classifica non è in ordine crescente, ma associata all’atleta e alla sua prestazione.

In un foglio dedicato a parte mi vengono riassunte tutte le classifiche in modo ordinato/crescente di tutti i fogli. Dato che il file è molto complesso da un lato sono stato in grado attraverso formule di riportare tutte le classifiche in modo crescente/ordinato, ma dall’altra è vero che attraverso altre funzioni (mancanti in questo file) i riferimenti mi vengono sempre cancellati (Rif#!).

Per ovviare al problema chiedo aiuto nel creare una VBA che nel foglio “riassunto risultati” attraverso un pulsante vengano create e riportate le classifiche in ordine crescente prendendo riferimento dai fogli di ogni disciplina. Nella classifica deve risultare il piazzamento, il gruppo appartenente, il cognome/nome ed il risultato.

Se può essere di aiuto ogni partecipante ha un suo numero identificativo (pettorale)

Nota a margine: Nelle discipline di corsa il vincitore sarà chi ha ottenuto il minor tempo mentre p.es nelle discipline di salto sarà vincitore chi ha ottenuto il valore maggiore.

Si deve considerare che in classifica possono esserci persone che sono in lista ma non sono partite (dns) oppure non hanno portato a termine la gara (dnf) – in questo caso nei fogli di origine nella colonna classifica per i rispettivi partecipanti ci sarà scritto dns oppure dnf. Nel foglio “riassunto risultati” questi atleti devono essere riportati dopo l’ultimo classificato risultando prima i dnf ed infine dns. Se possibile riportare dnf e dns in ordine alfabetico.

Nel foglio “riassunto risultati” riga 1 sono elencate le discipline categoria M A e W A (ogni disciplina elencata corrisponde un foglio) ed in riga 108 sono riportate le discipline categoria M B e W B. Nel mio file di esempio ho solo riportato 3 foglio con 3 rispettive discipline, il file completo presenta un foglio per ogni disciplina presente nel foglio “riassunto classifica”.

I fogli originali rispecchiano esattamente la disposizione delle colonne nel file allegato. Le colonne vuote nei fogli di calcolo sono utilizzate per altre funzioni non collegate alla richiesta.

ringrazio in anticipo per l'aiuto che mi verrà dato.

mumu

uploads/20154/forum_-_classifica.xlsx

< ="text/"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px 'Times New Roman'} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px 'Times New Roman'; min-height: 15.0px}
Back to Top
Sponsored Links


Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11685
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 16/Mar/2019 at 16:52
Ciao
PREMESSA:
- nei singoli fogli:
..... la colonna "cognome nome" deve essere valorizzata per tutti i componenti
..... anche la colonna classifica deve contenere un numero oppure un testo (dnf-dns)
..... le colonne da BA a BF vengono utilizzate come appoggio

- nel foglio di riepilogo:
..... le intestazioni di riga 1 e riga 108 devono corrispondere esattamente ai nomi dei fogli

FUNZIONALITA':
Ogni volta che viene selezionato il foglio "riassunto risultati" i dati precedentemente calcolati vengono azzerati e ricalcolati.

COME FUNZIONA:
per ciascun foglio vengono temporaneamente copiati nelle colonne da BA a BE le cinque colonne da riportare nel riepilogo;
in colonna BF viene aggiunta una chiave composta da valore classifica + nominativo, esempio:
BA......BB......BC.......BD..............BE.......BF(chiave)
142.....3........piuma...cecchi rosa...15,01...3cecchi rosa
etc etc

questo range, da BA4 a BFn viene poi ordinato per la chiave.
Infine solo il range BA4..BEn viene copiato nel relativo gruppo del foglio riepilogo.

Se vuoi ulteriori spiegazioni fammi sapere.

Sarebbe il caso che tu inserissi una corretta gestione degli errori.

saluti



Edited by dodo47 - 16/Mar/2019 at 16:55
domenico
win 10- office 2016
Back to Top
mumu View Drop Down
Veterano
Veterano


Joined: 16/Set/2013
Status: Offline
Points: 1102
Post Options Post Options   Thanks (0) Thanks(0)   Quote mumu Quote  Post ReplyReply Direct Link To This Post Posted: 20/Mar/2019 at 18:23
ciao dodo,

il principio di funzionamento da te sviluppato fondamentalmente risolve il mio problema.
in questi giorni ho tentato invano una modifica. 
per una gestione dei singoli fogli delle discipline, la tua soluzione di usare le colonne di appoggio nel foglio stesso mi crea problemi. 
io ho pensato di creare una copia del foglio "riassunto risultati" e riportare in questo foglio le colonne di appoggio esattamente come poi risulteranno poi nel foglio "riassunto risultati" utilizzando la colonna vuota tra le discipline per inserire la chiave.
Non sono capace di modificare la destinazione delle colonne di appoggio da interne al foglio alle colonne del foglio "riassunto risultati appoggio".
se questa modifica è fattibile mi potresti aiutare ad adattare il codice?
grazie
mumu
Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11685
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 20/Mar/2019 at 19:35
Ciao
prova il seguente codice.
Il range di appoggio è situato nel foglio riassunto risultati da AAA a AAF.
Il fatto di usare comunque un range di appoggio fisso, facilita enormemente l'ordinamento, in quanto il range da ordinare è sempre lo stesso.
Se vuoi farlo diversamente, saresti costretto a fare n sort diversi ciascuno per ogni settore.
Spero di essermi spiegato.

saluti

Private Sub Worksheet_Activate()
Set wsTO = Worksheets("riassunto risultati")
'pulizia risultati precedenti
Rows(4 & ":" & 107).ClearContents
Rows(111 & ":" & 300).ClearContents
' inizio ciclo lettura fogli
For j = 1 To Sheets.Count
    If Sheets(j).Name <> "riassunto risultati" Then
        Foglio = Sheets(j).Name
        ' ricerca nome foglio in "riassunto risultati" per individuare _
          riga e colonna dove copiare i dati
        With wsTO.Cells
            Set c = .Find(Foglio, LookIn:=xlValues, lookat:=xlWhole)
            If Not c Is Nothing Then
                mcol = c.Column - 3
                mrow = c.Row + 3
            Else
                GoTo FoglioNonTrovato
            End If
        End With
        Set ws = Sheets(Foglio)
        ' valorizzazione colonne appoggio SU RIASSUNTO RISULTATI
        With ws
            Range("AAA4:AAF" & Rows.Count).ClearContents
            ur = .Range("C" & Rows.Count).End(xlUp).Row
            .Range("B4:B" & ur).Copy Range("AAA4")
            .Range("M4:M" & ur).Copy Range("AAB4")
            .Range("D4:D" & ur).Copy Range("AAC4")
            .Range("C4:C" & ur).Copy Range("AAD4")
            .Range("J4:J" & ur).Copy Range("AAE4")
        End With
             ' inserimento della chiave di ordinamento
             For i = 4 To ur
                Range("AAF" & i) = Range("AAB" & i) & Range("AAD" & i)
             Next i
            ' ordinamento
            Sort.SortFields.Clear
            Sort.SortFields.Add2 Key:=Range( _
                "AAF4:AAF" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                xlSortNormal
         With wsTO.Sort
            .SetRange Range("AAA4:AAF" & ur)
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        ' copia del risultato su "riassunto risultati"
        Range("AAA4:AAE" & ur).Copy Cells(mrow, mcol)
    End If
FoglioNonTrovato:
Next j
Application.Goto Range("A1"), True
End Sub



Edited by dodo47 - 21/Mar/2019 at 10:02
domenico
win 10- office 2016
Back to Top
mumu View Drop Down
Veterano
Veterano


Joined: 16/Set/2013
Status: Offline
Points: 1102
Post Options Post Options   Thanks (0) Thanks(0)   Quote mumu Quote  Post ReplyReply Direct Link To This Post Posted: 21/Mar/2019 at 19:51
ciao dodo,

sia il tuo primo che questo codice, se apro il file in excel su mac funziona correttamente, mentre se apro il file con excel per win 2010 mi da errore run-time 438- proprietà o metodo non supportati per l'oggetto. in fase di debug l'errore lo segnala quì
.Sort.SortFields.Add2 Key:=.Range( _
                "BF4:BF" & ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                xlSortNormal
importante che deve funzionare con excel 2010 x win.

a parte questo problema probabilmente ora ti arrabbierai con me perchè ti do le informazioni col contagoccie. a mia discolpa posso dirti che sto facendo un piacere ai colleghi di educazione fisica e non è facile capire il quadro esatto delle esigenze. 

ma ora ci siamo:

- per tutte le discipline presenti nel foglio "riassunto risultati" (riga 3 e riga 108) c'è un foglio dedicato dove ci sono presenti i nomi, gruppo e risultati - questo era già così definito anche prima.

- le discipline di corsa (per ognuna delle quali nel file completo c'è un foglio dedicato), in "riassunto risultati" nelle colonne A:AI i dati di riferimento (classifica, gruppo, cognome/nome, tempo) vengono presi prendendo come riferimento la struttura del foglio "Ostacoli M A".

- le discipline di staffetta in "riassunto risultati" colonne AK:BC prendono i dati da inserire dalla struttura del foglio staffetta M A. quì la cosa si fa più complicata: nelle colonne classifica ovviamente dall'1 andando crescendo, colonna Team il nome del Team, in Cognome Nome dovrebbero venire elencati tutti i cognomi/nomi dei componenti della staffetta divisi da una virgola p.es. balo martin, orso claudio, raggio michel, luna rita - e nella colonna tempo il tempo realizzato.

- le discipline di salto e lancio in lungo presenti nel foglio "riassunto risultati" colonne BE:CM  i dati di riferimento (classifica, gruppo, cognome/nome, metri) vengono presi prendendo come riferimento la struttura del foglio "salto in lungo M A".

- le discipline salto in alto nel foglio "riassunto risultati" colonne CO:CY  i dati di riferimento (classifica, gruppo, cognome/nome, metri) vengono presi prendendo come riferimento la struttura del foglio "salto in alto M A".

- le discipline di triathlon nel foglio "riassunto risultati" colonne DA:DK  i dati di riferimento (classifica, gruppo, cognome/nome, punteggio) vengono presi prendendo come riferimento la struttura del foglio "3K M".

per tutte le classifiche vale la regola che alla fine dei classificati vengono elencati sempre in ordine alfabetico i dnf (che non hanno terminato la competizione) seguiti dai dns (coloro che non sono partiti).

ora ti ho detto tutto tutto. confido nelle tue capacità e nella tua disponibilità ad aiutarmi.


grazie mumu

Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11685
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 22/Mar/2019 at 10:19
Ciao
relativamenbte al sort, è probabile che excel 2010 voglia un diverso tipo di codice. Pertanto attiva il registratore di macro, fai un sort e poi lo adatti. Purtroppo non ho il 2010 e non saprei come aiutarti.

Per quanto riguarda il resto, 'mbè se la struttura dei fogli è omogenea, come hai visto, non ci sono problemi. Ma se i fogli hanno strutture diverse, cioè i dati non sono nelle stesse colonne, francamente non mi sento di proseguire (per tacere poi dei nominativi separati da virgole)

Spero che altri vogliano intervenire

saluti


Edited by dodo47 - 22/Mar/2019 at 10:45
domenico
win 10- office 2016
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,062 seconds.