Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por AlineAlves
#616
Bomm diaa, então criei a macro abaixo para enviar e-mail segundo as necessidades da contabilidade onde trabalho ( não entendo nada, nem sei como consegui criar isso sozinha kkkk) mas ela ate que funciona direitinho :), mas não consigo fazer ela rodar em todas as abas da planilha...

Se alguem puder me ajudar :D

to num nivel de desespero ja rs

Obrigada!

Private Sub Workbook_Open()

linhadados = 1
conta = 0

Do While Sheets(19).Cells(linhadados, 5).Value <> ""

If Sheets(19).Cells(linhadados, 5).Value <= 30 Then

Call CriaEmail(Cells(linhadados, 6), " Prazo de renovação expirando URGENTE!!", "Prezado faltam " & Cells(linhadados, 5) & " dias,ou mais para renovação do Certificado" & " da empresa CNPJ:" & Cells(linhadados, 1))
conta = conta + 1

End If

linhadados = linhadados + 1


Loop

MsgBox ("Foi enviado " & conta & " emails")

End Sub

Sub CriaEmail(Destinatario As String, assunto As String, mensagem As String)

Dim objOutlook As Object
Dim objMail As Object

'Cria um novo item de email e altera suas propriedades
Set objOutlook = CreateObject("Outlook.Application")

'Cria uma nova instancia de item de email
Set objMail = objOutlook.Application.CreateItem(olMailItem)


With objMail

.To = Destinatario
.Subject = assunto
.Body = mensagem
.Display




End With


End Sub
Avatar do usuário
Por laennder
Avatar
#644
Olá Aline, você poderia postar em anexo a sua planilha, para que a gente possa entender como são as abas, e o que você deseja "rodar" em cada aba?
Por AlineAlves
#650
Bomm diaa, então criei a macro abaixo para enviar e-mail segundo as necessidades da contabilidade onde trabalho ( não entendo nada, nem sei como consegui criar isso sozinha kkkk) mas ela ate que funciona direitinho :), mas não consigo fazer ela rodar em todas as abas da planilha...

A planilha esta em anexo, a ideia é que seja enviado e-mail para o vencimento de cada impostos que temos aqui (vencimento de GPS, impostos e afins), no momento ela funciona apenas na aba " certificados"

Se alguém puder me ajudar :D

to num nivel de desespero ja rs

Obrigada!

Private Sub Workbook_Open()

linhadados = 1
conta = 0

Do While Sheets(19).Cells(linhadados, 5).Value <> ""

If Sheets(19).Cells(linhadados, 5).Value <= 30 Then

Call CriaEmail(Cells(linhadados, 6), " Prazo de renovação expirando URGENTE!!", "Prezado faltam " & Cells(linhadados, 5) & " dias,ou mais para renovação do Certificado" & " da empresa CNPJ:" & Cells(linhadados, 1))
conta = conta + 1

End If

linhadados = linhadados + 1


Loop

MsgBox ("Foi enviado " & conta & " emails")

End Sub

Sub CriaEmail(Destinatario As String, assunto As String, mensagem As String)

Dim objOutlook As Object
Dim objMail As Object

'Cria um novo item de email e altera suas propriedades
Set objOutlook = CreateObject("Outlook.Application")

'Cria uma nova instancia de item de email
Set objMail = objOutlook.Application.CreateItem(olMailItem)


With objMail

.To = Destinatario
.Subject = assunto
.Body = mensagem
.Display




End With


End Sub[/quote]
Avatar do usuário
Por laennder
Avatar
#693
E em qual outra aba você quer que funcione?

A macro está enviando e-mails da aba "Teste".

As e-mails são enviados quando você abre a planilha. Verifique o evento Workbook_open()
Código: Selecionar todos
Private Sub Workbook_Open()

linhadados = 1
conta = 0

Do While Sheets(19).Cells(linhadados, 5).Value <> ""

    If Sheets(19).Cells(linhadados, 5).Value <= 30 Then
    
        Call CriaEmail(Cells(linhadados, 6), " Prazo de renovação expirando  URGENTE!!", "Prezado faltam " & Cells(linhadados, 5) & " dias,ou mais para renovação do Certificado" & " da empresa CNPJ:" & Cells(linhadados, 1))
        conta = conta + 1
        
    End If

linhadados = linhadados + 1


Loop

MsgBox ("Foi enviado " & conta & " emails")

End Sub
Recomendo, ao invés de utilizar a posição da planilha [ Sheets(19) ] utilize o nome, Sheets("Certificados")

Você também deve adaptar os parâmetros da coleção Cells.
Por AlineAlves
#696
Precisava que "rodasse"em outras abas que criarei futuramente, a ideia que temos para essa planilha é que assim que ela for aberta já envie e-mail de todos os impostos que estarão para vencer e cada imposto estará em uma aba diferente.
ela puxa os dados da aba " Certificados"
Por Yera
#756
Olá,

para que ela rode automaticamente em todas as abas fiz uma modificação simples no seu código.

Inseri mais um "For each" para que ele rode o codigo que você fez para todas as abas da planilha, independente de quantas existam.

Private Sub Workbook_Open()

linhadados = 1
conta = 0

For Each aba In ActiveWorkbook.Sheets
Do While aba.Cells(linhadados, 5).Value <> ""

If aba.Cells(linhadados, 5).Value <= 30 Then

Call CriaEmail(aba.Cells(linhadados, 6), " Prazo de renovação expirando URGENTE!!", "Prezado faltam " & aba.Cells(linhadados, 5) & " dias,ou mais para renovação do Certificado" & " da empresa CNPJ:" & aba.Cells(linhadados, 1))
conta = conta + 1

End If

linhadados = linhadados + 1
Loop

Next
MsgBox ("Foi enviado " & conta & " emails")

End Sub

Grande abraço.
Editado pela última vez por laennder em 10 Mai 2015 às 15:46, em um total de 1 vez. Razão: Remoção de link: Referências a outros sites são aceitáveis ​​se diretamente abordar a pergunta feita (Regra nº 4)
Por AlineAlves
#764
Olá, fiz as modificações com o código que você sugeriu, mas agora ela não esta mais enviando e-mail de nenhuma das abas rs .
Por Yera
#774
O excel retorna algum erro?

O que eu fiz foi simplesmente fazer ele "vasculhar" e executar o mesmo código em todas as abas.

Se puder enviar a planilha com as modificações consigo dar uma olhada.

Grande abraço.
Por AlineAlves
#3547
a ideia da planilha é para que seja enviado um e-mail avisando que determinada obrigação ( pretendemos criar uma aba para cada obrigação tanto contábil, quanto fiscal, enfim para tudo que temos na contabilidade), e assim que a planilha for aberta já identificar tudo que esta vencendo nas abas e enviar e-mail avisando.
espero que consigam me ajudar,
Obrigada!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord