Ir ao conteúdo

Excel Alerta msgbox ao iniciar formulário


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

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

Postado

@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
Postado

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
  • Solução
Postado

@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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!