Condividi:        

analizzare le quote di un sistema

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

Re: analizzare le quote di un sistema

Postdi Avatar3 » 28/05/11 14:28

Ho pensato di implementare la macro precedente che effettua anche il conteggio dei ritardi
quindi sostituisci la macro con questa
Codice: Seleziona tutto
Sub Ritardi1x2()

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

    ActiveSheet.Unprotect

    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim E As Integer: Dim J As Integer: Dim R As Integer

Application.ScreenUpdating = False
Application.Calculation = xlManual

    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("P" & Rows.Count).End(xlUp).Row
For RR = UR To 9 Step -1
If Ws1.Range("P" & RR).Value <> "" Then
URE = RR
GoTo salta
End If
Next RR
salta:
ContaR = 0
Conta1 = 0
Conta2 = 0
ContaX = 0
Mconta1 = 0
Mconta2 = 0
McontaX = 0
Ws2.Range("CP9:CP11").ClearContents
For RR = URE To 9 Step -1
If Ws1.Range("P" & RR).Value = 1 Then
Conta1 = 0
Else
Conta1 = Conta1 + 1
If Mconta1 < Conta1 Then Mconta1 = Conta1
End If
If UCase(Ws1.Range("P" & RR).Value) = "X" Then
ContaX = 0
Else
ContaX = ContaX + 1
If McontaX < ContaX Then McontaX = ContaX
End If
If Ws1.Range("P" & RR).Value = 2 Then
Conta2 = 0
Else
Conta2 = Conta2 + 1
If Mconta2 < Conta2 Then Mconta2 = Conta2
End If
If Ws2.Range("CP9").Value = "" And Ws1.Range("P" & RR).Value = 1 Then Ws2.Range("CP9").Value = ContaR
If Ws2.Range("CP10").Value = "" And UCase(Ws1.Range("P" & RR).Value) = "X" Then Ws2.Range("CP10").Value = ContaR
If Ws2.Range("CP11").Value = "" And Ws1.Range("P" & RR).Value = "2" Then Ws2.Range("CP11").Value = ContaR
ContaR = ContaR + 1
Next RR
 Ws2.Range("CP15").Value = Mconta1
 Ws2.Range("CP16").Value = McontaX
 Ws2.Range("CP17").Value = Mconta2
    Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic


ActiveWindow.DisplayGridlines = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True

    Range("Co1").Select
   
    Unload UserForm2
      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")
   
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Sponsor
 

analizzare le quote di un sistema

Postdi raimea » 28/05/11 15:44

tutto ok
idea ottima
di nuovo 1.000 grazie. ;)
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

analizzare le quote di un sistema

Postdi raimea » 30/05/11 06:36

:eeh:
le necessita' delle statistiche ci vengono con l'utilizzo del programma.
sarebbe possibile avere il MAX consecutivo dei relativi segni ?
sempre analizzando fogl1 col P,
rilevare il MAX di volte che il segno 1,x,2 e' consecutivo ?
Es. per il segno 1 il suo max e' 4 volte.
tale dato lo vorrei poter riportare in fgl 2 col CP da cella 20.... :!: :roll:
vi ringrazio

http://www.sendspace.com/file/72o5ui
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Avatar3 » 30/05/11 09:20

Con la stessa macro modificata hai anche questa statistica
Codice: Seleziona tutto
Sub Ritardi1x2()

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

    ActiveSheet.Unprotect

    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim E As Integer: Dim J As Integer: Dim R As Integer

Application.ScreenUpdating = False
Application.Calculation = xlManual

    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("P" & Rows.Count).End(xlUp).Row
