Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Aiutatemi a testare un file

Ultimo Aggiornamento: 06/08/2018 12:38
Post: 6
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
01/08/2018 14:02

Ciao, mi occupavo di sistemistica per passione e, dato che ora sono in pensione, è diventato il mio impegno quotidiano.
Ho creato una serie di fogli excel che mi permettono di elaborare le partite di tutto il mondo e di ricavarmi dei dati che sono molto interessanti per gli appassionati (gli scommettitori).
I dati finali che ottengo sono raggruppati in un file che permette di elaborarli e ordinarli in base alle proprie esigenze.
Io lavoro sul mac e ho excel 2016. Ho cercato di utilizzare delle macro che non dovrebbero avere problemi con altre versioni di excel, ma non posso testarle tutte.
Vi chiedo di aiutarmi a testarle sui vostri PC e di indicarmi dove qualcosa non va.
Preciso che il file lo distribuirò gratuitamente e che permette di capire quali sono i tipi di scommesse più oneste.
Infatti troverete le percentuali assegnate e ciascun evento, la quota onesta, la quota probabile, e il margine che il bookmaker trattiene per se.
Si possono anche ordinare in base alle preferenze e selezionare per fascia di quote.
All'apertura del file è visibile solo la pagina MENU e cliccando sul tipo di scommessa da analizzare si apre la relativa pagina.
Spero che qualcuno voglia aiutarmi. Naturalmente chi lo desidera potrà ricevere i file che invierò (mandatemi una mail di richiesta).pronostici.sistemi@gmail.com

Se qualcuno ha anche la possibilità di testarlo su OpenOffice o LibreOffice, sarebbe il massimo.
Grazie.
Post: 3.626
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
01/08/2018 14:28

Che io sappia il VBA scritto col MAC è leggermente differente col VBA di Windows
Inoltre il VBA scritto con EXCEL, non funziona su OpenOffice e presumo neppure su LibreOffice
Excel 2013
Post: 6
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
01/08/2018 16:15

Re:
raffaele1953, 01/08/2018 14.28:

Che io sappia il VBA scritto col MAC è leggermente differente col VBA di Windows
Inoltre il VBA scritto con EXCEL, non funziona su OpenOffice e presumo neppure su LibreOffice




Ma proverai a vedere se gira sul tuo?
Post: 3.628
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
01/08/2018 16:51

Hai la mia mail in chat
Secondo me era meglio se lo allegavi nel forum.
Lo proverò e Ti saprò dire se funziona con (Win10 64bit & Excel2013), forse altri utenti lo faranno e Ti diranno la Loro opinione con PC differenti. Fornisci anche un minimo di istruzioni
Excel 2013
Post: 4.111
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
01/08/2018 17:38

Re:
Boss48, 01/08/2018 14.02:


Se qualcuno ha anche la possibilità di testarlo su OpenOffice o LibreOffice, sarebbe il massimo.
Grazie.

puoi installare OO e LO anche sul MAC e ti potrai accorgere personalmente se funziona, di solito funzionano soltanto macro molto semplici quindi hai poche probabilità


[Modificato da patel45 01/08/2018 17:39]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 7
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
01/08/2018 17:42

Re:
raffaele1953, 01/08/2018 16.51:

Hai la mia mail in chat
Secondo me era meglio se lo allegavi nel forum.
Lo proverò e Ti saprò dire se funziona con (Win10 64bit & Excel2013), forse altri utenti lo faranno e Ti diranno la Loro opinione con PC differenti. Fornisci anche un minimo di istruzioni



Lo avevo caricato. Comunque sto riprovando ma non lo vedo nell'anteprima. Fose dipende dalle dimensioni (50,2MB). Per le istruzioni non c'è molto da dire: sono tutti pulsanti collegati a piccole macro che aprono fogli, ordinano, selezionano. Questo è il file finale di un grosso lavoro e lo voglio distribuire gratuitamente a chi mi segue su FB.
Con altri due amici sistemisti cerco di aiutare i giocatori a giocare consapevolmente e a dar loro metodi di gioco seri.
Grazie per l'aiuto.
Post: 8
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
01/08/2018 17:59

Re: Re:
Boss48, 01/08/2018 17.42:



Lo avevo caricato. Comunque sto riprovando ma non lo vedo nell'anteprima. Fose dipende dalle dimensioni (50,2MB). Per le istruzioni non c'è molto da dire: sono tutti pulsanti collegati a piccole macro che aprono fogli, ordinano, selezionano. Questo è il file finale di un grosso lavoro e lo voglio distribuire gratuitamente a chi mi segue su FB.
Con altri due amici sistemisti cerco di aiutare i giocatori a giocare consapevolmente e a dar loro metodi di gioco seri.
Grazie per l'aiuto.




Un amministratore mi sa dire la dimensione massima per caricare file? Grazie

Post: 9
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
01/08/2018 18:33

Re: Re: Re:
Boss48, 01/08/2018 17.59:




Un amministratore mi sa dire la dimensione massima per caricare file? Grazie




Ho provato anche a zipparlo (40,8MB) ma non ce la fa. Se mi date una dimensione massima vedo di eliminare qualche foglio.


Post: 4.112
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
01/08/2018 20:50

basta caricarlo su dropbox o simili e postare il link

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 10
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
01/08/2018 22:31

Re:
patel45, 01/08/2018 20.50:

basta caricarlo su dropbox o simili e postare il link




Grazie. qui potete scaricare il file.

https://www.dropbox.com/s/08x0a9rouletk11/x%20forum.xlsm?dl=0
Post: 3.630
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
02/08/2018 00:30

Premesso che come tester sarò negato
Alcune volte all'apertura, assomiglia ad un albero di natale
Sembra che i bottoni nel MENU siano funzionanti
Tutti i Bottoni Crescenti-Decrescenti (debug, causa un 2 dopo...SortFields.Add2)
In R24=1,1 ed in R25=2, "Poi clicca qui" ma se non dici di modificare quei numeri non succede nulla perche troppo bassi (almeno un Msgbox)
Parliamo ad esempio del foglio RFTUTTI con 45.000 righe e fargli un fare ciclo for (pc quasi bloccato), non sarebbe meglio ordinare la tabella (tramite percentuale) in modo tale che con una ricerca troviamo la riga iniziale e la riga finale e fare un solo un copia/incolla?

Ci sono 11 moduli di cui solo 3 scritti, eliminare quelli vuoti?
Nel VBA usi troppo spesso il Select (casomai activate)
In teoria Copy da Internet i Dati e li incolli in Riepilogo e dopo? Mi domando come fai aggiornare tutti quei 200 fogli?
NB per tre volte ho premuto il tasto (excel aggiorna tutti, anche se non vedo connessioni), non è successo nulla mà il file si è addormentato e ho dovuto chiuderlo. Intendevo premo un tasto nel menu e non si apre più nulla (forse il mio PC).
Comunque file pesantissimo per Excel
Ps. Cosa serve il foglio FINE ?
vb
Sub a()
Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R26").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub
    I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - 4
    F = Application.WorksheetFunction.Match(ActiveSheet.Range("R26").Value, ActiveSheet.Range("G:G"), 1)
    If I = False Then MsgBox "Non trovo l'inizio, modifica il MIN": Exit Sub
    If F = False Then MsgBox "Non trovo la fine, modifica il MAX": Exit Sub
    'ActiveSheet.Range("B" & I & ":K" & F).Copy
    'ActiveSheet.Range("T5").PasteSpecial
    MsgBox "copio da riga " & I & " a riga " & F
End Sub
[Modificato da raffaele1953 02/08/2018 10:39]
Excel 2013
Post: 11
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
02/08/2018 17:49

Re:
raffaele1953, 02/08/2018 00.30:

