Buongiorno,
come molti iscritti al forum anche io sono un semplice fruitore delle conoscenze condivise, molti dei volontari capaci e competenti sono una preziosa risorsa per la prosperità e vitalità stessa.
Mi sono lasciato andare su riflessioni soggettive e personali, chiedo scusa e inizio ad esporre la richiesta.
Come da file allegato ho adattato alle personali esigenze una discussione un po' datata (viewtopic.php?f=9&t=4565) riuscendo nella piccola e scarsa conoscenza a fare funzionare la macro inserita. Chiedo: come posso porre in ordine decrescente la classifica? Come è evidente dall'allegato essa rimane nell'ordine così come è stata costruita; certamente si può correggere intervenendo sulla stessa macro ma, non ho le capacità conoscitive per scrivere ed adattare.
Ringrazio per l'ascolto Voi tutti, con particolare interesse Gaetanopr che ha prodotto la macro in questione commentando anche le varie fasi di scrittura (cosa molto apprezzata).
Ancora una serena giornata e saluti.
[Risolto]:Modificare macro per avere ordine decrescente
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
[Risolto]:Modificare macro per avere ordine decrescente
- Allegati
-
- Clas_Cal_CU_2 prova.ods
- Modificato titolo. Era: "Per completare macro"
- (18.55 KiB) Scaricato 129 volte
Ultima modifica di solitariopc il venerdì 17 novembre 2017, 10:35, modificato 1 volta in totale.
LibreOffice 5.1.6.2 su LinuxMint 18
Re: Per completare macro
La macro preleva i dati e li inserisce nella tabella, i punteggi sono ottenuti tramite formule, quindi non lo puoi fare, però potresti copiare la tabella su un altro foglio incollando con Incolla speciale (testo e numeri) e poi ordinarla da Dati, Ordina e quindi stamparla
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
Re: Modificare macro per avere ordine decrescente
Buongiorno,
in risposta a la risposta di Patel riguardante la fattibilità o la possibilità di ottenere ciò da me richiesto, sono qui a ringraziare della spiegazione fornitami, pensavo fosse semplice ma, era solo una personale valutazione.
Con la soluzione proposta ho creato un secondo foglio (classifica) assegnando alle varie celle un collegamento e non un copia-incolla,
facendo qualche prova sembra tutto OK, ho formattato in modo decrescente e sembra funzionare, dico sembra..., perché non so come evolvera il conteggio su lungo periodo (Allego file). Smanettando per implementare il numero dei gol subiti e segnati sommando i vari incontri ho quasi sviluppato un artrosi alla mano. Scherzi a parte, esiste una funzione che riduca il lavoro.
Grazie ancora Patel della disponibilità, auguro una serena giornata a Te e ai frequentatori del forum.
Saluti, Solitariopc
in risposta a la risposta di Patel riguardante la fattibilità o la possibilità di ottenere ciò da me richiesto, sono qui a ringraziare della spiegazione fornitami, pensavo fosse semplice ma, era solo una personale valutazione.
Con la soluzione proposta ho creato un secondo foglio (classifica) assegnando alle varie celle un collegamento e non un copia-incolla,
facendo qualche prova sembra tutto OK, ho formattato in modo decrescente e sembra funzionare, dico sembra..., perché non so come evolvera il conteggio su lungo periodo (Allego file). Smanettando per implementare il numero dei gol subiti e segnati sommando i vari incontri ho quasi sviluppato un artrosi alla mano. Scherzi a parte, esiste una funzione che riduca il lavoro.
Grazie ancora Patel della disponibilità, auguro una serena giornata a Te e ai frequentatori del forum.
Saluti, Solitariopc
- Allegati
-
- Clas_Cal_Lega_Pro.ods
- (33.01 KiB) Scaricato 117 volte
LibreOffice 5.1.6.2 su LinuxMint 18
Re: Modificare macro per avere ordine decrescente
Dovresti rinunciare alle formule e fare tutto il lavoro via macro, in tal modo la tabella conterrebbe soltanto dati e sarebbe facilmente ordinabile anche via macro, però dovrsti rinunciare alle righe intermedie vuote.
Intanto prova questa e controlla i risultati
Intanto prova questa e controlla i risultati
Codice: Seleziona tutto
Sub Main
Dim VC As Integer, PC As Integer, SC As Integer, VT As Integer, ST As Integer, PT As Integer
Dim Doc As Object, Sh As Object, c As Object
Dim LastRow As Long, i As Long, t As Long
Doc = ThisComponent
Sh = Doc.Sheets(0)
c = Sh.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow
For i = 8 To 44 step 2
VC = 0
PC = 0
SC = 0
VT = 0
ST = 0
PT = 0
For t = 9 To LastRow
if Sh.getCellByPosition(1, i).String = Sh.getCellByPosition(22, t).String Then
if Len(Sh.getCellByPosition(23, t).String) > 0 Then
if Sh.getCellByPosition(23, t).Value > Sh.getCellByPosition(24, t).Value Then
VC = VC + 1
elseif Sh.getCellByPosition(23, t).Value = Sh.getCellByPosition(24, t).Value Then
PC = PC + 1
elseif Sh.getCellByPosition(23, t).Value < Sh.getCellByPosition(24, t).Value Then
SC = SC + 1
end if
end if
elseif Sh.getCellByPosition(1, i).String = Sh.getCellByPosition(25, t).String Then
if Len(Sh.getCellByPosition(23, t).String) > 0 Then
if Sh.getCellByPosition(23, t).Value > Sh.getCellByPosition(24, t).Value Then
ST = ST + 1
elseif Sh.getCellByPosition(23, t).Value = Sh.getCellByPosition(24, t).Value Then
PT = PT + 1
elseif Sh.getCellByPosition(23, t).Value < Sh.getCellByPosition(24, t).Value Then
VT = VT + 1
end if
end if
end if
Next t
Sh.getCellByPosition(9, i).Value = VC
Sh.getCellByPosition(10, i).Value = PC
Sh.getCellByPosition(11, i).Value = SC
Sh.getCellByPosition(14, i).Value = VT
Sh.getCellByPosition(15, i).Value = PT
Sh.getCellByPosition(16, i).Value = ST
Sh.getCellByPosition(8, i).Value = Sh.getCellByPosition(18, i).Value + Sh.getCellByPosition(13, i).Value
Sh.getCellByPosition(7, i).Value = Sh.getCellByPosition(17, i).Value + Sh.getCellByPosition(12, i).Value
Sh.getCellByPosition(6, i).Value = Sh.getCellByPosition(16, i).Value + Sh.getCellByPosition(11, i).Value
Sh.getCellByPosition(5, i).Value = Sh.getCellByPosition(15, i).Value + Sh.getCellByPosition(10, i).Value
Sh.getCellByPosition(4, i).Value = Sh.getCellByPosition(14, i).Value + Sh.getCellByPosition(9, i).Value
Sh.getCellByPosition(3, i).Value = Sh.getCellByPosition(4, i).Value + Sh.getCellByPosition(5, i).Value+ Sh.getCellByPosition(6, i).Value
Sh.getCellByPosition(2, i).Value = Sh.getCellByPosition(4, i).Value * 3 + Sh.getCellByPosition(5, i).Value + 3 + Sh.getCellByPosition(6, i).Value * 3
Next i
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 63
- Iscritto il: mercoledì 1 febbraio 2012, 12:36
Modificare macro per avere ordine decrescente
Buonasera a chi legge queste righe, a chi si adopera con consigli e tempo, chi mette a disposizione conoscenze e competenze.
La chiara risposta che Patel ha esposto, sulla scarsa compatibilità tra macro e funzioni e quindi la scelta di adottare o l'una o l'altra mi ha fatto scegliere, ho continuato a portare a termine la ricerca su ogni singola cella sommando i vari valori, la mia richiesta era una semplice informazione o suggerimento per accorciare il lavoro (esempio un cerca verticale sulle colonne X, Y, del foglio calendario incontri da sommare).
Sulla macro che Lei mi ha suggerito di provare devo dire che non ha sortito il risultato che mi ero prefisso, le prove hanno restituito valori inesatti che non corrispondono alla somma dei valori inseriti. Un po' di pazienza e lavoro in più e il risultato è stato raggiunto.
Grazie ancora della disponibilità.
Buona notte.
La chiara risposta che Patel ha esposto, sulla scarsa compatibilità tra macro e funzioni e quindi la scelta di adottare o l'una o l'altra mi ha fatto scegliere, ho continuato a portare a termine la ricerca su ogni singola cella sommando i vari valori, la mia richiesta era una semplice informazione o suggerimento per accorciare il lavoro (esempio un cerca verticale sulle colonne X, Y, del foglio calendario incontri da sommare).
Sulla macro che Lei mi ha suggerito di provare devo dire che non ha sortito il risultato che mi ero prefisso, le prove hanno restituito valori inesatti che non corrispondono alla somma dei valori inseriti. Un po' di pazienza e lavoro in più e il risultato è stato raggiunto.
Grazie ancora della disponibilità.
Buona notte.
- Allegati
-
- Clas_Cal_Lega_Pro.ods
- (42.69 KiB) Scaricato 144 volte
LibreOffice 5.1.6.2 su LinuxMint 18