Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel, dati da web

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

Excel, dati da web

Postdi lemming78 » 23/01/13 22:07

Ciao a tutti:)
Nel foglio excel ho una tabella, formata dalle colonne A B e C con righe dalla 1 alla 10.
La macro che ho progettato in teoria dovrebbe prendere dei numeri situati nella colonna A e creare un foglio per ognuno di questi, e fin qui tutto ok.
Il problema sopraggiunge quando Io cerco in pratica di captare per ogni riga i numeri nella colonna A e un titolo nella colonna B. in modo da scriverli su ogni foglio (ovviamente i numeri e i titoli corrispondenti)

Per semplicità riporto prima una tabella esempio e poi la macro
A B
111 ottimo
123 distinto
124 buono

etc.

Commentato in questo modo il codice mi da errore 1004

Codice: Seleziona tutto
Sub AvviaMacroSuTutti()
numsheets = ThisWorkbook.Sheets.Count
'MsgBox numSheets (28)
For j = 1 To numsheets
Dim nogg As Integer
Dim titolo
titolo = WorksheetFunction.VLookup(Worksheets("Foglio1").Range("A" & j), Worksheets("Foglio1").Range("A1:C10"), 2, False)
'nogg = WorksheetFunction.VLookup(Worksheets("Foglio1").Range("A" & j), Worksheets("Foglio1").Range("A1:C10"), 1, False)
'Worksheets(nogg).Activate
Cells(15, i).Value = titolo

Next

End Sub


Mentre se decommento anche nogg e worksheet.activate mi da un errore di overflow.
Da che può dipendere?

Grazie a tutti
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Sponsor
 

Re: Un loop con cercavert che finisce male.

Postdi Flash30005 » 23/01/13 23:16

Ciao Lemming78 e benvenuto nel Forum

La macro mi sembra un "collage" di codici e non incontrando quello che si aspetta va sicuramente in errore.
ad esempio nell'ultima riga vedo
Codice: Seleziona tutto
Cells(15, i).Value = titolo

ma non vedo che valore dai alla variabili "i"
Forse è opportuno l'invio del file, da parte tua.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Un loop con cercavert che finisce male.

Postdi lemming78 » 23/01/13 23:30

ho risolto-.- era un problema di dichiarazione variabili. Andava dichiarato come string nogg e non come integer
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Un loop con cercavert che finisce male.

Postdi lemming78 » 24/01/13 00:30

Allora, ho deciso di rendere pubblica la macro per ppazzi da me scritta prendendo comunque anche un paio di pezzi di codice fondamentali da anthony:)

L'idea è quella di prendere dati dal sito p pazzi e di riportarli su un foglio excel per ogni oggetto.
Vorrei implementare delle funzioni ma non sono in grado dato che uso vba da soli 3 giorni e sono a corto di programmazione..
1) ottimizzare perchè secondo me questo codice spreca tantissimo
2) una funzione che mi vada a depennare oggetti inutili come elicottero radiocomandato e le 10 puntate + gift card (questa sarei anche in grado di farla ma ora sto andando a dormire)
3) Una funzione che mi aggiorni la lista oggetti ogni volta che inizia un'asta nuova

Per il momento credo basta, se avete altre idee o se volete partecipare prego:) Allego il codice. Ripeto, perdonatemi per la scarsezza della sintassi ma davvero ho iniziato 3 giorni fa. E' comunque un codice di lettura super facile anche per i novizi dato che l'ho scritto io in buona parte:)

Codice: Seleziona tutto
Sub ppazzi() ' qui funziona tutto bene
myURL = "http://www.prezzipazzi.com/"
Set IE = CreateObject("InternetExplorer.Application")
Sheets("Foglio1").Select
Range("A:C").Clear
With IE
    .navigate myURL
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
End With
myStart = Timer
Do
    DoEvents
    If Timer > myStart + 3 Or Timer < myStart Then Exit Do
Loop
'cerca ed elenca Id e Descrizioni
Set myColl = IE.document.getElementsByTagName("a")
For Each myLink In myColl
    LTit = myLink.Title
    LLin = myLink.href
    If LTit <> "" And Len(LLin) = 17 + Len(Replace(Replace(LLin, "/prodotto/", ""), ".php?id", "")) Then
        Cells(i + 1, 1) = Mid(LLin, InStr(1, LLin, ".php?id", vbTextCompare) + Len(".php?id"), 99)
        Cells(i + 1, 2) = LTit
        Cells(i + 1, 3) = LLin
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 1, 3), Address:=LLin, _
        TextToDisplay:=LLin
        i = i + 1
    End If
Next myLink
'Chiusura IE
IE.Quit
Set IE = Nothing
Range("A11:C30").Clear

'Dopo che hai preso i dati crea un foglio per ogni riga di dato
' aggiorna tempo e prepara per un nuovo loop

For Each i In Range("A1:A10")
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = i
Next
'ogni 20 sec chiama macro
Dim dNow As Date
dNow = Now()
Do While True
If DateDiff("S", dNow, Now()) > 60 Then
Call AvviaMacroSuTutti
ActiveWorkbook.Save
dNow = Now()
Else
DoEvents
End If
Loop
End Sub


Sub AvviaMacroSuTutti()
numsheets = ThisWorkbook.Sheets.Count
'MsgBox numsheets
For j = 1 To (numsheets - 3)
Dim nogg As String
Dim titolo As String
titolo = WorksheetFunction.VLookup(Worksheets("Foglio1").Range("A" & j), Worksheets("Foglio1").Range("A1:C10"), 2, False)
nogg = WorksheetFunction.VLookup(Worksheets("Foglio1").Range("A" & j), Worksheets("Foglio1").Range("A1:C10"), 1, False)
Worksheets(nogg).Activate

Call PrezziPazzi(nogg, titolo)
Next

End Sub


Sub PrezziPazzi(noggetto, titolo)

'seleziona prima colonna e nascondila
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
' crea titolo nel foglio
Range("B1:F1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Range("B1:F1").Select
    Selection.Style = "Titolo 1"
    ActiveCell.FormulaR1C1 = titolo
    Range("G10").Select
 ' query che prende i prezzi. noggetto è la variabile numero oggetto
  With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.prezzipazzi.com/storico_bid.php?refresh=1&id=" & noggetto, _
        Destination:=Range("A2"))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .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
    Range("A11").EntireRow.Delete
'crea nuove righe ad ogni check per inserire dati nuovi
 If Cells(3, 3) <> Cells(15, 3) Then Range("A13:A21").EntireRow.Insert
'copia incolla dati nuovi
Range("A3:F10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("A14").Select
    ActiveSheet.Paste
' cancella le righe in sovrapposizione
Dim Cella As Object
For Each Cella In Range("C14:C21")
If Cella.Value = Range("C22") Then Range("C22").EntireRow.Delete
Next Cella
End Sub



Se qualcuno mi domanda perchè nasconde la colonna A in ogni foglio è perchè non sapevo come non far importare allo script un'informazione inutile:D
Buonanotte!
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Un loop con cercavert che finisce male.

Postdi lemming78 » 24/01/13 21:46

Nessuno?:D
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Excel, dati da web

Postdi Anthony47 » 24/01/13 22:04

I temi sono troppo vaghi per essere utili; se poni un problema specifico potrei forse riuscire ad aiutare.

Per quanto riguarda la lista oggetti, devi ripetere periodicamente (o in loop, ma lo sconsiglio, o ogni Tot secondi/minuti usando il metodo OnTime per riscehdulare la prossima esecuzione della macro), esaminare da codice se ci sono voci nuove e prenderle in gestione.

Ottimizzare: si possono togliere i vari delay di N secondi dopo il ReadyState=4 (da myStart = Timer a Loop), perche' da stress test che avevo fatto su sito il readystate risultava abbastanza affidabile.
Se devi seguire vari aricoli (di cui ognuno richiede una sessione IE) potresti creare un array di Object IE, parallelizzare la navigazione su questi oggetti, e accodare solo i tempi di attesa (i cicli Do While .Busy: DoEvents: Loop / Do While .readyState <> 4: DoEvents: Loop ).
Potresti avere problemi di occupazione di memoria, vedi nelle varie discussioni con mpsinf quali commenti sono stati fatti su come prevenirli.

Togliere gli oggetti inutili: fatti un elenco sul foglio in cui scrivi gli articoli presenti in asta ma che vuoi ignorare, poi la macro quando passa a processare i singoli articoli ignorera' quelli nella tua black list.

So che ti aspettavi di piu', ma vale quanto scritto in prima riga.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, dati da web

Postdi lemming78 » 24/01/13 23:18

Anthony47 ha scritto:I temi sono troppo vaghi per essere utili; se poni un problema specifico potrei forse riuscire ad aiutare.

Per quanto riguarda la lista oggetti, devi ripetere periodicamente (o in loop, ma lo sconsiglio, o ogni Tot secondi/minuti usando il metodo OnTime per riscehdulare la prossima esecuzione della macro), esaminare da codice se ci sono voci nuove e prenderle in gestione.

Ottimizzare: si possono togliere i vari delay di N secondi dopo il ReadyState=4 (da myStart = Timer a Loop), perche' da stress test che avevo fatto su sito il readystate risultava abbastanza affidabile.
Se devi seguire vari aricoli (di cui ognuno richiede una sessione IE) potresti creare un array di Object IE, parallelizzare la navigazione su questi oggetti, e accodare solo i tempi di attesa (i cicli Do While .Busy: DoEvents: Loop / Do While .readyState <> 4: DoEvents: Loop ).
Potresti avere problemi di occupazione di memoria, vedi nelle varie discussioni con mpsinf quali commenti sono stati fatti su come prevenirli.


Togliere gli oggetti inutili: fatti un elenco sul foglio in cui scrivi gli articoli presenti in asta ma che vuoi ignorare, poi la macro quando passa a processare i singoli articoli ignorera' quelli nella tua black list.

So che ti aspettavi di piu', ma vale quanto scritto in prima riga.

Ciao


Ciao, grazie per la risposta. Comunque ho inserito la funzione Ontime anche se non so se funge sinceramente. Non credo, ho seguito le indicazioni di un libro. Mi sai dire dove ho sbagliato per favore?
Riguardo la parte in grassetto quanto ci potrei guadagnare in termini di carico sul processore e sulla ram? Perchè sinceramente vorrei prima finirla e metterla in atto, poi semmai vedere di ottimizzare.

Ultimo punto: nessuno conosce una buona vps su cui far girare questa macro? Forse va anche su openoffice ma devo provarla.



Ecco il codice aggiornato. Ripeto, se magari qualcuno ha qualche idea si faccia avanti per favore:)

Codice: Seleziona tutto
Sub Schedule()
Call ppazzi
Call AvviaMacroSuTutti

WaitHours = 0
WaitMin = 15
WaitSec = 0
NextTime = Time + TimeSerial(WaitHours, WaitMin, WaitSec)
Application.OnTime EarliestTime:=NextTime, Procedure:="ppazzi"

WaitHoursx = 0
WaitMinx = 1
WaitSecx = 0
NextTime = Time + TimeSerial(WaitHoursx, WaitMinx, WaitSecx)
Application.OnTime EarliestTime:=NextTimex, Procedure:="AvviaMacroSuTutti"
End Sub


Sub ppazzi() ' qui funziona tutto bene
myURL = "http://www.prezzipazzi.com/"
Set IE = CreateObject("InternetExplorer.Application")
Sheets("Foglio1").Select
Range("A1:C15").Clear
With IE
    .navigate myURL
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
End With
myStart = Timer
Do
    DoEvents
    If Timer > myStart + 3 Or Timer < myStart Then Exit Do
Loop
'cerca ed elenca Id e Descrizioni
Set myColl = IE.document.getElementsByTagName("a")
For Each myLink In myColl
    LTit = myLink.Title
    LLin = myLink.href
    If LTit <> "" And Len(LLin) = 17 + Len(Replace(Replace(LLin, "/prodotto/", ""), ".php?id", "")) Then
        Cells(i + 1, 1) = Mid(LLin, InStr(1, LLin, ".php?id", vbTextCompare) + Len(".php?id"), 99)
        Cells(i + 1, 2) = LTit
        Cells(i + 1, 3) = LLin
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 1, 3), Address:=LLin, _
        TextToDisplay:=LLin
        i = i + 1
    End If
Next myLink
'Chiusura IE
IE.Quit
Set IE = Nothing
Range("A11:C30").Clear




'Dopo che hai preso i dati crea un foglio per ogni riga di dato
' aggiorna tempo e prepara per un nuovo loop
For Each f In Range("A1:A10")
If WorksheetExists(f) = False Then
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = f
End If
Next


End Sub


Sub AvviaMacroSuTutti()
'numsheets = ThisWorkbook.Sheets.Count
'MsgBox numsheets
For j = 1 To 10 '(numsheets - 3)
ActiveWorkbook.Save
Dim nogg As String
Dim titolo As String
titolo = WorksheetFunction.VLookup(Worksheets("Foglio1").Range("A" & j), Worksheets("Foglio1").Range("A1:C10"), 2, False)
nogg = WorksheetFunction.VLookup(Worksheets("Foglio1").Range("A" & j), Worksheets("Foglio1").Range("A1:C10"), 1, False)
Worksheets(nogg).Activate

Call PrezziPazzi(nogg, titolo)
Next

End Sub


Sub PrezziPazzi(noggetto, titolo)

'seleziona prima colonna e nascondila
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
' crea titolo nel foglio
Range("B1:F1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    Range("B1:F1").Select
    Selection.Style = "Titolo 1"
    ActiveCell.FormulaR1C1 = titolo
    Range("G10").Select
 ' query che prende i prezzi. noggetto è la variabile numero oggetto
  With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.prezzipazzi.com/storico_bid.php?refresh=1&id=" & noggetto, _
        Destination:=Range("A2"))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells
        .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
    Range("A11").EntireRow.Delete
'crea nuove righe ad ogni check per inserire dati nuovi
 If Cells(3, 3) <> Cells(15, 3) Then Range("A13:A21").EntireRow.Insert
'copia incolla dati nuovi
Range("A3:F10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("A14").Select
    ActiveSheet.Paste
' cancella le righe in sovrapposizione
Dim Cella As Object
For Each Cella In Range("C14:C21")
If Cella.Value = Range("C22") Then Range("C22").EntireRow.Delete
Next Cella
End Sub

' funzione per controllare se worksheet esiste
Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean
 
    On Error Resume Next
    WorksheetExists = (Sheets(WorksheetName).Name <> "")
    On Error GoTo 0
 
End Function


lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Excel, dati da web

Postdi lemming78 » 25/01/13 12:16

Buongiorno, avrei bisogno una mano con questa parte di codice

Codice: Seleziona tutto
Sub Schedule()
Call ppazzi
Call AvviaMacroSuTutti

WaitHours = 0
WaitMin = 1
WaitSec = 0
NextTime = Time + TimeSerial(WaitHours, WaitMin, WaitSec)
Application.OnTime EarliestTime:=NextTime, Procedure:="AvviaMacroSuTutti"


End Sub


Vorrei che la macro avvii ppazzi ogni 15 min e avviamacrosututti ogni minuto, come posso fare? Ho provato con DO LOOP ma mi crasha tutto:D
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Excel, dati da web

Postdi Anthony47 » 25/01/13 14:21

Immagino che l' ultima domanda superi la precedente (anche se credo che questa risposta dovrebbe risolvere anche il quesito precedente).
La struttura che hai usato per preparare OnTime nella Sub Schedule e' corretta, ma...

OnTime pianifica la esecuzione/riesecuzione di una macro dopo tot tempo, per una sola volta. Se vuoi ripianificare una macro in continuazione allora devi inserire i codice "OnTime" nella stessa macro che viene pianificata.
Da quello che chiedi, metterai un OnTime con WaitHours = 0 /WaitMin = 15 /WaitSec = 0 in coda alla macro ppazzi e un altro con WaitHours = 0 /WaitMin = 1 /WaitSec = 0 in coda ad avviamacrosututti.
Non mi sono addentrato nel contenuto delle macro ppazzi e avviamacrosututti, valuta tu se da queste ripianificazioni puo' derivare qualcosa di anomalo.
Dovresti anche inventare un qualche meccanismo che interrompe la ripianificazione; ad esempio una cella su un foglio che imposti a <>0 se vuoi ripianificare o a 0 se vuoi interrompere; poi prima di ripianificare sondi questa cella; del tipo
Codice: Seleziona tutto
If Sheets("QualeFoglio").Range("QualeCella")<>0 then
'
'qui le istruzioni  per l' OnTime
'
Else
 msgbox("Macro Xyz stoppata")
end if

Se opti per questo metodo, allora io suggerirei che all' apertura del file la rischedulazione venga disabilitata, per essere certi che l' esecuzione macro sia risultato di scelte consapevoli; puoi ottenere questo inserendo in ThisWorkbook qualcosa come
Codice: Seleziona tutto
Private Sub Workbook_Open()
Sheets("QualeFoglio").Range("QualeCella")=0
End Sub

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, dati da web

Postdi lemming78 » 25/01/13 16:28

Anthony47 ha scritto:Immagino che l' ultima domanda superi la precedente (anche se credo che questa risposta dovrebbe risolvere anche il quesito precedente).
La struttura che hai usato per preparare OnTime nella Sub Schedule e' corretta, ma...

OnTime pianifica la esecuzione/riesecuzione di una macro dopo tot tempo, per una sola volta. Se vuoi ripianificare una macro in continuazione allora devi inserire i codice "OnTime" nella stessa macro che viene pianificata.
Da quello che chiedi, metterai un OnTime con WaitHours = 0 /WaitMin = 15 /WaitSec = 0 in coda alla macro ppazzi e un altro con WaitHours = 0 /WaitMin = 1 /WaitSec = 0 in coda ad avviamacrosututti.
Non mi sono addentrato nel contenuto delle macro ppazzi e avviamacrosututti, valuta tu se da queste ripianificazioni puo' derivare qualcosa di anomalo.
o

Grazie, proverò a risolvere prima il problema dell'ontime. In particolare hai detto che viene eseguita una sola volta la stessa macro. Ma anche se inserissi due volte ontime su tutte e due le macro come faccio a mandarle in loop? Cioè semplicemente mi eseguirebbe entrambe le macro una sola volta no? Potrei risolvere inserendo ontime, macro, ontime,macro etc ma sarebbe dispendioso e sopratutto senza autonomia visto che una deve essere eseguita ogni minuto. Spero di essermi spiegato:)
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Excel, dati da web

Postdi lemming78 » 25/01/13 19:21

Niente, non riesco a far andare il loop temporale... mi si ferma dopo aver preso le prime due "analisi"

Codice: Seleziona tutto
Sub AutoOpen()

Call ppazzi
Call AvviaMacroSuTutti
Call Schedule
End Sub

Sub Schedule()

NextTimeFirst = Now + TimeValue("00:15:00")
NextTimeSecond = Now + TimeValue("00:00:30")
Application.OnTime NextTimeSecond, Procedure:="AvviaMacroSuTutti"
Application.OnTime NextTimeFirst, Procedure:="ppazzi"
Call ReStart
End Sub

Sub ReStart()
Application.OnTime NextTimeSecond, Procedure:="Schedule"

End Sub
'Sub auto_close()
'Application.OnTime NextTimeFirst, "ppazzi", , False
'Application.OnTime NextTimeSecond, "AvviaMacroSuTutti", , False
'End Sub
lemming78
Newbie
 
Post: 8
Iscritto il: 23/01/13 00:10

Re: Excel, dati da web

Postdi Anthony47 » 26/01/13 23:52

Anthony ha scritto:OnTime pianifica la esecuzione/riesecuzione di una macro dopo tot tempo, per una sola volta. Se vuoi ripianificare una macro in continuazione allora devi inserire i codice "OnTime" nella stessa macro che viene pianificata.
Quindi se vuoi rieseguire una macro, in coda alla stessa macro metterai le istruzioni di "OnTime", cosi' la macro si riesegue e si ripianifica, e si riesegue e si ripianifica,... fintanto che smetti di ripianificarla (ad esempio usando il meccanismo del flag in una cella).

Con il codice che hai pubblicato tu avvii le macro ppazzi, AvviaMacroSuTutti, Schedule (nella AutoOpen); la macro Schedule a sua volta pianifica UNA (1) riesecuzione della ppazzi (dopo 15') e della AvviaMacroSuTutti (dopo 30"), e poi tutto si ferma.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel, dati da web":


Chi c’è in linea

Visitano il forum: raimea e 25 ospiti