Notifications
Clear all

Aviso no msgbox

23 Posts
2 Usuários
0 Reactions
5,843 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

caros adoradores do excel...

Gostaria que ao abrir a minha planilha, uma msgbox me alertasse que existe um aniversariante no dia, por exemplo...

Em minha Plan1 tem coluna A que corresponde aos nomes e coluna B que corresponde a data de nascimento (dd/mm/aaaa)

A B
1 Nome Nascimento
2 hicardo 16/08/1977

Tenho tb um userform onde eu cadastro estas informações

então ao abrir a planilha:

MsgBox "O cliente Hicardo está de aniversário hoje ! ! !", vbExclamation, "Atenção !!!"

como eu poderia fazer isso ?

 
Postado : 14/07/2009 2:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 
SUB AUTO_OPEN()
ON ERROR RESUME NEXT
DIM strNome as string
strNome = application.worksheetfunction.lookup(date(),activesheet.Range("B:B),Activesheet.Range("A:A"))
if strnome <> "" then
MsgBox "O cliente " & strnome  & " está de aniversário hoje ! ! !", vbExclamation, "Atenção
endif

END SUB
 
Postado : 14/07/2009 4:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fernando,

Não consegui entender a lógica, desculpe minha ignorância, mas tenho mais planilhas e qdo abre ele não fica ativa onde está as informações da data de nascimento, então como ele vai buscar estas informações ?

abaixo segue o código da inicialização de minha planilha:
(lembrando que abaixo refere-se Plan1=menu Plan2=bd

'inicializando a planilha
Private Sub Workbook_Open()
Application.DisplayFullScreen = True
Application.CommandBars("Full Screen").Visible = False
Application.CommandBars(1).Enabled = False

Application.DisplayFormulaBar = False 'barra de fórmulas
Application.DisplayStatusBar = False 'barra de status
Application.CommandBars("Formatting").Visible = False 'barra de ferramentas formatação
Application.CommandBars("Drawing").Visible = False 'barra de ferramentas desenho
Application.CommandBars("Forms").Visible = False 'barra de ferramentas formulários
Application.CommandBars("Stop Recording").Visible = False 'botão parar gravação
Application.CommandBars("Standard").Visible = False
Sheets("menu").Select
Range("B2").Select

On Error Resume Next
Dim strNome As String
'strNome = application.worksheetfunction.lookup(date(),activesheet.Range("B:B),Activesheet.Range("A:A"))
'strNome = application.worksheetfunction.lookup(date(),Sheets("bd").Range("H:H),Sheets("bd").Range("A:A"))
If strNome <> "" Then
MsgBox "Cliente " & strNome & " está de aniversário hoje ! ! !", vbExclamation, "Atenção"
End If
'Sheets("bd").Cells(i, 8) = nasc

'MsgBox "Seja bem vindo ! ! !", vbExclamation, "Olá !!!"
UserForm1.Show
End Sub

 
Postado : 15/07/2009 9:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

'inicializando a planilha
Private Sub Workbook_Open()
with Application
.DisplayFullScreen = True
.CommandBars("Full Screen").Visible = False
.CommandBars(1).Enabled = False
.DisplayFormulaBar = False 'barra de fórmulas
.DisplayStatusBar = False 'barra de status
.CommandBars("Formatting").Visible = False 'barra de ferramentas formatação
.CommandBars("Drawing").Visible = False 'barra de ferramentas desenho
.CommandBars("Forms").Visible = False 'barra de ferramentas formulários
.CommandBars("Stop Recording").Visible = False 'botão parar gravação
.CommandBars("Standard").Visible = False
end With

Sheets("menu").Select
Range("B2").Select

On Error Resume Next
Dim
strNome As String
strNome = application.worksheetfunction.lookup(date(),Sheets("bd").Range("H:H"),Sheets("bd").Range("A:A"))
If strNome <> "" Then
MsgBox "Cliente " & strNome & " está de aniversário hoje ! ! !", vbExclamation, "Atenção"
End If
'Sheets("bd").Cells(i, 8) = nasc

'MsgBox "Seja bem vindo ! ! !", vbExclamation, "Olá !!!"
UserForm1.Show
End Sub

 
Postado : 15/07/2009 9:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo,

Até funcionou, mas somente se eu colocar a data de hoje na data de nascimento...acho que ele deveria desconsiderar o ano de nascimento.

Outra coisa...se tiver mais de um aniversariante ele só avisa o primeiro da lista.

 
Postado : 17/07/2009 5:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

vou resolver o problema do ano no próximo código, mas uma coisinha, se tiver mais de um vc quer ver al ista toda de uma vez, ou vc quer várias msgbox uma com cada um?

se assim for, vou usar um approach differente no código.

 
Postado : 17/07/2009 9:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não precisa abrir um Msgbox para cada caso, pode listar, mas ele tem que exibir a informação assim que abrir a planilha.

Outra coisa, ainda não consegui resposta em minha outra dúvida referente ao banco de dados, como sei que vc é expert, me dá uma forcinha !!!

Valeu

 
Postado : 17/07/2009 10:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 
'inicializando a planilha
Private Sub Workbook_Open()
with Application
.DisplayFullScreen = True
.CommandBars("Full Screen").Visible = False
.CommandBars(1).Enabled = False
.DisplayFormulaBar = False 'barra de fórmulas
.DisplayStatusBar = False 'barra de status
.CommandBars("Formatting").Visible = False 'barra de ferramentas formatação
.CommandBars("Drawing").Visible = False 'barra de ferramentas desenho
.CommandBars("Forms").Visible = False 'barra de ferramentas formulários
.CommandBars("Stop Recording").Visible = False 'botão parar gravação
.CommandBars("Standard").Visible = False
end With

Sheets("menu").Select
Range("B2").Select

On Error Resume Next
Dim strNomes As String
Dim lngTotalLinhas as long
dim x as long

lngTotalLinhas = Sheets("BD").Range("H65536").end(xlup).row
for x = 1 to lngTotalLinhas
if day(Sheets("bd").Range("H" & x).value)=day(date()) and month(Sheets("bd").Range("H" & x).value)=month(date()) then
strNomes = StrNomes & Sheets("bd").Range("A" & x).value & ", "
endif
Next
if strNomes <> "" then 
strNomes = left(StrNomes,len(strNomes)-2)
MsgBox "Cliente(s) " & strNomes & " aniversaria(m) hoje ! ! !", vbExclamation, "Atenção"
End If

UserForm1.Show
End Sub

Acho que isso deve resolver!

desculpa a demora, o trabalho tá me matando :(

 
Postado : 22/07/2009 8:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fernando,

Agora ele só está avisando que há aniversariantes, mas não me diz quem.

 
Postado : 23/07/2009 9:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

coloque aqui por favor uma imagem do msgbox e se possível, a planilha em questão...
Obrigado

 
Postado : 23/07/2009 9:24 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fernando,

como faço para colocar a imagem do msgbox pra vc ver e a planilha ?

 
Postado : 31/07/2009 7:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu sugiro o
http://photobucket.com/

Ao subir a imagem, ela passa a ter um link.

Nas ferramentas da mensagem daqui do fórum, você utiliza a Img.

 
Postado : 31/07/2009 7:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

help galera,

ainda não consegui resolver este problema, e não sei postar anexo ou imagem no fórum,
só gostaria que quando eu abrir a planilha, me aprecesse um msgbox alertando que tal pessoa está aniversariando.

Os dados estão na plan "bd", onde o nome das pessoas estão na coluna A e sua data de nascimento estão na coluna H (em formato aa/mm/aaaa)

Será que alguém pode me ajudar ?

O fernando quase matou a charada, mas teria que ignorar o ano de nascimento.

 
Postado : 31/07/2009 1:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Em EstaPasta_de_trabalho:

Private Sub Workbook_Open()
Call Aniversariantes
End Sub

Num Módulo:

Sub Aniversariantes()

ilin = 2
elin = Sheets("Ani").Range("A65536").End(xlUp).Row

m = Month(Now)
d = Day(Now)

Sheets("Ani").Activate

Do While ilin <= elin
If (d & m) <> (Day(Cells(ilin, 2)) & Month(Cells(ilin, 2))) Then
ilin = ilin + 1
Else
nome = Cells(ilin, 1)
MsgBox ("Não se esqueça dos Parabéns para " & nome & "!!!")
ilin = ilin + 1
End If
Loop

End Sub

 
Postado : 31/07/2009 2:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edson,

não funcionou, ele dá erro e na depuração ele para já na primeira linha do módulo:

ilin = 2

Como eu poderia mandar a planillha pra vc dar uma olhada ?

 
Postado : 03/08/2009 11:22 am
Página 1 / 2