Ir ao conteúdo
  • Cadastre-se

Excel Alerta msgbox ao iniciar formulário


Ir à solução Resolvido por Midori,

Posts recomendados

Boa noite! @Midori @LaerteB Queria tirar uma dúvida, procurei alguns código que rodassem a função de busca de valor na célula com exibição de alerta ao iniciar o formulário, mas só consigo achar com loop (pesquisa em todas as linhas da planilha), o que acaba travando e demorando a pesquisa na planilha aberta.

Preciso adicionar na minha planilha a seguinte condição: No userform1 deve-se aparecer a mensagem box  de alerta ao inicializar, caso na coluna k da planilha1, tenha algum cadastro com a palavra Vencido na tabela nomeada como "dados". O comando sendo executado assim somente na tabela facilitaria meu processo, porque o loop seria apenas na tabela para achar a variável e não na planilha toda para encontrar o valor. Segue em anexo a planilha modelo. Desde já agradeço a disponibilidade! :D 

 

 

modelo de planilha.zip

Link para o comentário
Compartilhar em outros sites

@josequali Fazendo a busca com Find deixa o processo mais rápido.

 

Veja se resolve, a função CadastroVencido retorna o resultado Verdadeiro ou Falso para a busca na coluna K,

Sub Macro()
    MsgBox CadastroVencido([K:K])
End Sub

Function CadastroVencido(Area As Range) As Boolean
    If Not Area.Find("Vencido", , , xlWhole) Is Nothing Then
        CadastroVencido = True
    End If
End Function

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia, josequali

 

O nosso amigo @Midori já inseriu uma forma de solucionar a sua dúvida,

mas estou também colaborando com uma outra solução, verifique e veja se

satisfaz o que solicitou; segue o código abaixo é copiar e colar no seu

formulário:

Private Sub UserForm_Initialize()

'*************************************************
   Application.ScreenUpdating = False
   Application.EnableEvents = False
   
Dim a As Integer
Dim enderc As String
Dim y As Long
Dim ult As Long

ult = Sheets("Planilha1").ListObjects("dados").Range.Rows.Count

 For a = 2 To ult
   If Planilha1.Cells(a, 11) = "Vencido" Then
     enderc = Planilha1.Cells(a, 11).Address
      y = Range(enderc).Row
      Rows(y).Interior.ColorIndex = 3
      
   End If
      Me.Label1.Caption = "Existe Status Vencido nas linhas em vermelho!"
  
 Next
 
   Application.EnableEvents = True
   Application.ScreenUpdating = True
'***************************************************

End Sub

Teste e verifique se era o que queria..

 

OBS: por gentileza verificar o seu Tópico "Formula de condição SE no Word" que existe uma mensagem minha😉

 

Aguardando sua resposta e seu Feed Back ... se foi útil, não esqueça de clicar na "mãozinha"😄

 

LaerteB🙂

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@josequali  Não tinha funcionado porque as linhas tem fórmula.

 

É só acrescentar xlValues para resolver.

 

Find("Vencido", , xlValues, xlWhole)

Se não quiser usar a função CadastroVencido pode colocar os comandos direto no formulário.

 

If Not [K:K].Find("Vencido", , xlValues, xlWhole) Is Nothing Then
    MsgBox "Tem cadastro vencido"
End If

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!