Notifications
Clear all

VBA que não funciona

5 Posts
2 Usuários
0 Reactions
874 Visualizações
(@jorge24)
Posts: 31
Trusted Member
Topic starter
 

Olá amigos,

Tenho uma tabela em que inseri uma programação (que não é da minha autoria, apenas adaptei) a maior parte tirei do site, ExcelMax® Soluções.

A questão é:

A Private Sub Worksheet_Change(ByVal Target As Range) funciona mas a Private Sub Worksheet_Change_SE(ByVal Target As Range) não!!!!!

Agradecia uma ajuda a perceber o porquê deste caso. Ainda estou a iniciar no Excel e por isso peço desculpa se alguma coisa não fizer sentido.

Muito grato, abr.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim OutApp As Object
Dim OutMail As Object
Dim texto As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

Linha = ActiveCell.Row - 1
If Target.Address = "$AG$" & Linha Then

If Folha3.Cells(Linha, 33) = "s" Then
texto = "Exmo.(a) Sr.(a)" & vbCrLf & vbCrLf & _
"Na sequência do pedido de manutenção submetido através do e-mail - " & Folha3.Cells(Linha, 32) & " - informamos que:" & vbCrLf & vbCrLf & _
" Ao pedido apresentado em " & Folha3.Cells(Linha, 12) & " foi atribuída a referência: " & Folha3.Cells(Linha, 1) & ";" & vbCrLf & _
" Equipamento: " & Folha3.Cells(Linha, 6) & ";" & vbCrLf & _
" Ação a desenvolver: " & Folha3.Cells(Linha, 21) & ";" & vbCrLf & _
" Estado: Encaminhado para análise. " & vbCrLf & vbCrLf & _
"Para futuras informações acerca do estado deste pedido contactar: " & vbCrLf & _
"Sistema Integrado de Manutenção" & vbCrLf & _
"Correio electrónico: @gmail.com/" & "@gmail.com" & vbCrLf & _
"Telemóvel: (de 2ª a 6ª entre as 9:00h e as 17:00h)"

End If

With OutMail
.To = Folha3.Cells(Linha, 32)
.CC = ""
.BCC = ""
.Subject = "Sistema "
.Body = texto
.Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End If
End Sub

Private Sub Worksheet_Change_SE(ByVal Target As Range)
Dim OutApp As Object
Dim OutMail As Object
Dim texto As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

Linha = ActiveCell.Row - 1
If Target.Address = "$AI$" & Linha Then

If Folha3.Cells(Linha, 35) = "se" Then
texto = "Exmo.(a) Sr.(a)" & vbCrLf & vbCrLf & _
"Na sequência do pedido de manutenção submetido através do e-mail - " & Folha3.Cells(Linha, 32) & " - informamos que:" & vbCrLf & vbCrLf & _
" Ao pedido apresentado em " & Folha3.Cells(Linha, 12) & " foi atribuída a referência: " & Folha3.Cells(Linha, 1) & ";" & vbCrLf & _
" Equipamento: " & Folha3.Cells(Linha, 6) & ";" & vbCrLf & _
" Ação a desenvolver: " & Folha3.Cells(Linha, 21) & ";" & vbCrLf & _
" Estado: Encaminhado para análise. " & vbCrLf & vbCrLf & _
"Para futuras informações acerca do estado deste pedido contactar: " & vbCrLf & _
"Sistema Integrado de Manutenção" & vbCrLf & _
"Correio electrónico: @gmail.com/" & "@gmail.com" & vbCrLf & _
"Telemóvel: (de 2ª a 6ª entre as 9:00h e as 17:00h)"

End If

With OutMail
.To = Folha3.Cells(Linha, 32)
.CC = ""
.BCC = ""
.Subject = "Sistema - "
.Body = texto
.Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End If
End Sub

 
Postado : 22/05/2014 11:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tem como postar seu arquivo modelo?

está vago e estranha, a sua dúvida :?

Att

 
Postado : 22/05/2014 11:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

As duas rotinas são muito similares; para não dizer iguais; e por planilha/folha você pode ter apenas uma rotina "Worksheet_Change". A outra com acrescida de _SE não é considerada pelo sistema VBE.

 
Postado : 22/05/2014 11:43 am
(@jorge24)
Posts: 31
Trusted Member
Topic starter
 

Bom dia,

É verdade as rotinas são iguais mas, preciso de duas pq quero enviar dois mails diferentes. Ou seja, mais tarde na segunda rotina vou acrescentar linhas.

Por agora como resolvo o problema do nome das rotinas???

alexandrevba o arquivo é muito grande e mesmo compacto não fica dentro dos 100kb.

Obrigado

 
Postado : 23/05/2014 2:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Espero que o pessoal lhe ajude, mas caso queira postar seu arquivo use um site gratuito como sendspace depois poste o link aqui.

Att

 
Postado : 23/05/2014 10:44 am