Condividi:        

Query web da http://www.oddsfair.net/en/

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: Query web da http://www.oddsfair.net/en/

Postdi Anthony47 » 25/10/12 22:26

Invece dei cicli che hai immaginato usa
Codice: Seleziona tutto
Dim DataDa As Date
For DataDa = DateSerial(2012, 12, 31) To DateSerial(2000, 1, 1) Step -1
'
'le istruzioni
'
Next DataDa

La data "corrente" e' contenuta nella variabile DataDa

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

Sponsor
 

Re: Query web da http://www.oddsfair.net/en/

Postdi mpsinf » 26/10/12 18:53

grazie della dritta, ma la stringa che devo avere è del tipo 2012-10-26 così come la vedi

per non stressarti visto la mia ignoranza, dove è possibile trovare un elenco dei comandi VBA (forse sono troppi veramente rispetto ai comandi di Excel) o un manuale ben fatto che spieghi come e quali usare ?

ciao e grazie infinite ancora per la tua disponibilità, non pensavo inizialmente di avere un così grande e rapido aiuto.. :o
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: Query web da http://www.oddsfair.net/en/

Postdi mpsinf » 26/10/12 19:17

ho trovato questo sito http://www.diim.unict.it/users/costa/VB ... imenti.pdf che mi ha dato la spunta per

For DataDa = DateSerial(2012, 10, 25) To DateSerial(2000, 1, 1) Step -1
y = Year(DataDa): m = Month(DataDa): d = Day(DataDa)

'DataDa = y & "-" & m & "-" & d
DataD1 = y & "-" & m & "-" & d

MsgBox DataD1

MyConn = "URL;http://miosito/" _
& DataDa

ma perchè se tento, senza crearne una nuova, di utilizzare la variabile DataDa = y & "-" & m & "-" & d (che è vero che fa parte del ciclo for next) non funziona ?

questa potrebbe funzionare ? ma non penso sia giusta
DataD1 = Format(DataDa, "yyyy-mm-dd")

inoltre mi spieghi perchè con questa parte di codice la query mi si crea nuova tot celle più in là riempiendomi il foglio di execel
invece di sovrascrivere nelle stesse celle il codice richiesto

With ActiveSheet.QueryTables.Add(Connection:=MyConn, _
Destination:=Range("E1"))
.Name = "www.google.it"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: Query web da http://www.oddsfair.net/en/

Postdi Anthony47 » 27/10/12 00:21

per non stressarti...
Stai tranquillo, ci vuole altro per "stressarmi"; e comunque leggere e cercare di rispondere non me l' ha ordinato il medico, quindi leggo e cerco di rispondere perche' ne ho voglia (come credo valga per tutti gli altri che anche loro leggono e danno contributi).

. . . dove è possibile trovare un elenco dei comandi VBA (forse sono troppi veramente rispetto ai comandi di Excel) o un manuale ben fatto che spieghi come e quali usare ?
Credo che questo elenco non esista, e la cosa piu' vicina sia l' help on line del vba: selezioni una parola chiave del codice, premi F1 e ti si apre la guida relativa al significato e all' uso di quella parola chiave "nel contesto", con tanto di esempi; una vera miniera a portata di mano.

questa potrebbe funzionare ? ma non penso sia giusta
DataD1 = Format(DataDa, "yyyy-mm-dd")
Questa e' quella che avrei suggerito io: lasci DataDa (con quella "Dim") in uso nel ciclo For /Next e usi la variabile DataD1 per calcolare la "stringa".

Per quanto riguarda il comportamento della query, l' istruzione ".RefreshStyle = xlInsertDeleteCells" grosso modo significa "fatti lo spazio che ti serve"; il comportamento e' che i dati precedenti vengono shiftati verso dx e i nuovi dati vengono inseriti in E1.
Per evitare questo userai invece
Codice: Seleziona tutto
.RefreshStyle = xlOverwriteCells


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

Re: Query web da http://www.oddsfair.net/en/

Postdi mpsinf » 30/10/12 20:32

Ho un bel quesito da risolvere.. mi trovo in un foglio 2 colonne (di 26-27 righe) con questi dati * che continuano a variare ogni volta che faccio girare la mia macro di interrogazione della homepage di http://www.miosito.it (oppure possono essere gli stessi ma in ordine differente perchè la loro posizione sulla colonna dipende da un altro parametro non controllabile)

' attenzione il numero della 1a colonna è lo stesso (duplicato) di quello presente nel link della 2a colonna quindi anche superfluo ma comodo per non doverlo estrarre in seguito dal link della 2a colonna.

*
173915 http://www.miosito.it/detail/173915/descrizione.html
173312 http://www.miosito.it/detail/173312/descrizione.html
173222 http://www.miosito.it/detail/173222/descrizione.html


volendo analizzare con una query web ogni singolo link, secondo voi è preferibile creare un foglio nuovo per ogni link
o posizionarli sullo stesso foglio affiancati ? :undecided:
ricordarsi che al successivo passaggio l'elenco potrebbe essere cambiato anche se della stessa lunghezza o avere gli stessi elementi ma in ordine differente.
Quindi se è presente un nuovo numero devo creare una nuova query web (o foglio con query web) e se non è più presente un vecchio codice devo cancellare il foglio o la query web (perchè altrimenti non avrei più fogli sufficienti.. :!:

Attendo gentilemente qualche suggerimento e riga di codice ..
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: Query web da http://www.oddsfair.net/en/

Postdi Anthony47 » 31/10/12 13:40

Suggerisco di mettere ogni query in un foglio separato, perche' i dati della query si possono allungare o allargare (o rimpicciolire), invadendo l' area delle altre query o rendendo ballerina la posizione di ogni tabella.

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

Re: Query web da http://www.oddsfair.net/en/

Postdi mpsinf » 31/10/12 13:57

Ma se riservo un tot di colonne per ogni query, forse poi non avrei il problema di dover "saltare" da un foglio all'altro
Faccio delle prove e ti faccio sapere.
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: Query web da http://www.oddsfair.net/en/

Postdi mpsinf » 31/10/12 20:34

Ho creato la macro che mi legge tutta la colonna 1 e mi crea le web query sullo stesso foglio spostandosi a dx di 10 colonne alla volta.
Ora ho il problema che refreshando la colonna A come specificato nei post precedenti, devo verificare se il n. trovato in A1 A2 ecc. è già presente nella webquery creata..

In poche parole come faccio a verificare con comandi da VBA se es:

il valore di A1 che è 173894
è presente nella cella J1 che contiene la webquery collegata a: http://www.miosito.com/detail/173894 :?:
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: Query web da http://www.oddsfair.net/en/

Postdi Anthony47 » 01/11/12 01:26

Certamente non ho capito la domanda perche' il mio suggerimento e':
Codice: Seleziona tutto
If Range("A1")=Range("J1") Then     
'azioni da fare se A1 e J1 sono uguali
Else
'azioni se A1 e J1 sono diversi
End If

Nella non remota ipotesi che quanto sopra non c' entri nulla allora prova a spiegare ancora...

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

Re: Query web da http://www.oddsfair.net/en/

Postdi mpsinf » 01/11/12 10:01

Ri posto il quesito per cercare di riuscire a spiegarmi meglio. Ho un foglio di 1 colonna (righe variabili da 20 a 25 righe) con questi dati qui sotto * che possono continuare a variare ogni volta che faccio girare la mia macro (è una macro di interrogazione della homepage di un sito che avevamo sviluppato in precedenza, che mi estrae il n. delle pagine presenti sulla homepag vedi colonna B). In seguito verrà ignorata la colonna B in quanto il numero della colonna A sarà sufficiente per ricostruire il link che ci serve.

*
A --------------- B
273915 ___ http://www.miosito.it/detail/273915/descrizione.html
373312 ___ http://www.miosito.it/detail/373312/descrizione.html
173222 ___ http://www.miosito.it/detail/173222/descrizione.html
173777 ___ http://www.miosito.it/detail/173777/descrizione.html
212221 ___ http://www.miosito.it/detail/212221/descrizione.html

Dico che continuano a variare nel senso che possono essere gli stessi ma in ordine differente es..

A --------------- B
212221 ___ http://www.miosito.it/detail/212221/descrizione.html
173222 ___ http://www.miosito.it/detail/173222/descrizione.html
273915 ___ http://www.miosito.it/detail/273915/descrizione.html
373312 ___ http://www.miosito.it/detail/373312/descrizione.html
173777 ___ http://www.miosito.it/detail/173777/descrizione.html

oppure cambiare completamente o in parte come nell'esempio qui sotto

A --------------- B
412111 ___ http://www.miosito.it/detail/412111/descrizione.html
577123 ___ http://www.miosito.it/detail/577123/descrizione.html
373312 ___ http://www.miosito.it/detail/373312/descrizione.html
173915 ___ http://www.miosito.it/detail/173915/descrizione.html
173777 ___ http://www.miosito.it/detail/173777/descrizione.html
373312 ___ http://www.miosito.it/detail/373312/descrizione.html

Volendo analizzare ogni singolo link della colonna A ho sviluppato la seguente macro che mi prende ogni valore della colonna A e mi crea una query web sullo stesso foglio spostandosi di 8 colonne ogni volta per non sovrapporre le varie query.

Dim Pippo As Range

Cellafine = Range("A" & Rows.Count).End(xlUp).Row
Set Pippo = Worksheets("Miofoglio").Range("A1:A" & Cellafine) 'con Intervallo impostiamo la colonna A fino alla sua fine

For Each Inatto In Pippo

MyConn = "URL;http://www.miosito.it/detail/" _
& Inatto ' funziona comunque anche se il link è più lungo tipo 373312/descrizione.hml.

With ActiveSheet.QueryTables.Add(Connection:=MyConn, _
Destination:=Worksheets("Miofoglio").Cells(1, 8 + a))
.Name = "www.google.it" ' non ho ancora capito bene a cosa serva !
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "6,9" ----->>> con questa riga mi porto sul foglio solo quella parte della query web che mi serve e che mi occupa solo 4 colonne
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

a = a + 8

Next Inatto

ORA arriva la richiesta di aiuto di righe di codice... (ma forse più di logica)
Come posso fare al successivo ciclo di aggiornamento della colonna A e quindi variazione di posizione o di numeri della colonna A a verificare le web query che ho creato nel foglio e che ora posso sovrascrivere per sostituirle con i nuovi numeri senza andare a toccare ancora quelle presenti nell'elenco ? :?:
Spero questa volta di essere stato più chiaro... grazie a tutti
XP + Excel 2003 Ita
W7 + Excel 2007 Ita
mpsinf
Utente Senior
 
Post: 168
Iscritto il: 03/09/03 18:33

Re: Query web da http://www.oddsfair.net/en/

Postdi apocrimata75 » 17/05/16 08:35

Salve ragazzi, torno su una vecchia macro, che fà le bizze

Codice: Seleziona tutto
Sub ODDSFAIRNET()

Sheets("prove prosoccer").Select
Mydate = Format(Range("eE1").Value, "yyyy-mm-dd")
'
For I = 0 To 60 Step 20  '<< Esistente
'AGGIUNGERE
aaa = ""
For Each WQ In ActiveSheet.QueryTables
aaa = aaa & WQ.Name & "--"
Next WQ
[dV1] = aaa & I     '
    myConn = "URL;http://www.oddsfair.net/en/index.php?date=" _
        & Mydate & "&order=1x2desc&offset=" & I
    With ActiveSheet.QueryTables("Offset_" & I)
        .Connection = myConn
        .Refresh BackgroundQuery:=False
    End With
Next I

Range("BA10002:Bx20000").Select
    Selection.ClearContents
   
Application.Wait (Now + TimeValue("0:00:10"))
Range("BQ4:Bx4").Select
    Selection.AutoFill Destination:=Range("BQ4:Bx1000"), Type:=xlFillDefault
    Range("BQ4:Bx1000").Select
               
       
        Range("BA2:Bx1000").Select
    Selection.Copy
   
   
    Range("BA10000").Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 ActiveSheet.Range("$ba$10000:$bx$20000").RemoveDuplicates Columns:=3, Header:= _
        xlYes

Range("BA10002:Bx20000").Select
    ActiveWorkbook.Worksheets("prove prosoccer").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("prove prosoccer").Sort.SortFields.Add Key:=Range( _
        "BB10002:BB20000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    ActiveWorkbook.Worksheets("prove prosoccer").Sort.SortFields.Add Key:=Range( _
        "BA10002:BA20000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("prove prosoccer").Sort
        .SetRange Range("BA10002:Bx20000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWindow.SmallScroll Down:=-78


Range("BA10002:Bx20000").Select
    Selection.Copy

Sheets("txodds2").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


Call newtx2
Call DATI_WEB_TxOdds_Archivio

End Sub




purtroppo invece dei 4 offset ne genera altri


[img]<a%20href="http://image.forumfree.it/8/2/5/0/3/1/3/1463470018.jpg"%20target="_blank"><img%20src="http://image.forumfree.it/8/2/5/0/3/1/3/t/1463470018.jpg"%20alt="Cattura"></a>[/img]

<a href="http://image.forumfree.it/8/2/5/0/3/1/3/1463470018.jpg" target="_blank"><img src="http://image.forumfree.it/8/2/5/0/3/1/3/t/1463470018.jpg" alt="Cattura"></a>

http://image.forumfree.it/8/2/5/0/3/1/3 ... 470018.jpg

scusate per l'immagine ma non posso fare altro.

In Dv1 compare
Codice: Seleziona tutto
offset_0--offset_60--offset_40--offset_20--60


invece di offset_0--offset_20--offset_40--offset_60
il file è di oltre 16 Mb
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 189
Iscritto il: 28/05/11 13:22

Re: Query web da http://www.oddsfair.net/en/

Postdi Anthony47 » 19/05/16 22:51

Purtroppo dal messaggio io non capisco quale e' il problema, cioe' a che serve la macro, che cosa ti aspettavi che restituisse, che cosa invece ti restituisce.
Prova con un supplemento di descrizione...

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

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Query web da http://www.oddsfair.net/en/":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti