Ir para o conteúdo
Nelson Pereira

Erro no formato da data ao correr a macro

Mensagens Recomendadas

Nelson Pereira    0
Nelson Pereira

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gnrtuga    9
Gnrtuga

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nelson Pereira    0
Nelson Pereira

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.

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nelson Pereira    0
Nelson Pereira

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gnrtuga    9
Gnrtuga

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nelson Pereira    0
Nelson Pereira

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.