Condividi:        

sistemi per lotto con excel

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: sistemi per lotto con excel

Postdi Anthony47 » 09/05/13 11:21

Il foglio "controlli" contiene una enormita' di NamedRange (12681) e di QueryTables (6013)

Ho eliminato i namedRange con il codice
Codice: Seleziona tutto
CcName = "controlli!_?area_10elotto5minuti_action_Archivio_date"
For I = Foglio6.Names.Count To 2 Step -1
If Left(Foglio6.Names(I).Name, Len(CcName)) = CcName Then
    Foglio6.Names(I).Delete
End If
Next I
CcName = "controlli!DatiEsterni_"
For I = Foglio6.Names.Count To 2 Step -1
If Left(Foglio6.Names(I).Name, Len(CcName)) = CcName Then
    Foglio6.Names(I).Delete
End If
Next I
(non mi sono fidato a cancellare i NamedRange indipendentemente dal loro nome)
Ho cancellato tutte -1 le query tables con
Codice: Seleziona tutto
For I = ActiveSheet.QueryTables.Count To 2 Step -1
    ActiveSheet.QueryTables(I).Delete
Next I

I tempi di reazione sono tornati normali.

In genere questi casini si creano perche' si aggiungono query tables in un foglio, invece di averne una sola e modificare la sua connessione e farne il Refresh.
Tuttavia non ho trovato quale e' la query in discussione: il riferimento e' a http://www.lottomaticaitalia.it/delef/e ... equenti.do, ma una query cosi' il la vedo solo nella macro Modulo1.AggiornaDati che pero' fa riferimento al foglio Archivio

Ovviamente anche Archivio ha i presupposti per infognarsi prima o poi (adesso siamo a 374 Querytables e 544 NamedRange); su Foglio1 siamo a 40 /40; non ci sono query su altri fogli.
Sarebbe opportuno che anche su Archivio e Foglio1 comunque si facesse pulizia ripetendo su di loro le istruzioni elencate prima.

In linea di massima le WebQuery non vanno aggiunte via macro; diciamo che sarebbe meglio inserirle a mano e poi giocare sulla sua "Connection" e sul "Refresh".

Ad esempio, sul foglio Archivio:
-c' e' una web query in B2
-puoi aggiornare i suoi dati, se il foglio e' selezionato, con
Codice: Seleziona tutto
    Range("B2").QueryTable.Refresh BackgroundQuery:=False

Questo in sostituzione di tutta la manfrina che comincia con
Codice: Seleziona tutto
With ActiveSheet.QueryTables.Add(Connection:=

Se non sbaglio le web query fanno sempre riferimento allo stesso url, quindi non c' e' nemmeno il bisogno di variare la Connection.

Se con questi spunti non risolvete allora scrivete ancora e vedremo come procedere.

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

Sponsor
 

Re: sistemi per lotto con excel

Postdi raimea » 09/05/13 17:33

v 11.9

ciao
ho applicato il consiglio di antony al file , facendo girare le 2 macro
sui 2 fogli archivio e controlli.

ho messo i 2 puls x la pulizia in basso nel fgl ambi.

ora il file e' più "snello" e veloce , le dimensioni sono passate da 12.657Kb a-->> 6.888Kb

poi alcuni passaggi non li so fare:
In linea di massima le WebQuery non vanno aggiunte via macro; diciamo che sarebbe meglio inserirle a mano e poi giocare sulla sua "Connection" e sul "Refresh".



https://dl.dropboxusercontent.com/u/96374724/10ELotto5Min_v.11.9.xls

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

Re: sistemi per lotto con excel

Postdi Anthony47 » 09/05/13 21:44

poi alcuni passaggi non li so fare [. . .]

Come da esempio: nella Sub AggiornaDati elimina da With ActiveSheet.QueryTables.Add(Connection:= a End With
E inserisci la sola
Codice: Seleziona tutto
Range("B2").QueryTable.Refresh BackgroundQuery:=False


Idem in Foglio1, dove la webquery giace in AE2, quindi potrai sostituire tutto il blocco in Sub preleva2 con
Codice: Seleziona tutto
Range("AE2").QueryTable.Refresh BackgroundQuery:=False


Non trovo, nel codice del file pubblicato, dove e' che viene eseguita la query sul foglio "controlli", ma la tecnica e' esattamente la stessa.
A questo punto e' meglio eliminare il codice che cancella le query e i NamedRange, quello usato per la pulizia e che non dovrebbe piu' essere necessario.

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

Re: sistemi per lotto con excel

Postdi raimea » 10/05/13 05:08

ciao
fatto modifica tutto ok...
xro nella mia "ignoranza" ..... :o

non ho capito come riesce ,a prelevare dati
da un sito esterno senza la parte che le dice dove prelevare... :?:

con questo vedevo/dico dove prelevare:
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.lottomaticaitalia.it/delef/estrazioni_frequenti.do", Destination:=Range( _
        "$b$2"))
       
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With


ma ora che l'ho tolto ?
dove e', che capisce il sito da cui prelevare ?

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

Re: sistemi per lotto con excel

Postdi Anthony47 » 10/05/13 12:08

Quando imposti una query viene anche salvata nel file excel la descrizione della query stessa; a meno che che in Proprieta' non venga tolta la spunta a "Salva definizione query".

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

Re: sistemi per lotto con excel

Postdi raimea » 10/05/13 18:44

ciao

aa... !

allora la querry:
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.lottomaticaitalia.it/delef/estrazioni_frequenti.do", Destination:=Range( _
        "$b$2"))
       
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With


serve solo 1na sola volta ,
la prima ?

poi i file sanno cosa dove prelevare ?
grazie
ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: sistemi per lotto con excel

Postdi Anthony47 » 10/05/13 18:49

Secondo me quel codice non serve mai, perche' ragionevolmente tu la query l' hai inserita in partenza nel foglio (diciamo in fase di progettazione).
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "sistemi per lotto con excel":


Chi c’è in linea

Visitano il forum: Nessuno e 75 ospiti