Notifications
Clear all

Macro com problema

2 Posts
2 Usuários
0 Reactions
867 Visualizações
(@raphaeldan)
Posts: 1
New Member
Topic starter
 

Boa tarde, eu tenho uma planilha que é baseada em uma lista de clientes na coluna A, dependendo do sexo na coluna B, ele saúda o cliente de acordo com o gênero, seus e-mails para contato na coluna C que será utilizado na criação do e-mail individual, e da coluna D em diante (originalmente até a Z) por intermédio de uma condição de verdade ou mentira, anexa a quantidade de fundos que tal cliente tem, ao apertar enviar e-mails ele roda fazendo de linha a linha.

funcionava sem problemas até a coluna Z de fundos, mas hj como estou trabalhando com mais fundos habilitados, tentei seguir a lógica da planilha colocando mais condicionantes no início da macro, mas a macro não roda até o final. não estou entendendo, e infelizmente, através dos materiais que eu colhi na internet, não consegui resolver. estou desesperado. rs

Poderiam me ajudar?????????????????

coloquei comentários

'fui obrigado a quebrar as linhas colocando o _ no final delas pq eram muitos fundos e todos não cabiam na mesma linha.

Sub EnviarEmail(ByVal lEmail As String, ByVal lMsg As String, ByVal lSexo As String, ByVal Adamiprev As String, ByVal Adammadv As String, ByVal AdammacroII As String, ByVal Adammsadv As String, ByVal AdammstrII As String, ByVal Alaskabins As String, ByVal Arxden As String, ByVal Atmosaco As String, ByVal AZQatot As String, ByVal AZQaco As String, ByVal AZQluc As String, ByVal AZQpicon As String, _
ByVal AZQtret As String, ByVal Bogarival As String, ByVal Bogariviprev As String, ByVal BTGPccorp As String, ByVal BTGPydi As String, ByVal Icatusabs As String, ByVal JGPcor As String, ByVal JGPcadv As String, ByVal JGPcpaxseg As String, ByVal JGPequ As String, ByVal JGPstr As String, ByVal JGPs As String, ByVal Kadimaxsprev As String, ByVal MilesvirI As String, ByVal MilesviIprev As String, _
ByVal Oceanalbia As String, ByVal Painerashed As String, ByVal Paineirashii As String, ByVal Portofirdi As String, ByVal Safrapmult As String, ByVal sf2tcash As String, ByVal Sharpevfee As String, ByVal Sharpevinst As String, ByVal Sharpiafee As String, ByVal Sharplbia As String, ByVal Sharpls2x As String, ByVal SPXgadv As String, ByVal SPXliprev As String, ByVal Ventorhed As String, _
ByVal VERDEiprev As String, ByVal VERDElb70aspseg As String, ByVal VERDEsadv As String, ByVal VERDEsaxpseg As String, ByVal VERDEulbias As String, ByVal Vincicesadv As String, ByVal Vistafia As String, ByVal Vistamult As String)

    
    Dim OutlookApp As Object 'importando outlook
    Dim OutlookMail As Object 'importanto propriedades de mensagem
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    
    With OutlookMail
        .Display
    End With
    Signature = OutlookMail.HTMLBody
    
'adicionei mais outro fundos como no primeiro arquivo abaixo
    Sexo = lSexo
    Adamiprev = lADAMiprev
    Adammadv = lADAMmadv
    AdammacroII = lAdammacroII
    Adammsadv = lADAMmsadv
    AdammstrII = lADAMmstrII
    Alaskabins = lALASKAbins
    Arxden = lARXden
    Atmosaco = lATMOSaco
    AZQatot = lAZQatot
    AZQaco = lAZQaco
    AZQluc = lAZQluc
    AZQpicon = lAZQpicon
    AZQtret = lAZQtret
    Bogarival = lBOGARIval
    Bogariviprev = lBOGARIviprev
    BTGPccorp = lBTGPccorp
    BTGPydi = lBTGPydi
    Icatusabs = lICATUsabs
    JGPcor = lJGPcor
    JGPcadv = lJGPcadv
    JGPcpaxseg = lJGPcpaxseg
    JGPequ = lJGPequ
    JGPstr = lJGPstr
    JGPs = lJGPs
    Kadimaxsprev = lKADIMAxsprev
    MilesvirI = lMILESvirI
    MilesviIprev = lMILESviIprev
    Oceanalbia = lOCEANAlbia
    Painerashed = lPAINERAShed
    Paineirashii = lPAINERAShii
    Portofirdi = lPORTOfirdi
    Safrapmult = lSAFRApmult
    sf2tcash = lSF2tcash
    Sharpevfee = lSHARPEvfee
    Sharpevinst = lSHARPEvinst
    Sharpiafee = lSHARPiafee
    Sharplbia = lSHARPlbia
    Sharpls2x = lSHARPls2x
    SPXgadv = lSPXgadv
    SPXliprev = lSPXliprev
    Ventorhed = lVENTORhed
    VERDEiprev = lVERDEiprev
    VERDElb70aspseg = lVERDElb70aspseg
    VERDEsadv = lVERDEsadv
    VERDEsaxpseg = lVERDEsaxpseg
    VERDEulbias = lVERDEulbias
    Vincicesadv = lVINCIcesadv
    Vistafia = lVistafia
    Vistamult = lVistaMult

    
   'alterei do caro, para prezado
    If Sexo = "M" Then 'Define a Forma de Tratamento
    
        Tratamento = "Prezado " & lMsg & "," 'Define a forma de tratamento masculina
    
    Else
        Tratamento = "Prezada " & lMsg & "," 'Define a forma de tratamento feminina
    
    End If
 
    
'abaixo eu copiei a lógica que estava, para caso coluna em verdade de determinado fundo, buscar em determinada pasta no server a lamina correspondente
    
    With OutlookMail
    'Email do destinatário
        .To = lEmail
    'Título do Email
        .Subject = "Relatório Mensal"
        .HTMLBody = Tratamento & "<br><br> Seguem os relatórios mensais disponíveis com os resultados dos seus fundos de investimentos no mês de " & Range("i2").Value & "/" & Range("i3").Value & ". <br><br> Atenciosamente, " & Signature
   

 'Anexos
        If Adamiprev = 1 Then 'anexa ou não este arquivo. Como a macro está mudando do meu computador para o de vocês, é preciso que o endereço do anexo seja alterado para que o programa funcionar adequadamente.
            .Attachments.Add ("\192.168.0.10DadosEOPMacro l RelatóriosRelatórios Mensais2019.11Relatório Mensal l Adam Icatu Prev FIC FIM (2019.11).pdf")
        Else
        End If
        
        'e assim pra cada arquivo nas pastas da rede

        
        .Send
    End With
    
    
    'Limpa as variáveis
    Set iMsg = Nothing
    Set iConf = Nothing
    
  
  Range("E2").Value = Now()
    
    
    
End Sub
   
'está dando erro a partir da linha de baixo tb.
Public Sub EnviarEmails() 'Função para atribuir um while e verificar as linhas preenchidas. Este código permitirá que a macro funcione mesmo que novos emails sejam adicionados.
    Dim iTotalLinhas, i As Integer
    
    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1 'Total de linhas igual a ultima linha preenchida


    i = 6 'primeira linha preenchida com os dados dos cotistas
    While i < iTotalLinhas 'este código fará com que percorra as linhas até que aconteça algum evento. Este evento é quando a linha atual i deixar de ser menor que o total de linhas preenchidas. Portanto, quando chegar a uma linha vazia, não será enviado emails
        'preciso colocar as colunas após a coluna Z, por enquanto até o AZ
        EnviarEmail Range("C" & i).Value, Range("A" & i).Value, Range("B" & i).Value, Range("D" & i).Value, Range("E" & i).Value, Range("F" & i).Value, Range("G" & i).Value, Range("H" & i).Value, Range("I" & i).Value, Range("J" & i).Value, Range("K" & i).Value, Range("L" & i).Value, Range("M" & i).Value, Range("N" & i).Value, Range("O" & i).Value, Range("P" & i).Value, Range("Q" & i).Value, Range("R" & i).Value, Range("S" & i).Value, Range("T" & i).Value, Range("U" & i).Value, Range("V" & i).Value, Range("W" & i).Value, Range("X" & i).Value, Range("Y" & i).Value, Range("Z" & i).Value
     
         'PRECISO TB ADICIONAR AS COLUNAS QUE REPRESENTAM OS NOVOS FUNDOS, MAS ESTÁ DANDO ERRO, SEGUE ABAIXO
         'Range("AA" & i).Value , Range("AB" & i).Value, Range("AC" & i).Value, Range("AD" & i).Value, Range("AE" & i).Value, Range("AF" & i).Value, Range("AG" & i).Value, Range("AH" & i).Value, Range("AI" & i).Value, Range("AJ" & i).Value, Range("AK" & i).Value, Range("AL" & i).Value, Range("AM" & i).Value, Range("AN" & i).Value, Range("AO" & i).Value, Range("AP" & i).Value, Range("AQ" & i).Value, Range("AR" & i).Value, Range("AS" & i).Value, Range("AT" & i).Value, Range("AU" & i).Value, Range("AV" & i).Value, Range("AW" & i).Value, Range("AX" & i).Value, Range("AY" & i).Value, Range("AZ" & i).Value
         
         
        
        'Roda a função da primeira macro, que é enviar emails.

        i = i + 1 'Passa para a linha de baixo
        Position = i
    Wend 'fim do loop
    
    MsgBox "E-mails enviados com sucesso!"
    
    
End Sub
 
Postado : 08/01/2020 12:19 pm
 yera
(@yera)
Posts: 1
New Member
 

Raphael, tudo bom?

Qual erro aparece? Consegue enviar a planilha com algumas linhas de exemplo com dados fictícios?

Abraço.

 
Postado : 09/01/2020 2:46 pm