Notifications
Clear all

Como mencionar range nomeado em código VBA

4 Posts
4 Usuários
0 Reactions
874 Visualizações
(@cassigol)
Posts: 3
New Member
Topic starter
 

Bom dia a todos, pesquisei bastante e todas as soluções que encontram sao bem simples, porém ao colocar no meu código a mesma não funciona..

Eu quero enviar um email com um range determinado no corpo, dei nome ao range para facilitar, porém nao consigo referenciá-lo no código, vejam:

 Sub MandaEmail()
  
    Dim EnviarPara1 As String
    Dim Enviarpara2 As String
   
        EnviarPara1 = (ActiveWorkbook.Sheets("Supervisão").Range("D5"))
        Enviarpara2 = (ActiveWorkbook.Sheets("Documentação").Range("name1"))
            Envia_Emails EnviarPara1, Enviarpara2
    
    End Sub
        Sub Envia_Emails(EnviarPara1 As String, Enviarpara2 As String)
    Dim OutlookApp As Object
    Dim OutlookMail As Object
 
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
 
    With OutlookMail
        .To = EnviarPara1
        .CC = ""
        .BCC = ""
        .Subject = "teste"
        .Body = Enviarpara2
        .Display
    End With
 
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
        End Sub

Da erro de variáveis incompatíveis, minha ideia futuramente é enviar para todos os namei que tenho, se nao me engano vai até 30. então criaria um loop até namei atingir name30, porém fazendo o teste para um name fixo ja não estou conseguindo..

Obrigado

 
Postado : 03/01/2018 5:42 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia

Acesse o link abaixo e veja se o tutorial abaixo pode te ajudar:

http://excelevba.com.br/campos-nomeados-com-vba/

Se foi útil, clique na mãozinha.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/01/2018 7:02 am
(@klarc28)
Posts: 971
Prominent Member
 

Intervalos nomeados dão problema. Você faz tudo certinho e mesmo assim não funcionam. Já auxiliei um amigo que estava com o mesmo problema em macro para enviar email. Você está querendo facilitar, mas está complicando a sua vida. Faça assim:

Option Explicit

Sub teste()


Dim INTERVALO As Range
Dim LINHA As Long
LINHA = 2
While Plan1.Range("A" & LINHA).Value <> ""
LINHA = LINHA + 1
Wend

LINHA = LINHA - 1


Set INTERVALO = Plan1.Range("A2:E" & LINHA)


End Sub


Sub teste2()


Dim INTERVALO As Range
Dim LINHA As Long


LINHA = Plan1.UsedRange.Rows.Count


Set INTERVALO = Plan1.Range("A2:E" & LINHA)


End Sub
 
Postado : 03/01/2018 7:14 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

cassigol,

Bom dia!

Segue a minha contribuição.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/01/2018 7:25 am