Nelson Pereira Posted April 23, 2015 at 04:27 PM Report Share #581733 Posted April 23, 2015 at 04:27 PM 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". 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. Cumprimentos, Obrigado. Link to comment Share on other sites More sharing options...
Gnrtuga Posted April 24, 2015 at 08:40 AM Report Share #581769 Posted April 24, 2015 at 08:40 AM 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 More sharing options...
Nelson Pereira Posted April 27, 2015 at 09:11 AM Author Report Share #581907 Posted April 27, 2015 at 09:11 AM (edited) 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 April 27, 2015 at 09:18 AM by apocsantos geshi Link to comment Share on other sites More sharing options...
Nelson Pereira Posted April 27, 2015 at 09:23 AM Author Report Share #581908 Posted April 27, 2015 at 09:23 AM *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. Link to comment Share on other sites More sharing options...
Gnrtuga Posted April 27, 2015 at 05:33 PM Report Share #581954 Posted April 27, 2015 at 05:33 PM 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 More sharing options...
Nelson Pereira Posted April 28, 2015 at 09:14 AM Author Report Share #582029 Posted April 28, 2015 at 09:14 AM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now