Jump to content

Erro no formato da data ao correr a macro


Nelson Pereira
 Share

Recommended Posts

Olá boa tarde,

Eu criei uma macro para enviar emails automáticos através do excell, mas surgiram-me duas questões que não sei resolve-las porque não estou por dentro da linguagem VBA. Eu sei que terão de se criar if´s mas não sei por em prática.

Questão 1:

Quando eu insiro um formato da data diferente do formato normal, ele surge-me um erro apenas quando ele corre a macro, mas eu queria substituir esse erro com uma mensagem do género "Por favor insira uma data válida".

288.jpg

Questão 2:

Sempre que alguém faz anos no dia que coincide com a data do sistema, a macro envia um email através do outlook, mas se caso não existir ninguem a fazer anos no dia do sistema, dá um erro a dizer que não existe nenhum e-mail para ser enviado. Eu queria que esse erro fosse ignorado e que a macro corre-se normalmente, isto para que o sistema seja independente, assim correrá durante meses sem que ninguém precise de clicar em nada.

289.jpg

Cumprimentos,

Obrigado.

Link to comment
Share on other sites

Boas, para a parte da data, partindo do principio que é introduzida diretamente na célula, basta selecionares a coluna e escolheres formatar células e meteres como data, assim qualquer valor que lá seja colocado é convertido automaticamente numa data, e já não te vai dar erro.

Caso queiras (excel 2010) podes ir ao separador dados, escolher validação de dados e na mensagem de entrada meteres qualquer coisa como "inserir uma data" assim quando se escolhe essa célula aparece a mensagem a amarelo.

Para a segunda parte do erro, é mais fácil de ajudar caso coloques o código que já tens.

Boa sorte!

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Link to comment
Share on other sites

Olá Gnrtuga, sim já resolvi o problema da data, assim a possa que inserir as datas, se inserir mal uma data nem tema opção de iniciar a macro porque tem um aviso para a inserir correctamente.

Sub SendReminderMail()
Dim OutLookApp As Object
Dim OutlookMailItem As Object
Dim icounter As Integer
Dim MailDest As String

Dim i As Integer
i = 0

	 Set OutLookApp = CreateObject("Outlook.application")
	 Set OutlookMailItem = OutLookApp.CreateItem(0)


With OutlookMailItem
	MailDest = ""

	For icounter = 4 To WorksheetFunction.CountA(Columns(14))
	If Month(Cells(icounter, 13)) = Month(Date) And Day(Cells(icounter, 13)) = Day(Date) Then
			MailDest = MailDest & Cells(icounter, 14).Value & "; "
	End If


Next icounter

	 .BCC = MailDest
	 .Subject = "Aniversário"
	 .Body = "Desejamos-lhe um feliz aniversario!"
	 .Send
	 End With

	 Set OutlookMailItem = Nothing
	 Set OutLookApp = Nothing

End Sub

Cumprimentos,

Obrigado.

Edited by apocsantos
geshi
Link to comment
Share on other sites

Pronto interessa é resolver a coisa 🙂

Em relação aos If's já resolveste?

Caso não tenhas resolvido escreve o que queres fazer, tipo: vou a conduzir e se ecolher o caminho da direita aparece um aviso a dizer que vou pagar portagem, se voltar no da esquerda aparece outra coisa.. se for em frente...(etc)

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Link to comment
Share on other sites

Olá Gnrtuga. Esse código é para enviar e-mails e compara a data de nascimento com a data do sistema do computador. Mas quando não existe ninguém na lista a fazer anos então dá o erro que eu coloquei em cima. Ou seja o que eu quero é do género:

Se não existir nenhuma data que coincida com a data do sistema, Então a macro continua a correr normalmente. É de referir que no código tenho um timer que faz correr a macro a cada 24h horas. Ou seja se correr hoje as 11h então amanha voltará a correr a mesma hora. O problema é que se ninguém fizer anos a macro para á espera que alguém carregue em "Debug" ou "end" e o intuito é que este sistema seja independente.

Cumprimentos,

Obrigado.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.