Ir ao conteúdo

Posts recomendados

Postado

Preciso de uma ajuda para construir uma macro com os seguintes parâmetros:

 

O arquivo tem 2 planilhas, nominadas de "Indice" e "Historico"

Preciso que a macro execute a cada 1 minuto, copiando o intervalo F2:F76 (da plan "Indice"), para a plan "Historico", na coluna C2:C76...na proxima vez  que copiar, deverá colar na coluna subsequente, ou seja (D2:D76), e assim por diante...

 

Tentei com o seguinte código:

 

 

 

Public dTime As Date
Public st As Date

Sub Copia()
 If Time > #5:31:00 PM# Then Exit Sub
 dTime = Now() + TimeValue("00:01:00")
 Application.OnTime dTime, "Copia"
 ThisWorkbook.Sheets("Historico").Cells(ThisWorkbook.Sheets("Historico").Columns.Count, 1).Resize(1, 1).Value = _
 Array(Time, ThisWorkbook.Sheets("Indice").Range("F2:F76")).Copy
 ThisWorkbook.Sheets("Indice").Buttons("Botão 1").Caption = "PARAR"
End Sub

Sub IniciaParaReinicia()
 On Error Resume Next
 Application.OnTime dTime, "Copia", , False
 Application.OnTime st, "Copia", , False
 If ActiveSheet.Buttons(Application.Caller).Caption = "PARAR" Then
  ActiveSheet.Buttons(Application.Caller).Caption = "REINICIAR"
 ElseIf InStr(ActiveSheet.Buttons(Application.Caller).Caption, "INICIAR") > 0 Then
  ActiveSheet.Buttons(Application.Caller).Caption = "PARAR"
  Application.OnTime Application.Ceiling(Time, "00:01:00"), "Copia"
 End If
End Sub
 

Postado

@alexsilvamt Veja se desta forma ajuda,

 

Dim C   As Integer

Sub Copiar()
    Application.OnTime TimeValue("00:01:00") + Now, "Copiar"
    Worksheets("Indice").Range("F2:F76").Copy _
        Worksheets("Historico").Range("C2").Offset(0, C)
    C = C + 1
End Sub

 

  • Amei 1
Postado

   Substitua:

    ActiveSheet.Paste

    Columns(x & ":" & x).EntireColumn.AutoFit

    Range(x & "1").Select

   

 

    Por:  

    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _

        xlNone, SkipBlanks:=False, Transpose:=False

    Columns(x & ":" & x).EntireColumn.AutoFit

    Application.CutCopyMode = False

    Selection.NumberFormat = "0.00"

    Range(x & "1").Select

  • Amei 1
Postado
30 minutos atrás, Muca Costa disse:

   Substitua:

    ActiveSheet.Paste

    Columns(x & ":" & x).EntireColumn.AutoFit

    Range(x & "1").Select

   

 

    Por:  

    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _

        xlNone, SkipBlanks:=False, Transpose:=False

    Columns(x & ":" & x).EntireColumn.AutoFit

    Application.CutCopyMode = False

    Selection.NumberFormat = "0.00"

    Range(x & "1").Select

Como na origem, os  dados estão no intervalos ("F2:F76"), gostaria que os dados fosse colados no destino, tambem a partir da linha 2 de cada coluna, visto que a inha 1 é cabeçalho.. atualmente a macro esta colando, mas a partir da linha 1 no destino... Qual código que tenho que alterar paraa conseguir isso???

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...