Novità

x pfca o altri che conoscono macro excel

  • Creatore Discussione Creatore Discussione Roby
  • Data di inizio Data di inizio
R

Roby

Guest
e' una domanda indirizzata a colore che conoscono e che utilizzano spesso Excel e macro al seguito.


ho fatto una statistica storica (quindi le estrazioni da leggere (archivio) vanno dal 1939 ad oggi), i risultati che la statistica realizza
li vado a scrivere in un altro foglio (4900 righe) per intenderci.

non so perché, ma pare di ricordare che è un problema conosciuto che si verifica, che saltando in lettura da un foglio e la scrittura di un risultato su un altro, a video si nota l'oscillazione e la ridondanza delle 2 fasi lettura/scrittura, per tutto il tempo, dall'inizio alla fine dell'elaborazione.

è vero che il risultato che ottengo è comunque esatto a ciò che voglio ottenere, ma chiedevo
se qualcuno conosce una istruzione da mettere nella macro che disattiva questo effetto che disturba parecchio.

o se c'è un suggerimento migliorativo nell'elaborazione da fare nelle istruzioni contenute nella macro.

spero di aver spiegato il problema in modo comprensivo.

Grazie per chi può dare una dritta a risolverlo.
 
Buon studio, Rubino
Approfitto della tua presenza in questa sezione per salutarti.. mi spiace non poterti aiutarti su questo fronte.
Ciao
 
Ciao Rubino.
Penso che una possibile soluzione sia leggere tutto quello che devi da un foglio, memorizzarlo in un array e poi scriverlo nell'altro foglio.
Dovrebbe anche velocizzare l'esecuzione del programma.

Miguelma.
 
Ultima modifica:
ciao Miguelma

si ho già pensato di elaborare il tutto mettendo tutti i dati che vanno in output, in una array,
poi rileggerli e scriverli nel foglio di output.

a dire il vero c'è un terzo foglio, con un grafico che punta ai dati del foglio di output, e da quando
ho applicato questo grafico, mi succede che i tempi si sono rallentati di parecchio, anche nella rappresentazione
grafica .

però se non ricordo male, in visualbasic c'è la possibilità nei parametri vari workbook e worksheet (categoria o qualcosa d'altro)
che permette di aggiornare il tutto alla fine dell'elaborazione.

ma è solo una reminiscenza di ricordo da vecchia data, o forse mi sbaglio con qualche altro linguaggio di programmazione IBM.
 
Nelle opzioni di Excel puoi impostare le "opzioni di calcolo" su "manuale".
Al termine ricalcoli in tutto con F9.

Oppure in ThisWorkbook
Codice:
Private Sub Workbook_Open()
      Application.Calculation = xlCalculationManual
End Sub

al termine dell'elaborazione
Codice:
ActiveSheet.Calculate
 
Ultima modifica:
attualmente senza le tue dritte ultime

ci impiega circa 4 minuti per ottenere questo grafico e questa statistica che va dal 1939 ad oggi

mi sembrano troppi.

ora provo le 2 istruzioni che mi hai suggerito


image share
 
okey e grazie

abbiamo risolto

qualche secondo (+ o - 5 secondi ) è il tempo ottenuto d'elaborazione.
per ottenere il seguente grafico

ho messo al termine



Application.Calculation = xlCalculationManual


basta poi fare f9 per aggiornare il grafico




free image hosting
 
Ultima modifica:
Ciao Rubino all'inizio devi scrivere:
Codice:
Application.ScreenUpdating = False 'Blocca il video
Application.Calculation = xlCalculationManual ' Blocca i calcoli.
alla fine inserisci:
Codice:
Application.Calculation = xlCalculationAutomatic 'esegue i calcoli
Application.ScreenUpdating = True 'ripristina lo schermo
End Sub
ciao
 
buonasera vorrei avere un vs aiuto vorrei creare un foglio excel dove nella colonna a ho 60 numeri quindi a1-a60 vorrei riscriverli in gruppi di 6 ovvero c1 d1 e1 f1 g1 h1 e poi a capo c2 d2 e2 f2 g2 h2
ecc....spero di essermi fatto capire
 
grazie sig.claudio8 per il suo interessamento al mio quesito e le sarò grato se ma saprà aiutare le spiego: io ho su un figlio excel nella colonna a circa 40.000 numeri della roulette e vorrei dividerli ovvero disporli in sestine es:
2
34
12
11
7
2
36
0
23
32
31
11
33
23
23
12
7
4
0
0
0
6
25
14
da questa colonna a il foglio deve riscriverli in sestine ognuno in una cella cha va da b a g
es. 2 34 12 11 7 2
36 0 23 32 31 11
33 23 23 12 7 4
0 0 0 6 25 14

ora che sia una formula o una macro non ha importanza. la ringrazio anticipatamente
 
vi deve essere un foglio con il nome "Archivio" che contiene i nr.della roulette usciti
vi deve essere un foglio con il nome "Sestine" che conterrà i numeri raggruppati in sestina


attenzione va prestata in fondo, perché 40000 numeri diviso 6 non da un numero intero,
pertanto l'ultima rergistrata non potrà essere una sestina

inoltre ho impostato un ciclo fino a 6*7000 = 42000 numeri estratti
l'ho lasciato aperto perché non so se aumenteranno con il trascorrere del tempo
altrimenti va modificata l'istruzione con

do while cells(x,1).value <> ""
loop

in tal caso continua automaticamente fino a quando nell'archivio ci sono numeri, quando trova blank
termina il loop ed esce



è una macro

Codice:
Sub sestine()
   Dim nr(6)
    fog = "Sestine"
    Sheets(fog).Select
    Range("A12:G10000").Select
    Selection.Delete
    Cells(1, 1) = " Raggruppamento colpi in sestine "
    Cells(2, 1) = " NR "
    Cells(2, 2) = " NR "
    Cells(2, 3) = " NR "
    Cells(2, 4) = " NR "
    Cells(2, 5) = " NR "
    Cells(2, 6) = " NR "
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 'seleziona il Foglio Archivio per andare a leggere i dati delle estrazioni
Z = 2
For w = 1 To 7000
Sheets("Archivio").Select

For y = 1 To 6
x = x + 1
nr(y) = Cells(x, 1)
Next

'''' scrivo numeri raggruppati in sestine nel foglio "Sestine"
    fog = "Sestine"
    Sheets(fog).Select
    Z = Z + 1
    Cells(Z, 1) = nr(1)
    Cells(Z, 2) = nr(2)
    Cells(Z, 3) = nr(3)
    Cells(Z, 4) = nr(4)
    Cells(Z, 5) = nr(5)
    Cells(Z, 6) = nr(6)
Next
End Sub
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31

Ultimi Messaggi

Indietro
Alto