Premesso che come tester sarò negato
Alcune volte all'apertura, assomiglia ad un albero di natale
Sembra che i bottoni nel MENU siano funzionanti
Tutti i Bottoni Crescenti-Decrescenti (debug, causa un 2 dopo...SortFields.Add2)
In R24=1,1 ed in R25=2, "Poi clicca qui" ma se non dici di modificare quei numeri non succede nulla perche troppo bassi (almeno un Msgbox)
Parliamo ad esempio del foglio RFTUTTI con 45.000 righe e fargli un fare ciclo for (pc quasi bloccato), non sarebbe meglio ordinare la tabella (tramite percentuale) in modo tale che con una ricerca troviamo la riga iniziale e la riga finale e fare un solo un copia/incolla?

Ci sono 11 moduli di cui solo 3 scritti, eliminare quelli vuoti?
Nel VBA usi troppo spesso il Select (casomai activate)
In teoria Copy da Internet i Dati e li incolli in Riepilogo e dopo? Mi domando come fai aggiornare tutti quei 200 fogli?
NB per tre volte ho premuto il tasto (excel aggiorna tutti, anche se non vedo connessioni), non è successo nulla mà il file si è addormentato e ho dovuto chiuderlo. Intendevo premo un tasto nel menu e non si apre più nulla (forse il mio PC).
Comunque file pesantissimo per Excel
Ps. Cosa serve il foglio FINE ?
vb
Sub a()
Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R26").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub
    I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - 4
    F = Application.WorksheetFunction.Match(ActiveSheet.Range("R26").Value, ActiveSheet.Range("G:G"), 1)
    If I = False Then MsgBox "Non trovo l'inizio, modifica il MIN": Exit Sub
    If F = False Then MsgBox "Non trovo la fine, modifica il MAX": Exit Sub
    'ActiveSheet.Range("B" & I & ":K" & F).Copy
    'ActiveSheet.Range("T5").PasteSpecial
    MsgBox "copio da riga " & I & " a riga " & F
End Sub



Grazie per l'attenzione (e la pazienza). Proverò il copia incolla come hai suggerito. Per quanto riguarda l'aggiornamento, anche per alleggerire il foglio, ho tolto alcune macro che lo fanno prima di inviare il foglio, prendendo i dati dal foglio RIEPILOGO.
Che a sua volta viene aggiornato semplicemente copiandovi i dati dal foglio excel che acquisisce i dati da internet, e li elabora per ottenere le percentuali, la quota onesta, ecc.
Sul foglio che elabora ci vuole molta pazienza: la macro che fa tutto ci impiega più di un'ora.
Ho eliminato i moduli vuoti. Il foglio FINE è da eliminare.
Vorrei farti una domanda: visto che il file è pesantissimo, potrei suddividerlo in 5 file che si richiamano l'un l'altro. Credi che si può velocizzare qualcosa o è inutile?

Post: 12
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
02/08/2018 18:47

Re:
raffaele1953, 02/08/2018 00.30:


Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R26").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub
I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - 4
F = Application.WorksheetFunction.Match(ActiveSheet.Range("R25").Value, ActiveSheet.Range("G:G"), 1)
If I = False Then MsgBox "Non trovo l'inizio, modifica il MIN": Exit Sub
If F = False Then MsgBox "Non trovo la fine, modifica il MAX": Exit Sub
'ActiveSheet.Range("B" & I & ":K" & F).Copy
'ActiveSheet.Range("T5").PasteSpecial
MsgBox "copio da riga " & I & " a riga " & F
End Sub




Ho un problema con

I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - 4

Mi va a prendere solo gli ultimi 5 dati relativi a quanto impostato con R24. in pratica trova solo l'ultimo e non il primo dei dati con quel valore. Come posso risolvere?

Post: 3.632
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
02/08/2018 23:25

Intanto dovresti evitare di quotare "per intero" le mie risposte (Al massimo Quota 1/2 righe, oppure tra poco non si capisce più nulla)
Forse per Te ed amici, questo file sarà utile. Mà a me inesperto di scommesse, mi sembra inutile, mà soprattutto immenso.

>>>ci impiega più di un'ora
Meglio per me che le hai tolte, in questo modo non le ho viste e non divento matto.

A riguardo il dividere in file in diversi file, potrebbe essere un'ipotesi valida.
Il foglio riepilogo rimane da solo, prende i dati da internet e li smista "negli" altri 2-3 file (in base al tipo di scommesse)

A proposito il VBA era per quell'altro post e solo all'ultimo momento ho tolto 2 righe importanti (sbagliando forse anche la colonna)
Siccome Inizio e Fine vengono trovati solo se i dati sono in Ordine, inoltre non è detto che esista il MIN in Range("G:G")
Nell'altro file ho messo in Q24 =GRANDE(G:G;CONTA.SE(G:G;">="&R24)) Ho messo in R24 il MIN ed in R26 il MAX.
PS Ho notato che in certi fogli metti due/tre opzioni per ordinare, di certo questo VBA non va bene per quelli
vb
Sub a()
If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R26").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub
Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("G5:G" & Lr), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("B5:K" & Lr)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
R1 = ActiveSheet.Range("Q24").Value ' Q24 dove c'e la formula
R2 = ActiveSheet.Range("R26").Value
    I = Application.WorksheetFunction.Match(R1, ActiveSheet.Range("G:G"), 1)
    F = Application.WorksheetFunction.Match(R2, ActiveSheet.Range("G:G"), 1)
    'ActiveSheet.Range("B" & I & ":K" & F).Copy
    'ActiveSheet.Range("T5").PasteSpecial
    MsgBox "copio da riga " & I & " a riga " & F
End Sub
[Modificato da raffaele1953 02/08/2018 23:34]
Excel 2013
Post: 3.633
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
03/08/2018 09:39

A proposito (ho copiato il Tuo foglio Riepilogo che contiene 400.000 record) in un'altro file. Non sò se i dati siano sempre disposti allo stesso modo, mà dopo una pulizia sono diventati 125115 record e pesa 6,2mb. Adesso non saprei come fare per suddividerli, mà credo che usando solo i tasti d'excel Filtro/Ordina, sia l'unica cosa che puoi fare. Oppure devi trovare un'altra modalità.
vb
Sub elimina_righe()
Dim Ur As Long, Ur2 As Long, ToT As Long
If Cells(4, 2) = "" Then Rows("4:4").Delete Shift:=xlUp
Ur = Range("B" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("RIEPILOGO").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("RIEPILOGO").Sort.SortFields.Add Key:=Range( _
        "B4:B" & Ur), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("RIEPILOGO").Sort
        .SetRange Range("B3:K" & Ur)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    If Cells(4, 2) = 0 Then ' elimino tutte le righe che in colonna B = 0
        ToT = Application.WorksheetFunction.CountIf(Range("B:B"), 0) + 3
        Rows("4:" & ToT).Delete Shift:=xlUp
    End If
    Ur2 = Range("M" & Rows.Count).End(xlUp).Row
    If Ur2 > Ur Then ' elimino tutte le righe di differenza tra B e colonna N, ... se in N sono sono di più
        Rows(Ur + 1 & ":" & Ur2).Delete Shift:=xlUp
    End If
    Range("J4:J" & Ur).NumberFormat = "0.00" ' converto la colonna J da testo in numeri
    ' Presumo siano da eliminare le colonna L/T
    Columns("L:T").Delete Shift:=xlToLeft
End Sub
[Modificato da raffaele1953 03/08/2018 10:12]
Excel 2013
Post: 13
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
03/08/2018 14:19

Re:


Ho provato il secondo VBA, ma i risultati sono stati gli stessi. Però ho provato a modificare il primo VBA in questo modo:

Sub QUOTE()
Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

Range("T5:AC10000").Select
Application.CutCopyMode = False
Selection.ClearContents

Range("B5:K100000").Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add2 Key:=Range("G5:G100000"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B5:K100000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply

If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R25").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub
I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - Range("Q34").Value
F = Application.WorksheetFunction.Match(ActiveSheet.Range("R25").Value, ActiveSheet.Range("G:G"), 1)
If I = False Then MsgBox "Non trovo l'inizio, modifica il MIN": Exit Sub
If F = False Then MsgBox "Non trovo la fine, modifica il MAX": Exit Sub
ActiveSheet.Range("B" & I & ":K" & F).Copy
ActiveSheet.Range("T5").PasteSpecial

Columns("T:AC").Select
Columns("T:AC").EntireColumn.AutoFit

MsgBox "copio da riga " & I & " a riga " & F

End With
End Sub

In pratica ho inserito una pulizia dei campi (per evitare residui di elaborazioni precedenti). Poi ho ordinato la colonna G in modo crescente e poi nel campo Q34 ho inserito la formula
=CONTA.SE(G:G;"="&R24)-1
e l'ho utilizzato in
I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - Range("Q34").Value

Alla fine ho adattato le colonne ai campi.

Che ne dici? È migliorabile?

Per quanto riguarda il Foglio RIEPILOGO, i dati sono immessi a gruppi di mille in modo che si possano facilmente selezionare. Credo che sia il modo migliore per poterci lavorare.
Proverò a dividere il file, e vediamo che succede.
Grazie di tutto.




Post: 3.634
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
03/08/2018 15:35

>>>poi nel campo Q34 ho inserito la formula =CONTA.SE(G:G;"="&R24)-1
Io ho scritto (nel campo Q24) =GRANDE(G:G;CONTA.SE(G:G;">="&R24))...ex se metto in R24 = 0,01 (e questo numero non esiste in G:G)
La formula mi ritrova il numero più alto-vicino allo 0,01 (ex 0,04) oppure il VBA andrà in errore perchè non trova 0,01

Esiste ancora il 2 nel Tuo ActiveWorkbook.ActiveSheet.Sort.SortFields.Add2 Key:

Premesso che le variabili R1, R2 le ho dichiarate As Double (virgola mobile a 8 BYTE)
Nel post 14) R1 = ActiveSheet.Range("Q24").Value <<>> I = Application.WorksheetFunction.Match(R1, ActiveSheet.Range("G:G"), 1)
Non posso dargli il valore 0,01 scritto nel Range("R24").Value, perchè lo interpreta come uno ZERO, mà se gli dò R1 ricerca 0,04
>>> I = Application.WorksheetFunction.Match(ActiveSheet.Range("R24").Value, ActiveSheet.Range("G:G"), 1) - Range("Q34").Value
Cioè cosa fai? Oltre alla formula errata, immetti il 0,01 nella ricerca e per finire alla fine gli sottrai pure il Range("Q24").Value ??????

Forse e meglio che usi il codice dell'altro post. Come noti ci sono troppe differenze tra MAC e PC
[Modificato da raffaele1953 03/08/2018 15:41]
Excel 2013
Post: 14
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
03/08/2018 18:47

Re:
raffaele1953, 03/08/2018 15.35:

>>>
Forse e meglio che usi il codice dell'altro post. Come noti ci sono troppe differenze tra MAC e PC




Il problema, che cercavo di risolvere, è che anche con questo VBA mi prende solo l'ultima riga con il valore minimo. Come posso risolvere?
Per il foglio RIEPILOGO, dato che una volta fatta l'elaborazione non serve più, lo posso eliminare nel file che distribuisco.
Grazie
Post: 5.450
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
04/08/2018 11:14

Test File
Ciao il tuo file è troppo grande, credo che ci siamo molta roba ripetitiva, che potrebbe essere tolta, ma non entro in merito in quanto non ho visto a fondo il file.

comunque visto che hai problemi a recepire il min-max, io risolvo in questa maniera senza fare ricerche o altro uso 2 celle di appoggio per riferimento con le formule del min e max dell'area interessata, esempio =Min(A.A) e =Max(A:A), a questo punto non devo cercare niente con cicli o altro ma soltanto rilevare il valore delle due celle con le formule.

non so se può esseerti utile.

ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 3.636
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
04/08/2018 16:46

Ciao by sal
Il problema è molto differente, da come pensi (oltre ad usare il MAC, vorrebbe che il VBA funzionasse sia in WIN che MAC ?
Oltre al "peso", esistono "alcuni" ciclo for sù 45.000 record (che mi impallavano il PC)
A riguardo "questo", mi sono inventato il MIN-MAX, mà sembra che la formula =GRANDE(G:G;CONTA.SE(G:G;">="&R24) non funziona sul MAC?

Ps A riguardo il codice...., vedere scritto in (questa cartella di lavoro) Sub Auto_close() + Private Sub Workbook_Open()
Ho già capito l'albero di Natale di WIN e comunque, vedo ancora come l'utente "non desidera usare" le "varie" variabile (Lr,R1,R2). Altro cose sul MAC non capisco.
[Modificato da raffaele1953 04/08/2018 17:04]
Excel 2013
Post: 5.451
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
05/08/2018 07:27

Test File
Ciao Raffaele, oltre quello che hai detto, credo che converrebbe lavorare con le Matrici, per fare cicli e memorizzare, oltre la velocità ne guadagnerebbe anche il crash del file.

Come ho detto non ho dato un occhiata a fondo al file, quando si tratta del Mac io lascio stare, perche e complicato trovare il vba che si adatti.

Inoltre vorrei capire in linea di massima il principio, perche ha bisogno di tanti fogli, una volta presi i valori credo dal Web, non possono essere accorpati in una sola tabella riepilogativa?.

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 3.637
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
05/08/2018 12:09

Ciao by sal
>>>perche ha bisogno di tanti fogli
Infatti sono tutti ripetitivi, secondo me basterebbe solo i fogli Riepilogo+Menu.
Una volta ripulito Riepilogo, con solo i tasti d'excel (filtra/ordina) può far tutto.
Non fosse un MAC, gli avrei già dato un VBA d'esempio
Excel 2013
Post: 15
Registrato il: 28/05/2018
Città: LATINA
Età: 75
Utente Junior
2016 mac
OFFLINE
06/08/2018 01:57

Re:
raffaele1953, 04/08/2018 16.46:


Ho già capito l'albero di Natale di WIN e comunque, vedo ancora come l'utente "non desidera usare" le "varie" variabile (Lr,R1,R2). Altro cose sul MAC non capisco.



Scusami, ma come ti ho detto sono un neofita del VBA, inoltre quando ancora non conosco bene qualcosa (come le variabili) le evito.
Comunque sono riuscito a far funzionare le fasce di quota sul Mac in questo modo:

Sub FASCIAQUOTA()

Range("T5:AC10000").Select
Application.CutCopyMode = False
Selection.ClearContents

If ActiveSheet.Range("M5").Value = "-1" Then MsgBox "Inserire una quota esistente per il MINIMO": Exit Sub
If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R25").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub
Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("G5:G" & Lr), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("B5:K" & Lr)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
R1 = ActiveSheet.Range("R5").Value ' R5 dove c'e la formula
R2 = ActiveSheet.Range("R25").Value
I = Application.WorksheetFunction.Match(R1, ActiveSheet.Range("G:G"), 1) - Range("M5").Value
F = Application.WorksheetFunction.Match(R2, ActiveSheet.Range("G:G"), 1)
ActiveSheet.Range("B" & I & ":K" & F).Copy
ActiveSheet.Range("T5").PasteSpecial

Columns("T:AC").Select
Columns("T:AC").EntireColumn.AutoFit

Range("T1").Select
End Sub

Ho utilizzato il tuo codice, che aveva il problema (sul mac) di trovare solo l'ultimo dei minimi richiesti. L'ho risolto mettendo la formula

=CONTA.SE(G:G;"="&R24)-1

che mi conta quanti minimi devo recuperare. A questo punto ho modificato l'istruzione

I = Application.WorksheetFunction.Match(R1, ActiveSheet.Range("G:G"), 1) - Range("M5").Value

in modo che mi prenda tutti i minimi.
Ho anche messo

If ActiveSheet.Range("M5").Value = "-1" Then MsgBox "Inserire una quota esistente per il MINIMO": Exit Sub

per evitare quote inesistenti.

Le formule le trovi in M5 e S5 (sono nascoste).

Ho eliminato il foglio RIEPILOGO e anche le macro di apertura e chiusura (che erano inutili) Ora sono rimaste solo le macro per aprire i vari fogli, che credo funzionino anche sul PC, e quelle per ordinare.

Se potete darci un'occhiata e adattarle al PC ve ne sarei grato. Chiaramente ne basta una per tipo.
Infine volevo spiegare che i dati utilizzati fanno parte di un data base molto grande dove preleviamo da internet solo i risultati delle partite, e i dati delle partite da giocare.
Poi li elaboriamo in più passaggi per ottenere le percentuali, le quote "oneste" e quelle "probabili". Inoltre calcoliamo anche il ricarico che attuano i bookmaker.

Non esistono cose del genere su internet e credo che questo lavoro possa interessare moltissimi appassionati di scommesse.

Se non siete pratici di scommesse, provate a chiedere a qualcuno.

Perché faccio tutto questo lavoro? Beh, mi appassiona e penso che se riesco a convincere qualcuno a giocare in modo intelligente ho fatto qualcosa di buono.

Grazie.

P.S. il file è sempre qui:
https://www.dropbox.com/s/2gzp3sq9ebictdl/x%20forum.xlsm?dl=0

Post: 3.638
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
06/08/2018 12:38

by sal, dovresti modificare il primo post in http://www.freeforumzone.com/d/11202105/-COLORE-BLUE-FONT-BOLD-ATTENZIONE-SCARICARE-o-INSERIRE-un-FILE-VEDI-QUI-/discussione.aspx ed insegnare come inserire il CODICE nel forum

Non sono un grandissimo esperto e l'ultimo allegato EXCEL si rifiuta d'aprirlo. Pesa 27,5mb.
Dal primo allegato, nel codice in (Questa_Cartella_di_Lavoro) hai, Sub Auto_close() e Private Sub Workbook_Open()
Io eliminerei tutto e scriverei solo questo (sempre sia compatibile con MAC)
vb
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "MENU" Then ws.Visible = False
    Next ws
End Sub

Dopo nella sub attuale
vb
Sub FASCIAQUOTA() 
Dim Lr As Long, R1 As Double, R2 As Double, I As Long, F As Long 
Lr = ActiveSheet.Cells(Rows.Count, "T").End(xlUp).Row 
ActiveSheet.Range("T5:AC"&Lr).ClearContents
If ActiveSheet.Range("R24").Value = "" Or ActiveSheet.Range("R25").Value = "" Then MsgBox "Inserire il MIN e MAX": Exit Sub 
Lr = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row 
'da qui in poi, non posso dire nulla. Sò che il mio codice fuziona con Wind, se col MAC non funziona non sò cosa fare
End Sub 
Ho terminato i suggerimenti e si capisce che MAC è diverso da WIND.
Ps. Solo un ragionamento terra-terra dal foglio RIEPILOGO (però, prima và ripulito col VBA del post 15 "se non funziona sul MAC", ripuliscilo Tu), dopo usando solo i tasti (Excel Filtro/Ordina) riesci visualizzare TUTTE le modalità di scommesse che hai fatto nei 300 fogli?
SI; allora Copy le righe visibili in un foglio nuovo e fai quello che devi fare. Nel uscire tutti questi nuovi fogli andranno eliminati ed il Tuo file sarà sempre trà 6/7mb
Excel 2013
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 16:00. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com