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 miko » 01/07/11 11:35

ciao,
lieto di esserti stato utile ;)
saluti
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Sponsor
 

riportare i risultati da verticale in orizzontale

Postdi raimea » 06/07/11 06:22

ciao a tutti.
vorrei riuscire a riportare le mie "sequenze", in un foglio (sequenze)
scrivendole in orizzontale.
mi spiego meglio...
dal fgl 1 Col da p9 ci sono i segni 1x2 che sono usciti.
una sequenza termina quando in Col W c'e una "f"

ora nel fogl sequenze vorrei riuscire a scrivere da dx verso sx tali sequenze,
una sequenza inizia dopo un "f" in col w, e termina alla successiva "f"

al momento questo foglio lo sto compilando manualmente,
solo che se x errore cancello qualcosa, mi diventa complicato rigenerare il tutto.... :undecided:

vi ringrazio
provo ad allegare il file.

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

Re: analizzare le quote di un sistema

Postdi Anthony47 » 06/07/11 20:49

tasto dx sul tab del foglio Sequenze, visualizza codice, metti questa macro nel frame di dx:
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Dest = "E8"
Range(Dest).Offset(1, 0).Resize(100, 200).ClearContents
For I = 9 To 5000
    If Foglio1.Cells(I, "W").Value = "f" Then
        Foglio28.Range(Dest).Offset(CI + 1, CEffe - 0) = Foglio1.Cells(I, "P")
        CEffe = CEffe + 1: CI = 0
    Else
        If Foglio1.Cells(I, "P") <> "" Then
        Foglio28.Range(Dest).Offset(CI + 1, CEffe - 0) = Foglio1.Cells(I, "P")
        CI = CI + 1
        End If
    End If
Next I
End Sub

In questo modo tutte le volte che attivi il foglio Sequenze la tabella sara' prima azzerata e poi ricompilata; se questa logica non e' idonea allora metti il codice della macro (escluso titolo ed End sub) in un' altra macro che eseguirai quando vuoi aggiornare la tabella.

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

Re: analizzare le quote di un sistema

Postdi raimea » 06/07/11 21:00

8) OTTIMO
proprio come mi serve,
ora cerco di capire come fa
a funzionare senza mai menzionare il nome dei 2 fogli interessati.
grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Anthony47 » 06/07/11 21:05

Ho usato il "codename" dei due fogli, mi stava antipatico scrivere Sheets("1-masa1-Fogl.Base").Etc etc

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

analizzare le quote di un sistema

Postdi raimea » 16/08/11 17:01

ciao a tutti
vorrei poter riuiscire ad inserire un ulteriore
conteggio statistico , nel mio file.
in fgl 2-statistiche col dP e dQ da riga 9:
vorrei poter contare in fogl 1-base, col M da riga 9,
contare le V e P consecutive pari a 1,2,3,4,5 ecc...
cioe', quante volte ci sono 2 V consecutive ?
quante 3 P consecutive ? ecc.
il num da prendere come riferimento e' in fgl 2 col DO.
io ho provato con una formula a matrice ma quando ho
esempio, 4 volte V me le conta sia in 1, sia in 2 che in 3...

provo ad allegare il file.

http://www.sendspace.com/file/xy7bbm
oppure qui
http://www.megaupload.com/?d=6RWPR6UZ

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

Re: analizzare le quote di un sistema

Postdi Flash30005 » 17/08/11 00:57

Sostituisci la macro "Analizquote" contenuta nel modulo 16
con questa macro
Codice: Seleziona tutto
Sub analizquote()

Sheets("2-Statistiche").Select

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

    ActiveSheet.Unprotect
   
   
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim I As Integer: Dim J As Integer: Dim R As Integer
    Dim ContaVM(12) As Integer
    Dim ContaPM(12) As Integer
Application.ScreenUpdating = False
Application.Calculation = xlManual

    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("I" & Rows.Count).End(xlUp).Row
    UR2 = Ws2.Range("BA" & Rows.Count).End(xlUp).Row
    Ws2.Range("BA9:BD" & UR2).ClearContents
    For I = 9 To UR
    If UCase(Ws1.Range("M" & I).Value) = "V" Then ContaVM(Month(Ws1.Range("C" & I).Value)) = ContaVM(Month(Ws1.Range("C" & I).Value)) + 1
    If UCase(Ws1.Range("M" & I).Value) = "P" Then ContaPM(Month(Ws1.Range("C" & I).Value)) = ContaPM(Month(Ws1.Range("C" & I).Value)) + 1
            UR2 = Ws2.Range("BA" & Rows.Count).End(xlUp).Row + 1
            If UR2 < 9 Then UR2 = 9
            For J = 9 To UR2
                If Ws2.Cells(J, 53) = Ws1.Cells(I, 9) Then
                Ws2.Cells(J, 54).Value = Ws2.Cells(J, 54).Value + 1
                GoTo saltaI
                Else
                If Ws2.Cells(J, 53).Value = 0 Then
                    Ws2.Cells(J, 53) = Ws1.Cells(I, 9)
                    Ws2.Cells(J, 54).Value = 1
                End If
                End If
            Next J
saltaI:
    Next I
    For CM = 1 To 12
    Ws2.Range("DP" & CM + 8).Value = ContaVM(CM)
    Ws2.Range("DQ" & CM + 8).Value = ContaPM(CM)
    Next CM

            UR2 = Ws2.Range("BA" & Rows.Count).End(xlUp).Row
            For J = 9 To UR2
            ContaV = 0
            ContaP = 0
            Q = Ws2.Range("BA" & J)
                For I = 9 To UR
                    If Q = Ws1.Cells(I, 9) Then
                        If UCase(Ws1.Cells(I, 13)) = "V" Then ContaV = ContaV + 1
                        If UCase(Ws1.Cells(I, 13)) = "P" Then ContaP = ContaP + 1
                    End If
                Next I
                Ws2.Range("BC" & J) = ContaV
                Ws2.Range("BD" & J) = ContaP
            Next J
           
           
             Sheets("2-statistiche").Select
    Range("BA9:BD100").Select
    Selection.Sort Key1:=Range("BA9"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

ActiveWindow.ScrollRow = 1  ' alza la barra later dx

ActiveWindow.DisplayGridlines = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True
    Range("BF2").Select

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

End Sub

e dovresti aver risolto,
altrimenti... posta ancora

Ti prego, continui a inviare dei file compressi aventi sempre lo stesso nome "Copia di masa1.zip"
quando, invece siamo arrivati alla versione 9
(cerco di avere uno storico dei vari aggiornamenti, cosa che ritengo sia opportuno che ogni utilizzatore di PC faccia; valido per ogni tipo di file: documenti; immagini e altro) ;)
sappi che i numeri, utilizzabili per questo scopo, non finiscono
pertanto, la prossima volta nomina il tuo file
"Copia di masa10.zip", ok?
Grazie! :)

Ciao

EDIT: Ricordavo di aver fatto qualcosa del genere contare le "V" e le "P" e infatti non riuscivo a capire a fondo la richiesta
ho aggiunto questo calcolo per mese e con la macro appena postata otterrai gli stessi risultati che hai nelle colonne DI e DJ (forse anche più velocemente) ;)
ma la tua richiesta in un certo senso non è ben comprensibile perché vorresti avere la quantita di ripetizioni di 2 V o 2 P oppure 3 V o 3 P ma... Come inserire l'output di ciò che richiedi in una sola cella?
spiego:
se vuoi avere l'analisi di quante ripetizioni di 2,3,4,5 e 6 V devi avere almeno 5 celle che riportino questo dato distribuito per ogni mese, mentre la tua tabella prevede, per il singolo mese, una sola cella
quindi spiega meglio
ariCiao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

analizzare le quote di un sistema

Postdi raimea » 17/08/11 05:03

ok per il nome dei prossimi file zip. ;)

poi mi sa che non mi sono ben spiegato e non era ben comprensibile la richiesta.
in questo nuovo calcolo non voglio separere per mese,
voglio solo sapere quante volte ci sono state 3 V consecutive,?
quante 2 P consectv ? ecc..
e il dato ottenuto verra scritto, ovviamente in piu celle (da Dp9 a Dp18 per le V, e DQ9 a DQ18 per le P)
Es. in DP9 x il num di volte che c'e stato 1sola V
in DQ12 quante volte ci sono state 4P consecutv ?
grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Flash30005 » 17/08/11 14:20

Prova questa macro:
Codice: Seleziona tutto
Sub ContaContinuità()
    ActiveSheet.Unprotect
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim I, Ris As Integer
    Dim ContaVM(12) As Integer
    Dim ContaPM(12) As Integer
Application.ScreenUpdating = False
Application.Calculation = xlManual

    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("I" & Rows.Count).End(xlUp).Row
        For I = 9 To UR
            If UCase(Ws1.Cells(I, 13)) = "V" Then
            ContaV = ContaV + 1
            Else
            ContaVM(ContaV) = ContaVM(ContaV) + 1
            ContaV = 0
            End If
            If UCase(Ws1.Cells(I, 13)) = "P" Then
            ContaP = ContaP + 1
            Else
            ContaPM(ContaP) = ContaPM(ContaP) + 1
            ContaP = 0
            End If
        Next I
    For Ris = 1 To 12
    Ws2.Range("DP" & Ris + 8).Value = ContaVM(Ris)
    Ws2.Range("DQ" & Ris + 8).Value = ContaPM(Ris)
    Next Ris
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub


Evidenzia eventuali incongruenze

ciao

P.s.
Aggiungo questa modifica alla macro "Analizquote"
(la macro sostituisce le formule in tabella DI9:DJ20)

Codice: Seleziona tutto
Sub analizquote()

Sheets("2-Statistiche").Select

UserForm2.Show vbModeless
DoEvents
Inizio = Timer

    ActiveSheet.Unprotect
   
   
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
    Dim I As Integer: Dim J As Integer: Dim R As Integer
    Dim ContaVM(12) As Integer
    Dim ContaPM(12) As Integer
Application.ScreenUpdating = False
Application.Calculation = xlManual

    Set Ws1 = Sheets("1-masa1-Fogl.Base")
    Set Ws2 = Sheets("2-statistiche")
    UR = Ws1.Range("I" & Rows.Count).End(xlUp).Row
    UR2 = Ws2.Range("BA" & Rows.Count).End(xlUp).Row
    Ws2.Range("BA9:BD" & UR2).ClearContents
    For I = 9 To UR
    If UCase(Ws1.Range("M" & I).Value) = "V" Then ContaVM(Month(Ws1.Range("C" & I).Value)) = ContaVM(Month(Ws1.Range("C" & I).Value)) + 1
    If UCase(Ws1.Range("M" & I).Value) = "P" Then ContaPM(Month(Ws1.Range("C" & I).Value)) = ContaPM(Month(Ws1.Range("C" & I).Value)) + 1
            UR2 = Ws2.Range("BA" & Rows.Count).End(xlUp).Row + 1
            If UR2 < 9 Then UR2 = 9
            For J = 9 To UR2
                If Ws2.Cells(J, 53) = Ws1.Cells(I, 9) Then
                Ws2.Cells(J, 54).Value = Ws2.Cells(J, 54).Value + 1
                GoTo saltaI
                Else
                If Ws2.Cells(J, 53).Value = 0 Then
                    Ws2.Cells(J, 53) = Ws1.Cells(I, 9)
                    Ws2.Cells(J, 54).Value = 1
                End If
                End If
            Next J
saltaI:
    Next I
    For CM = 1 To 12
    Ws2.Range("DI" & CM + 8).Value = ContaVM(CM)
    Ws2.Range("DJ" & CM + 8).Value = ContaPM(CM)
    Next CM

            UR2 = Ws2.Range("BA" & Rows.Count).End(xlUp).Row
            For J = 9 To UR2
            ContaV = 0
            ContaP = 0
            Q = Ws2.Range("BA" & J)
                For I = 9 To UR
                    If Q = Ws1.Cells(I, 9) Then
                        If UCase(Ws1.Cells(I, 13)) = "V" Then ContaV = ContaV + 1
                        If UCase(Ws1.Cells(I, 13)) = "P" Then ContaP = ContaP + 1
                    End If
                Next I
                Ws2.Range("BC" & J) = ContaV
                Ws2.Range("BD" & J) = ContaP
            Next J
           
           
             Ws2.Select
    Range("BA9:BD100").Select
    Selection.Sort Key1:=Range("BA9"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

ActiveWindow.ScrollRow = 1  ' alza la barra later dx

ActiveWindow.DisplayGridlines = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True
    Range("BF2").Select

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

End Sub


E in fine leggi il P.S del post del 16/08/2011 ore 2.12 di
questo link

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

analizzare le quote di un sistema

Postdi raimea » 17/08/11 22:47

ottimo :D
10 e lode
funziona tutto come volevo,
la lode --> per aver ampliato anche la macro analizza quote.
metto a disposizione il file vers 8.1

http://www.megaupload.com/?d=8KJ85ZNM
grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: analizzare le quote di un sistema

Postdi Flash30005 » 20/08/11 15:09

Grazie a nome di tutti gli interessati
;)
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Precedente

Torna a Applicazioni Office Windows


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


Chi c’è in linea

Visitano il forum: Nessuno e 71 ospiti