Alguem me pode ajudar por favor no excel? n tou conseguindo resolver! :(

jcpl

Membro
Veja com atenção as seguintes sub-rotinas que permitem criar uma lista com valores extraídos de uma Query externa. O valor que é extraído é, neste caso, o que se encontra na célula D7 com uma taxa de 10 minutos.
Pretende-se que utilize estas 2 sub-rotinas para criar uma folha Excel que permita estudar a variação de: "Pessoas que estao a visitar uma página”
Fica ao seu critério qual a página web que vai utilizar para obter essa informação. Deverá fazer as alterações que achar necessárias (incluindo a taxa de actualização). Deverá também mostrar visualmente através de (pelo menos) 3 gráficos as variações e outras estatísticas associadas. Assim, deverá colocar numa folha, a WebQuery; numa outra folha, os valores; e os gráficos numa terceira folha (as folhas devem ser renomeadas).


Código:
Option Explicit
Sub Automatiza()
Dim i, j, k As Integer
Dim valor As Single
Dim tempo, demora_segs As Single
Dim n_recolha As Integer
Dim parar As Boolean
'Inicializa vars:
n_recolha = 0
parar = False
tempo = Timer
'Especifica a demora em segundos entre cada recolha dos dados:
demora_segs = 600
'Ciclo de recolhimento de dados:
While parar = False
While Timer < tempo
DoEvents
Wend
z_recolhe
n_recolha = n_recolha + 1
'Faz sair os dados na Sheet2:
Worksheets("Sheet2").Cells(n_recolha, 1).Value = Date
Worksheets("Sheet2").Cells(n_recolha, 2).Value = Time
valor = Worksheets("Sheet1").Cells(7, 4).Value
'Reajusta o valor (o ponto é ignorado) para o interpretar como real
valor = valor / 100
Sheets("Sheet2").Select
Worksheets("Sheet2").Cells(1, 1).Select
Worksheets("Sheet2").Cells(n_recolha, 3).Value = valor
Worksheets("Sheet2").Cells(n_recolha, 3).Select
'Define o momento da recolha seguinte:
tempo = tempo + demora_segs
'No fim do dia, prepara uma primeira recolha à meia-noite.
If tempo >= 86400 Then tempo = 0
Wend
End Sub
Sub z_recolhe()
Sheets("Sheet1").Select
Worksheets("Sheet1").Cells(1, 1).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
 
Última edição pelo moderador:
desculpa, mas que tal dares melhor aspecto ao teu codigo?
eu não sei como resolver o teu problema, mas desta forma, quem te poder ajudar, consegue ver melhor o codigo.
(desculpa, se estou a ser malcriado:()
Código:
Option Explicit
 
Sub Automatiza()
    Dim i, j, k As Integer
    Dim valor As Single
    Dim tempo, demora_segs As Single
    Dim n_recolha As Integer
    Dim parar As Boolean
    'Inicializa vars:
    n_recolha = 0
    parar = False
    tempo = Timer
    'Especifica a demora em segundos entre cada recolha dos dados:
    demora_segs = 600
    'Ciclo de recolhimento de dados:
    While parar = False
        While Timer < tempo
             DoEvents
        Wend
        z_recolhe
        n_recolha = n_recolha + 1
        'Faz sair os dados na Sheet2:
        Worksheets("Sheet2").Cells(n_recolha, 1).Value = Date
        Worksheets("Sheet2").Cells(n_recolha, 2).Value = Time
        valor = Worksheets("Sheet1").Cells(7, 4).Value
        'Reajusta o valor (o ponto é ignorado) para o interpretar como real
        valor = valor / 100
        Sheets("Sheet2").Select
        Worksheets("Sheet2").Cells(1, 1).Select
        Worksheets("Sheet2").Cells(n_recolha, 3).Value = valor
        Worksheets("Sheet2").Cells(n_recolha, 3).Select
        'Define o momento da recolha seguinte:
        tempo = tempo + demora_segs
        'No fim do dia, prepara uma primeira recolha à meia-noite.
        If tempo >= 86400 Then tempo = 0
    Wend
End Sub
 
Sub z_recolhe()
    Sheets("Sheet1").Select
    Worksheets("Sheet1").Cells(1, 1).Select
    Selection.QueryTable.Refresh BackgroundQuery:=False 'desculpa, mas tens a certeza se que leva ":"?
End Sub
 
Última edição:
Back
Topo