Buscar nome exato do arquivo

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Buscar nome exato do arquivo

Mensagempor davidmgbr » Ter Jul 16, 2019 5:30 pm

Boa Tarde amigos ,

Sou iniciante no VBA poderia me ajudar no codigo abaixo por favor.

Esse codigo uso para enviar emails com anexos diferente para cada contato , o problema que da e se por exemplo o nome do arquivo for 399 e da outra pessoa for 398 ele entende esse '39' e envia dois arquivos para cada contato , como faco para que o codigo busque somente o nome exato do arquivo.
Código: Selecionar todos
Dim OutApp As Object
    Dim OutMail As Object
    Dim ws As Worksheet: Set ws = Sheets("Emails")
    Dim enviad As String
    enviad = 0
    'Path do anexo ao email a ser enviado
    Set Rng = ws.Range(Range("J2"), ws.Range("J" & Rows.Count).End(xlUp))
    For Each cell In Rng
        Rw = cell.Row
        Path = cell.Value
        If Path <> "" Then
            'Obtem a informacao do path
            Dte = Right(Path, Len(Path) - InStrRev(Path, "\"))
            'obtem o  nome do arquivo na (Coluna A)
            strNomeArq = cell.Offset(0, -9).Value
            ' endereco de Email
            ToNome = cell.Offset(0, -5).Value
            ccTo = RecpList
            'Obtem o nome
            FirstNme = cell.Offset(0, -7).Value
            Surname = cell.Offset(0, -6).Value
            'faz loop através do caminho dos arquivos ver se existe
            ClientFile = Dir(Path & "\*.*")
            Do While ClientFile <> ""
                If InStr(ClientFile, strNomeArq) > 0 Then
                    AttachFile = Path & "\" & ClientFile
                    MailBody = "Prezado " & FirstNme & vbNewLine & vbNewLine _
                               & "Segue em anexo uma cópia do Holerite  " & Dte _
                               & vbNewLine & vbNewLine _
                               & "Nome do Arquivo: " & cell.Offset(0, -9).Value _
                               & vbNewLine & _
                               "Departamento: " & cell.Offset(0, -8).Value _
                               & vbNewLine & _
                               "Funcionario: " & FirstNme & " " & Surname _
                               & vbNewLine & _
                               "Obrigado" & _
                               Signature    '(asinatura)
                    Set OutApp = CreateObject("Outlook.Application")
                    Set OutMail = OutApp.CreateItem(o)
                    With OutMail
                        .Subject = "Holerite de - " & Dte
                        .To = ToNome
                        .cc = ccTo
                        .Body = MailBody
                        .Attachments.Add (AttachFile)
                        '.Display
                        .Send
                        enviad = enviad + 1
                    End With
                    Set OutMail = Nothing
                    Set OutApp = Nothing
                    RecpList = ""
                End If
                ClientFile = Dir
            Loop
        End If
    Next
    If enviad = 0 Then
    MsgBox "Nenhum email enviado", 64, "AVISO"
    Else
    MsgBox enviad & " enviados da sua lista de emails!", 0, "SUCESSO"
    End If
Editado pela última vez por Adalberto7 em Ter Jul 16, 2019 7:18 pm, em um total de 2 vezes.
Razão: Códigos VBA devem ser postados utilizando a tag Code - O título deve ter apenas um resumo da dúvida - Leia as regras do fórum
davidmgbr
Membro
Membro
 
Mensagens: 1
Registrado em: Ter Jul 16, 2019 5:27 pm
Has thanked: 0 time
Have thanks: 0 time

{ SO_SELECT }

Re: Buscar nome exato do arquivo

Mensagempor wagner » Qua Jul 17, 2019 1:37 pm

davidmgbr,

Boa tarde!

Seja muito bem vindo (a) ao fórum.

DICAS para aproveitar ao máximo o fórum e sempre manter o mesmo de forma organizada, sugiro ler os tópico da regras abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Algumas solicitações especiais que pedimos, por gentileza, ficar atento:
1 - Não inserir no titulo de suas postagens expressões como Help, Ajuda, etc. O título deve ser um resumo da sua necessidade para que outras pessoas que tenham a mesma dúvida possam efetuar a pesquisa e achar como foi resolvido.
2 - Não insira em suas mensagens frases todas escritas em letras maiúsculas. Isso, na Internet, é compreendido como gritos e muitos usuários sequer respondem somente por esse fato!
3 - Insira sempre um arquivo exemplo compactado com .ZIP aqui mesmo no fórum (suspenso temporariamente. Site passando por manutenção). Existe, logo abaixo da caixa de mensagens, uma aba chamada "Adicionar um anexo" para essa finalidade. O arquivo exemplo deve ser pequeno, com apenas 5 linhas no máximo, compactado com .ZIP e ter o mesmo layout (nome do arquivo, nome das abas/guias/folhas, mesma linha/coluna onde os dados se iniciam) do arquivo original. Links de arquivos enviados para sites de compartilhamento de arquivos, muitas vezes são bloqueados pelas empresas, por conterem muitos vírus. Alguns usuários que acessam o fórum a partir de empresas não conseguem baixar tais arquivos.
4 - Não utilize a ferramenta CITAR para inserir o inteiro teor das mensagens que lhe são encaminhadas como resposta. Citações, se estritamente necessárias ao entendimento da mensagem que você quer enviar, devem ser apenas de pequenos trechos das mensagens.
5 - Se for postar códigos VBA aqui no fórum, utilize a ferramenta CODE localizada logo no início da caixa de mensagens (quinto botão da esquerda para a direita). As linhas de código devem ficar entre as palavras "CODE e /CODE".
6 - Agradeça sempre às pessoas que lhe responderam e às mensagens que atenderam a necessidade de sua demanda. Esse agradecimento deve ser clicando na mãozinha que fica localizada ao lado da ferramenta CITAR. Lembre-se: o fórum é gratuito e esse é o único incentivo para as pessoas que prestam ajuda. Você pode agradecer a quantos usuários quiser.
7 - O título ou o texto das mensagens postadas não devem ser escritos todo em letras maiúsculas. Na internet, tudo escrito em letras maiúsculas é interpretado como gritos e muitos usuários sequer olham para esse tipo de mensagem.
8 - Não Utilize o Botão CITAR para efetuar as suas respostas. Para fazer isso use apenas o Botão RESPONDER.
9 - Faça o upload do seu arquivo para um site de armazenamento e compartilhamento de arquivos (google drive, sendspace, etc) e cole o link aqui.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5502
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 100 times
Have thanks: 2331 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes