1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Programação' iniciada por jcpl, 16 de Dezembro de 2008. (Respostas: 2; Visualizações: 1155)

  1. 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: 16 de Dezembro de 2008
  2. Cambalinho

    Cambalinho Power Member

    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: 24 de Dezembro de 2008
  3. sim tens toda a razão, obrigado pela dica...
    abraço
     

Partilhar esta Página