For RR = UR To 9 Step -1
If Ws1.Range("P" & RR).Value <> "" Then
URE = RR
GoTo salta
End If
Next RR
salta:
ContaR = 0
Conta1 = 0
Conta2 = 0
ContaX = 0
Mconta1 = 0
Mconta2 = 0
McontaX = 0
Max1 = 0
Max2 = 0
MaxX = 0
MMax1 = 0
MMax2 = 0
MMaxX = 0
Ws2.Range("CP9:CP11").ClearContents
Ws2.Range("CP15:CP17").ClearContents
Ws2.Range("CP20:CP22").ClearContents
For RR = URE To 9 Step -1
If Ws1.Range("P" & RR).Value = 1 Then
Max1 = Max1 + 1
If MMax1 < Max1 Then MMax1 = Max1
Conta1 = 0
Else
Max1 = 0
Conta1 = Conta1 + 1
If Mconta1 < Conta1 Then Mconta1 = Conta1
End If
If UCase(Ws1.Range("P" & RR).Value) = "X" Then
MaxX = MaxX + 1
If MMaxX < MaxX Then MMaxX = MaxX
ContaX = 0
Else
MaxX = 0
ContaX = ContaX + 1
If McontaX < ContaX Then McontaX = ContaX
End If
If Ws1.Range("P" & RR).Value = 2 Then
Max2 = Max2 + 1
If MMax2 < Max2 Then MMax2 = Max2
Conta2 = 0
Else
Max2 = 0
Conta2 = Conta2 + 1
If Mconta2 < Conta2 Then Mconta2 = Conta2
End If
If Ws2.Range("CP9").Value = "" And Ws1.Range("P" & RR).Value = 1 Then Ws2.Range("CP9").Value = ContaR
If Ws2.Range("CP10").Value = "" And UCase(Ws1.Range("P" & RR).Value) = "X" Then Ws2.Range("CP10").Value = ContaR
If Ws2.Range("CP11").Value = "" And Ws1.Range("P" & RR).Value = "2" Then Ws2.Range("CP11").Value = ContaR
ContaR = ContaR + 1
Next RR
Ws2.Range("CP15").Value = Mconta1
Ws2.Range("CP16").Value = McontaX
Ws2.Range("CP17").Value = Mconta2
Ws2.Range("CP20").Value = MMax1
Ws2.Range("CP21").Value = MMaxX
Ws2.Range("CP22").Value = MMax2
    Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic


ActiveWindow.DisplayGridlines = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True

    Range("Co1").Select
   
    Unload UserForm2
      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")
   
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: analizzare le quote di un sistema

Postdi raimea » 30/05/11 11:40

Perfetto, come il solito.
grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Avatar3 » 30/05/11 12:09

:)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

analizzare le quote di un sistema

Postdi raimea » 10/06/11 06:14

ciao a tutti.
sempre dello stesso file, vorrei poter ---> contare i giorni.

in fgl 1 col C ho delle date, (e spesso si ripetono ),
vorrei poter contare i giorni nei quali e' stata fatta una giocata,
e riportare tale numero in fgl 2 col BR cella 18.

Es. 18 maggio, 18maggio, 20 maggio, 24 maggio, 24 maggio, 24 maggio

in col BR18 mi dovrebbe riportare il num 3.

spero di essermi spiegato a sufficenza :roll:
grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Avatar3 » 10/06/11 06:39

Riporto uno stralcio della colonna C foglio1...
18/5/11
19/5/11
20/5/11
20/5/11
21/5/11
21/5/11
21/5/11
22/5/11
22/5/11
22/5/11
22/5/11
23/5/11
24/5/11
25/5/11
26/5/11
26/5/11
27/5/11
28/5/11

Perché 3? :roll:
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

analizzare le quote di un sistema

Postdi raimea » 10/06/11 07:03

il mio era un esempio (non la realta di col C),
che in quel caso NON ci sono i giorni
19 magg, non c'e 21 ne 22 ne 23 maggio,
perche' in quei giorni non sarebbe stata fatta nessuna puntata
dal mio esempio si capisce che il gg 18 magg sono state fatte 2 puntate,
il gg 20 1na sola puntata, il gg 24 3 puntate
quindi i giorni di puntata sono stati il 18,20,24 maggio
e i il risultao darebbe 3
ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Avatar3 » 10/06/11 08:27

Proviamo così
Codice: Seleziona tutto
Sub ContaGiorni()
MG = 0
ContaG = 0
    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("P" & Rows.Count).End(xlUp).Row
For RR = 9 To UR
GG = Ws1.Range("C" & RR).Value
If GG <> MG Then
ContaG = ContaG + 1
MG = GG
End If
Next RR
Ws2.Unprotect
Ws2.Range("BR18").Value = ContaG
End Sub


Chiaramente questa macro potrebbe essere integrata nella precedente eliminando righe di codice già esistenti
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

analizzare le quote di un sistema

Postdi raimea » 10/06/11 17:44

8) OTTIMO.....
come sempre ...
tutto ok, fa cio che cercavo
visto il periodo ( fine anno scolastico,)
dichiaro Sig. Avatar promosso a pieni voti.. :D

di nuovo grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Avatar3 » 11/06/11 16:46

:)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: analizzare le quote di un sistema

Postdi raimea » 20/06/11 07:16

:oops: mamma mia ancora statistiche.
vorrei poter contare le puntate fatte in un mese, (indifferentemente di quale anno)
ho provato con il conta.se
Codice: Seleziona tutto
=CONTA.SE('1-masa1-Fogl.Base'!C9:C1000;BQ26)
(x maggio)
ma penso non riconosce maggio in bq26.
comunque:
in fgl2 partendo ba BR22 vorrei riportare il num di puntate fatte in Gennaio
prelevando i dati in fgl 1 Col C,
e nello stesso mese, riportre le Vinte e Perse in fogl 2 Col BS 22 / BT 22 in giu per ogni mese.
allego il file
grazie in anticipo

http://www.sendspace.com/file/2to1t7
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Anthony47 » 20/06/11 15:00

In BQ22 scrivi la data 1 gen 2010, in BQ23 e successive usi la formula
Codice: Seleziona tutto
=FINE.MESE(BQ22;0)+1
Formatta le celle a piacere

Quindi in BR22 potrai usare la formula
Codice: Seleziona tutto
=MATR.SOMMA.PRODOTTO(--(MESE('1-masa1-Fogl.Base'!$C$9:$C$1000)=MESE($BQ22));--('1-masa1-Fogl.Base'!$C$9:$C$1000>0))


Per contare V o P: in BS22
Codice: Seleziona tutto
=MATR.SOMMA.PRODOTTO(--(MESE('1-masa1-Fogl.Base'!$C$9:$C$1000)=MESE($BQ22));--('1-masa1-Fogl.Base'!$C$9:$C$1000>0);--('1-masa1-Fogl.Base'!$M$9:$M$1000=MINUSC(BS$21)))
Copia in BT22, poi copia la prima riga di formule verso il basso.

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

analizzare le quote di un sistema

Postdi raimea » 20/06/11 15:26

Ottimo ,
tutti i conti tornano... ;)

ma ho avuto un imprevisto :?:
quando faccio girare questa macro mi cancella tutto cio' cho ho scritto
da Br22 ecc...

Codice: Seleziona tutto
Sub analizzagiorni()

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

    ActiveSheet.Unprotect
   
   
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim D As Integer: Dim J As Integer: Dim R As Integer

Application.ScreenUpdating = False
Application.Calculation = xlManual

    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("D" & Rows.Count).End(xlUp).Row
    UR2 = Ws2.Range("BQ" & Rows.Count).End(xlUp).Row
    Ws2.Range("BQ9:BT" & UR2).ClearContents
    For D = 9 To UR
            UR2 = Ws2.Range("BQ" & Rows.Count).End(xlUp).Row + 1
            If UR2 < 9 Then UR2 = 9
            For J = 9 To UR2
                If Ws2.Cells(J, 69) = Ws1.Cells(D, 4) Then
                Ws2.Cells(J, 70).Value = Ws2.Cells(J, 70).Value + 1
                GoTo saltaD
                Else
                If Ws2.Cells(J, 69).Value = 0 Then
                    Ws2.Cells(J, 69) = Ws1.Cells(D, 4)
                    Ws2.Cells(J, 70).Value = 1
                End If
                End If
            Next J
saltaD:
    Next D

            UR2 = Ws2.Range("BQ" & Rows.Count).End(xlUp).Row
            For J = 9 To UR2
            ContaV = 0
            ContaP = 0
            Q = Ws2.Range("BQ" & J)
                For D = 4 To UR
                    If Q = Ws1.Cells(D, 4) Then
                        If UCase(Ws1.Cells(D, 13)) = "V" Then ContaV = ContaV + 1
                        If UCase(Ws1.Cells(D, 13)) = "P" Then ContaP = ContaP + 1
                    End If
                Next D
                Ws2.Range("BS" & J) = ContaV
                Ws2.Range("BT" & J) = ContaP
            Next J
           
           
             Sheets("2-statistiche").Select
             
    Range("BP9:BT15").Select  ' ordina col bp da 1-->7
    Selection.Sort Key1:=Range("BP9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
       
       
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

ActiveWindow.ScrollRow = 1  ' alza la barra later dx


Range("BP9:BT15").Select  ' ordina col bp da 1-->7
    Selection.Sort Key1:=Range("BP9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

ActiveWindow.DisplayGridlines = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True
    Range("Br2").Select
   
    MG = 0  '<<< da qui conto i giorni con scommesse cella BR18
ContaG = -1
    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("P" & Rows.Count).End(xlUp).Row
For RR = 9 To UR
GG = Ws1.Range("C" & RR).Value
If GG <> MG Then
ContaG = ContaG + 1
MG = GG
End If
Next RR
Ws2.Unprotect
Ws2.Range("BR18").Value = ContaG
   

Unload UserForm2
      Fine = Timer
MsgBox ("Tempo impiegato " & Int((Fine - Inizio) / 60) & " min " & (Fine - Inizio) Mod 60 & " Sec")

End Sub




perche' :!:
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Anthony47 » 20/06/11 22:17

Perche' la macro comincia con Ws2.Range("BQ9:BT" & UR2).ClearContents.
Secondo me in quella macro calcoli i dati relativi alla tabella settimanale (BT9:BT15), ma si allarga manipolando le celle sottostanti.

Dovresti quindi o rivedere la macro o spostare i calcoli mensili in altra area.

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

analizzare le quote di un sistema

Postdi raimea » 21/06/11 04:05

ho provato a "sistemare" la macro ma niente,
continua a cancellarmi i dati sottostanti.
quindi ho optato per la 2da soluzione, spostando la tabella dei mesi. :lol:
grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

analizzare le quote di un sistema

Postdi raimea » 29/06/11 20:58

ciao a tutti,
sto cercando come fare, (se possibile ), ad aprire sempre sullo stesso foglio all'apertura del file.

sempre con il file allegato nel post del 20.6,
vorrei che ad ogni apertura del file si apra sul foglio --> " 1-masa1-fogl.base " :undecided:
grazie in anticipo.....
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi miko » 29/06/11 21:23

ciao raimea,
per questo tuo ultimo problema posso aiutarti io;
apri il tuo file excel, vai nel vba, sulla destra trovi una finestra:
"PROGETTO-VBAPROJECT"
se non la vedi vai su VISUALIZZA>>GESTIONE PROGETTI
in questa finestra troverai un elenco di progetti-file tra i quali ci sarà anche il tuo;
sotto il suo nome vedrai l'elenco dei fogli contenuti nel progetto-cartella ed in fondo
THISWORKBOOK;
clicca 2 volte su di esso si aprirà la finestra dove inserire questo semplice codice:
Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("Foglio1").Select '<<<<<modifica
End Sub

modifica la linea che ho evidenziato sostituendo a Foglio1 il nome del foglio che vuoi si apra all'avvio di excel.
qualunque sia il foglio selezionato alla chiusura di excel, quando lo riapri si aprirà sempre il foglio che hai inserito nel codice.
ciao
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

analizzare le quote di un sistema

Postdi raimea » 30/06/11 06:21

8)
grande,tutto ok, funziona.
grazie.
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "analizzare le quote di un sistema":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti