Logo Hardware.com.br
Dimasbrito
Dimasbrito Novo Membro Registrado
42 Mensagens 6 Curtidas

Problemas com atualização de código VBA (Excel)

#1 Por Dimasbrito 06/01/2015 - 18:29
Boa tarde à todos.
Estou com um problema na execução do código que segue abaixo. Trata-se de um código onde ao clicar no botão uma label deve piscar algumas vezes, mas não estou conseguindo ajustá-lo para o excel 2013 em sistema operacional windows 64 bit. Alguém pode me ajudar?
Option Explicit
Private Declare Function GetTickCount Lib "Kernel32" () As Long
Private Const Preto As Long = &H80000012
Private Const Vermelho As Long = &HFF&
Private Sub CommandButton1_Click()
Dim lngTime As Long
Dim i As Integer
For i = 1 To 20 'Numero de vezes que o label vai piscar
lngTime = GetTickCount
If Me.Label1.ForeColor = Preto Then
Me.Label1.ForeColor = Vermelho
Else
Me.Label1.ForeColor = Preto
End If
DoEvents
Do While GetTickCount - lngTime < 200 'Tempo de espera para proximo loop de 2 segundos
Loop
Next
End Sub

Referenciando o código acima devo dizer que o encontrei no site vba.express
Basole
Basole Geek Registrado
945 Mensagens 596 Curtidas
#2 Por Basole
06/01/2015 - 20:51
Dimasbrito, infelismente algumas alteracoes na codificacao sao necessarias para rodar no ambiente 64bts.
http://msdn.microsoft.com/pt-br/library/office/gg264421%28v=office.15%29.aspx
Bom fiz o teste no excel 2010, pois nao tenho o 2013, faca o teste veja se funciona:

abx.

Option Explicit
Private Declare PtrSafe Function GetTickCount Lib "Kernel32" () As Long
Private Const Preto As Long = &H80000012
Private Const Vermelho As Long = &HFF&
Private Sub CommandButton1_Click()
Dim lngTime As Long
Dim i As Integer
For i = 1 To 20 'Numero de vezes que o label vai piscar
lngTime = GetTickCount
If Me.Label1.ForeColor = Preto Then
Me.Label1.ForeColor = Vermelho
Else
Me.Label1.ForeColor = Preto
End If
DoEvents
Do While GetTickCount - lngTime < 200 'Tempo de espera para proximo loop de 2 segundos
Loop
Next
End Sub
Click em Curtir se a resposta foi útil. boa.gif Dê retorno por favor. Se resolveu, atencao_regras.gif Altere o Titulo como [ Resolvido ] comemorando.gif
Dimasbrito
Dimasbrito Novo Membro Registrado
42 Mensagens 6 Curtidas
#3 Por Dimasbrito
06/01/2015 - 22:02
Basole disse:
Dimasbrito, infelismente algumas alteracoes na codificacao sao necessarias para rodar no ambiente 64bts.
http://msdn.microsoft.com/pt-br/library/office/gg264421(v=office.15).aspx
Bom fiz o teste no excel 2010, pois nao tenho o 2013, faca o teste veja se funciona:

abx.

Option Explicit
Private Declare PtrSafe Function GetTickCount Lib "Kernel32" () As Long
Private Const Preto As Long = &H80000012
Private Const Vermelho As Long = &HFF&
Private Sub CommandButton1_Click()
Dim lngTime As Long
Dim i As Integer
For i = 1 To 20 'Numero de vezes que o label vai piscar
lngTime = GetTickCount
If Me.Label1.ForeColor = Preto Then
Me.Label1.ForeColor = Vermelho
Else
Me.Label1.ForeColor = Preto
End If
DoEvents
Do While GetTickCount - lngTime < 200 'Tempo de espera para proximo loop de 2 segundos
Loop
Next
End Sub


Não deu certo. Ao clicar no botão o código trava o programa. Será que vc pode me enviar o arquivo já pronto no excel?
Desde já agradeço a disponibilidade.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal