Ir ao conteúdo
  • Cadastre-se

Felipe Carvalho_748684

Membro Pleno
  • Posts

    27
  • Cadastrado em

  • Última visita

posts postados por Felipe Carvalho_748684

  1. Dá uma olhada se é isso mesmo que você precisa.

    Boa noite,

    Perdão a demora, deixei esse projeto de lado um pouco.

    Apliquei sua ideia na planilha. Eu tinha feito de um jeito, mas ficou MUITO grande a formula, e dessa maneira tem uma INFO a mais. hehe

    Muito OBRIGADO!

     

    Eu já quase conclui essa planilha, mas apareceu outra demanda para ela.... eu precisaria que de alguma forma ela marcasse de amarelo datas que faltam 10, 30, 120 dia para vencer... deve ter isso em formatação condicional mas não consegui.

     

    Fiz um código VBA mas conflita muito.

     

    Enfim, desde já obrigado.

  2. Bom dia pessoal,

     

    Estou com uma planilha de controle de vencimento de documentações, preciso dinamizar ela com envio e-mails automáticos e tudo mais, mas estou parado na criação de um status dinâmico:

     

    Cada linha traz uma "conta" e as colunas os tipos de contas (A,B,C...) onde cada um delas tem seu vencimento.

    Primeiro, na coluna status (D) eu precisaria que informasse "Conforme" com todas datas OK e "Não conforme" se algumas das datas não estiver OK.

    Segundo, na coluna Info (E) descreva qual linha de documentação está vencida A, B, C...

     

    Consegui alguns embolsos para o primeiro pedido, mas o segundo eu nunca vi. Não sei se será possível.

    A Planilha terá poucas formulas, então podem fazer VBA ou formulas mesmo.

     

    Desde já obrigado.

    TESTE.zip

  3. Boa atrde pessoal,

     

    Resolvido. Obrigado Mikel Silveira Fraga - TVForum

     

    Private Sub Worksheet_Change(ByVal Target As Range)

        'Essas coordenadas correspondem a Range "B4:D1000".
        If (Target.Row >= 4 And Target.Row <= 1000) And _
            (Target.Column >= 2 And Target.Column <= 4) Then
       
            Dim intLinha As Long
           
            intLinha = Target.Row
       
            Range("A" & intLinha).Value = Application.InputBox("Número de contato: " & _
                                                    Plan1.Range("H" & intLinha).Value & " ")
       
        End If

    End Sub
  4. Pessoal, arrumei metade da dúvida:

    Falta agora fazer com que o texto que aparece da célula seja respectivo ao da linha modificada, e a entrada seja respectiva:

     

    Exemplo: Se eu modifico a B20, na mensagem aparece a célula H20 e a entrada na célula A20 e assim por diante.

     

    Vejam o código:

     

     

    Private Sub Worksheet_Change(ByVal Target As Range)

       
        Dim KeyCells As Range

        Set KeyCells = Range("B4:D1000")
        
        If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then
            
    Range("A4").Value = Application.InputBox("Número de contato: " & Plan1.Range("H5").Value & " ")
           
        End If
    End Sub

  5. Bom dia pessoal,

     

    Tenho esse código VBA entre muitos outros em minha planilha, mas ainda sou aspirante e demoro a desenvolver.

    Preciso trocar o final onde chama uma MsgBox para um ImputBox e o texto informativo aparecer um conteúdo de uma célula.

     

    Ela faz basicamente isso:

    1. Ao modificar o trecho B4:D10000 é ativada a MsgBox.

    2. OK finaliza ela

     

    Quero assim:

    1. Ao modificar o trecho B4:D10000 é ativada a InputBox

    2. Na input quero que apareça os dados da coluna "H" com um texto de introdução, tipo: "O pedido é: -dados da H"

    3. Ao inserir uma anotação na caixa de texto, esse texto seja escrito na coluna A.

    4. Botão OK aplica, botão cancelar não faz nada.

     

    SENHA DO VBA: TAOSSO10

     

     

    Dim KeyCells As Range

        Set KeyCells = Range("B4:D1000")
        
        If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then
            
         MsgBox "Cobrança feita!", vbInformation, "Status"

    Cópia de Plan_TESTE2.zip

  6. Boa tarde,

     

    Pessoal, tenho uma planilha de cobrança e preciso alimenta-la sempre. Esses dados vem de um sistema que gera outras planilhas, hoje eu vinculo as planilhas com "colar especial", mas assim ela sobrescreve e eu preciso que vá dando continuidade.

     

    Eu anexei a planilha principal e as outras.

    Explicando melhor, eu preciso que na aba preparação iniciando do B2 os itens das demais planilha sejam sendo importados. porém sem prescrever, sempre descendo a linha sem mexer na anterior, os numero de itens podem variar entre elas, uma pode ter 30, outra 60 e assim por diante.

     

    A principal é a "Follow-up Inteligente - Auto - BW" e as outras são os bancos de dados.

     

     

    Teste.zip

  7. Boa noite galera!

     

    Não sou tão experiente em VBA, já pesquisei mas não achei, então lá vai.

     

    Preciso de uma Macro assim:

     

    1 - Ir ao Outlook.
    2 - Pesquisar em todo o e-mail, não só na inbox
    3 - Localizar uma mensagem ( Pelo email ou pelo Assunto)
    4 - Abrir a Mensagem acima
     

    Planilha modelo em anexo. O termo de pesquisa é a célula H, quero colocar um pequeno botão ao lado da célula H para ativar.

     

    Eu tentei fazer mas não tive sucesso, o mais perto que cheguei está nesse Link http://comunidade.itlab.com.br/eve/forums/a/tpc/f/364609431/m/188602746

     

    Desde já obrigado.

    Modelo - Follow-up.rar

  8. Olá pessoal, estou construindo uma planilha para cobranças (em anexo modelo) e surgiu alguns problemas.

    A coluna D tem um PROCV que compara dados da coluna C com dados na Coluna A(FornecedoresEmail) e copia os respectivos da coluna B(FornecedoresEmail) para ela.

     

    A Matriz de comparação (coluna C) é um resultado de EXT.TEXTO da coluna A onde ele puxa alguns numeros dela. Eu fiz em forma de formulas. porém, a PROCV não "entende" como um dado e não faz sua parte, quando digitado o mesmo número tudo funciona (exemplo na C6).

     

    Como posso resolver?

    Eu pensei em duas formas:

     

    Criar VBA para fazer o papel do EXT.TEXTO ou algum modo que não conheço ainda onde seja resolvido o problema do excel não "usar dados para uma formula de outra formula".

     

    SENHA VBA: TAOSSO10

    teste.zip

  9. Felipe, pelo método q lhe sugeri você pode selecionar a coluna H p/ somente ela ser pesquisada.

    Te garanto q pode ser feito desta forma, mas se você realmente quer complicar sua vida...

     

    Ficou perfeito com o VBA.

    Veja a forma que o Basole sugeriu no anexo.

     

    Obrigado pela ajuda.

     

    Fiz algumas alteraçoes no codigo q postei anteriormente

    Pois somente duplicados consecutivos estava sendo removidos:

     

    Sub Proc_Dupli_Deleta()

    '  Macro identifica valores duplic. na coluna "H" e deleta a linha inteira

        Dim cel As Variant

        Dim rng As Range

        Dim ws As Worksheet

        Dim i, ul As Long

        Application.ScreenUpdating = False

        Set ws = Sheets("plan1")    'AQUI:  Altere de acordo c/ nome sua plan

        ul = ws.Cells(Rows.Count, 8).End(xlUp).row

        Set rng = ws.Range("h4:h" & ul)

        For Each cel In rng

            If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then

                cel.Select

                For i = ActiveCell.row + 1 To ul

                    If ws.Cells(i, "h").Value = cel Then

                        ws.Cells(i, "h").EntireRow.Delete    ' del linha duplicada

                        i = ActiveCell.row

                    Else

                    End If

                    If Application.WorksheetFunction.CountIf(rng, cel) = 1 Then GoTo pxl

                Next

            Else

    pxl:

            End If

        Next

        Application.ScreenUpdating = True

    End Sub

    'Em anexo a planilha teste c/ a codificacao e a macro automatica.

    '* Como o processo está automatico, ao digitar, ou colar um dado que já existe (na coluna H), ao piscar de olhos esse 'valor

    'será deletado.

    'Caso queira deixar manualmente, desabilite a macro no evento :Private Sub Worksheet_Change(ByVal Target As Range) 'e coloque um atalho de teclado ( Alt + F8 -> Em opções ), para executar a macro. 

     

    'abx.

      

     

    Perfeito!

    Obrigado, a planilha e o VBA está cada vez mais potente. kkkkkkkkkkkkk.

    Automatizando!

  10. Felipe, fiz uma sugestao:

    A macro deleta a (s) linha(s) (inteira), caso o valor da celula (da coluna H), for igual a anterior, mantendo somente 1 (um) valor de (H) distinto. 

    Cole em um modulo:

    Sub Proc_Duplicados()

        Dim cel As Variant

        Dim rng As Range

        Dim ws As Worksheet

        Set ws = Sheets("plan1") 'altere aqui de acordo c/ nome sua plan

        Set rng = ws.Range("h4:h" & Cells(Rows.Count, 8).End(xlUp).Row)

        For Each cel In rng

            If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then

                cel.Select

    bk:

                If ws.Cells(ActiveCell.Row + 1, "h").Value = cel Then

                    ws.Cells(ActiveCell.Row + 1, "h").EntireRow.Delete

                    GoTo bk

                Else

                End If

            End If

        Next

    End Sub

     

    Pra ficar 'tomatico' quando. alterar alguma celula: chame a macro no evento:

     

    Private Sub Worksheet_Change(ByVal Target As Range)

    Call Proc_Duplicados

    End Sub

     abx.

     

    Cara, pode aplicar o VBA na planilha teste e me enviar?

    Não estou conseguindo juntar com os códigos já existentes.

    Felipe, pelo método q lhe sugeri você pode selecionar a coluna H p/ somente ela ser pesquisada.

    Te garanto q pode ser feito desta forma, mas se você realmente quer complicar sua vida...

     

    Se selecionar só a H só apaga a H. E isso não adianta para mim.

    Nunca duvide do VBA.

  11. Vagner

     

    Bom dia,

     

    Ainda não está sendo entendido:

     

    Veja cada linha dessa como 1 processo apenas cujo o numero de identificação de cada processo está na coluna H.

    Quando esse numero de identificação da coluna H aparecer duas vezes, toda a linha dele também será idêntica, isso é uma regra. O que quero é eliminar a repetição, dessa forma "unificar" a duplicação, tornando uma só novamente. Isso tudo do jeito rápido e automático do Excel.

  12.  

     

    Tenho uma planilha onde uso a formatação condicional de dados duplicados, sempre quando algum dado da coluna H está duplicado a fonte fica vermelha.

    Para implementar eu preciso que sempre que os dados da H estejam duplicados (ou coloridos também serve), a linha inteira seja unificada em 1 só.

     

    Olá, Felipe.

    O que você quer dizer com o texto acima que pintei de azul?

    Seria estender a Formatação Condicional para as demais colunas da tabela mantendo o critério de duplicidade na coluna "H" ?

     

     

     

     

     

    você está ligado q o Excel tem o comando Remover Duplicadas na aba Dados?

     

     

    Vamos esclarecer.

     

    Cada LINHA é um ciclo de compras, tem um numero de pedido (que nunca em condiçõeos normais se repete) e os outros dados, material, datas, quantidades, nome de fornecedor.

     

    O que quero: Quando esse numero de pedido repetir, todo o ciclo de compra (a linha) seja unificada em 1 novamebnte, ou eliminada a repetição, tanto faz. Sempre levando em consideração o numero que fca na coluna H.

  13. Bom dia pessoal,

     

    Tenho uma planilha onde uso a formatação condicional de dados duplicados, sempre quando algum dado da coluna H está duplicado a fonte fica vermelha.

    Para implementar eu preciso que sempre que os dados da H estejam duplicados (ou coloridos também serve), a linha inteira seja unificada em 1 só.

     

    Eu coloquei a planilha TESTE anexada aqui, não está com todos os dados porque contém informações comerciais, mas dá para ser um modelo.

    Modelo - Follow-up.zip

  14.  

    Oi Felipe!

    Notei que você envia os e-mails um a um, é isso mesmo?

    Não seria melhor se você marcasse todas as linhas para enviar e-mail e depois disparasse de uma vez só?

     

    O código abaixo faz isso, basta você passar os parâmetros necessários.

    Ou faça download da planilha para usar como modelo!

    Sub Enviar_Email(Dest As String, Copia As String, Nome As String, AnexItem As String) 'declara variaveisDim Assunto As String, Msg As String, AnexPath As String 'atribui assuntoAssunto = Range("assunto") 'atribui mensagemMsg = Range("mensagem") 'atribui caminhos dos anexosAnexPath = Range("anexos") & "\" & AnexItem 'verifica se o arquivo existe'Set fs = CreateObject("Scripting.FileSystemObject")'Set a = fs.fileexists(AnexPath) 'inclui o nome de destinatario na mensagemMsg = Replace(Msg, "<%Nome%>", Nome) 'inicia objeto de email do OutlookDim oApp As Outlook.ApplicationDim oMailItem As Outlook.MailItem Set oApp = CreateObject("Outlook.Application")Set oMailItem = oApp.CreateItem(olMailItem) With oMailItem .Subject = Assunto.Body = Msg.To = Dest.CC = CopiaIf Dir(AnexPath) <> "" Then .Attachments.Add (AnexPath).Send End With End Sub Sub Enviar_Tudo() x = 2Do Until Range("A" & x) = ""Enviar_Email Range("B" & x), Range("C" & x), Range("A" & x), Range("D" & x)x = x + 1Loop End Sub

    Abraços

     

    Isso, na minha macro eu vou verificando, digito X e vai enviando. Sem abrir tela no Outlook.

    A escolha foi assim porque é necessaria uma avaliação no follow-up. obrigatóriamente tem que ser semi-automatico.

     

    Mas obrigado, fica a dica para uma melhoria em outro caso.

  15. Consegui, o código ficou bem grande, mas está funcionando:

     

    Private Sub Worksheet_Change(ByVal Target As Range)

     If Target.Column = 2 Then Cells(Target.Row, 5) = Date
     If Target.Column = 3 Then Cells(Target.Row, 6) = Date
     If Target.Column = 4 Then Cells(Target.Row, 7) = Date
     
        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 = "$B$" & linha Then
        If Plan1.Cells(linha, 2) = "X" Then
                
            End If

            With OutMail
                .To = Plan1.Cells(linha, 1)
                .CC = ""
                .BCC = ""
                .Subject = "Título do email"
                .Body = "Prezado(a) " & Plan1.Cells(linha, 1) & "," & vbCrLf & vbCrLf & _
                        "A O.S. " & Plan1.Cells(linha, 7) & " aberta em " & _
                        Plan1.Cells(linha, 2) & " foi concluída." & vbCrLf & _
                        " Veja informações abaixo:" & vbCrLf & _
                        "    Status: " & Plan1.Cells(linha, 6) & vbCrLf & _
                        "    Ação tomada: " & Plan1.Cells(linha, 5) & vbCrLf & vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Help Desk"
                .Display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            On Error GoTo 0

            Set OutMail = Nothing
            Set OutApp = Nothing
        End If
        
        linha = ActiveCell.Row - 1
        If Target.Address = "$C$" & linha Then
        If Plan1.Cells(linha, 2) = "X" Then
                
            End If

            With OutMail
                .To = Plan1.Cells(linha, 1)
                .CC = ""
                .BCC = ""
                .Subject = "Título do email"
                .Body = "Prezado(a) " & Plan1.Cells(linha, 1) & "," & vbCrLf & vbCrLf & _
                        "A O.S. " & Plan1.Cells(linha, 7) & " aberta em " & _
                        Plan1.Cells(linha, 2) & " foi concluída." & vbCrLf & _
                        " Veja informações abaixo:" & vbCrLf & _
                        "    Status: " & Plan1.Cells(linha, 6) & vbCrLf & _
                        "    Ação tomada: " & Plan1.Cells(linha, 5) & vbCrLf & vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Help Desk"
                .Display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            On Error GoTo 0

            Set OutMail = Nothing
            Set OutApp = Nothing
        End If
        
          linha = ActiveCell.Row - 1
        If Target.Address = "$D$" & linha Then
        If Plan1.Cells(linha, 2) = "X" Then
                
            End If

            With OutMail
                .To = Plan1.Cells(linha, 1)
                .CC = ""
                .BCC = ""
                .Subject = "Título do email"
                .Body = "Prezado(a) " & Plan1.Cells(linha, 1) & "," & vbCrLf & vbCrLf & _
                        "A O.S. " & Plan1.Cells(linha, 7) & " aberta em " & _
                        Plan1.Cells(linha, 2) & " foi concluída." & vbCrLf & _
                        " Veja informações abaixo:" & vbCrLf & _
                        "    Status: " & Plan1.Cells(linha, 6) & vbCrLf & _
                        "    Ação tomada: " & Plan1.Cells(linha, 5) & vbCrLf & vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Help Desk"
                .Display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            On Error GoTo 0

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

  16. Bom dia pessoal,

     

    Tenho uma planilha de follow-up de pedidos com um VBA para registro de modificação de células com data e envio de e-mail automático pelo Outlook.

    Hoje ela funciona assim:

     

    Modifico a coluna B, C e D, a data vai para a E, F e G respectivamente.

    Quando coloco o X e dou ENTER na coluna B, um e-mail aparece na tela (só com outlook). Esse e-mail pode ser enviado sem abrir a tela modificando um detalhe nela.

     

    O que quero fazer é que na coluna C e D também envie e-mails. E que sejam independentes, o primeiro X (a primeira cobrança) vou fazer um aviso normal, a segunda um e-mail mais forte e a terceira um aviso de cancelamento.

     

    A Macro está abaixo e um modelo da planilha (não é a original mas pode ser vista) está anexado.

     

    Desde já obrigado.

     

     

    Private Sub Worksheet_Change(ByVal Target As Range)

     If Target.Column = 2 Then Cells(Target.Row, 5) = Date
     If Target.Column = 3 Then Cells(Target.Row, 6) = Date
     If Target.Column = 4 Then Cells(Target.Row, 7) = Date
     
        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 = "$B$" & linha Then

            If Plan1.Cells(linha, 6) = "Concluído" Then
                
            End If

            With OutMail
                .To = Plan1.Cells(linha, 1)
                .CC = ""
                .BCC = ""
                .Subject = "Título do email"
                .Body = "Prezado(a) " & Plan1.Cells(linha, 1) & "," & vbCrLf & vbCrLf & _
                        "A O.S. " & Plan1.Cells(linha, 7) & " aberta em " & _
                        Plan1.Cells(linha, 2) & " foi concluída." & vbCrLf & _
                        " Veja informações abaixo:" & vbCrLf & _
                        "    Status: " & Plan1.Cells(linha, 6) & vbCrLf & _
                        "    Ação tomada: " & Plan1.Cells(linha, 5) & vbCrLf & vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Help Desk"
                .Display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            On Error GoTo 0

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

     

    Modelo - Follow-up.zip

  17. Felipe

     

    Para falar a verdade nem olhei na tua primeira postagem, porque normalmente, as pessoas anexam na mesma mensagem do aviso.

    Vamos ver se eu entendi o que você deseja:

     

    Copie e cole está fórmula célula R4 da Plan1 e arraste para as demais linhas da coluna.

    =SEERRO(PROCV(Q4;Plan2!$A$1:$B$1000;2;0);"Não exsite Endereço")

     

    Dê retorno.

     

    Se a resposta foi útil, clique em Curtir.

     

    []s

    Tranquilo, eu postei lá porque poderia ser que outra pessoa também tivesse uma ideia.

     

    Em relação a macro, funcionou MUITO bem. A planilha original não foi postada porque tem muitos dados comerciais.

    Funcionou perfeitamente!

     

    Essa planilha tem muita macro e programação VBA, na verdade sou melhor nisso. Quando estiver pronta eu pretendo postar com os detalhes dela, na rede não tem uma planilha de follow-up de pedidos de compra tão detalhada e com tantas ferramentas quanto essa que estou fazendo.

    Aqui tem alguma área para isso?

     

    No mais, muito obrigado!

    Att

     

    Felipe Carvalho.

    Felipe, apesar de solicitar uma formula, segue opção c/ macro: 

     

    Sub Busca()

        Dim ws1, ws2 As Worksheet

        Dim i As Long: i = 4

        Dim ul, ul2 As Long

        Dim o que As String

        Set ws1 = Sheets("plan1")

        Set ws2 = Sheets("plan2")

        ul = ws1.Cells(Rows.Count, "q").End(xlUp).Row

        ul2 = ws2.Cells(Rows.Count, "a").End(xlUp).Row

        With ws2.Range("a1:a" & ul2)

            For i = i To ul

                o que = ws1.Range("q" & i)

                Set C = Nothing

                Set C = .Find(o que, , LookIn:=xlValues, lookat:=xlWhole)

                If Not C Is Nothing Then

                    firstAddress = C.Address

                    Do

                        ws1.Range("r" & i) = C.Offset(0, 1).Value

                        Set C = .FindNext©

                    Loop While Not C Is Nothing And C.Address <> firstAddress

                Else

                    ws1.Range("r" & i) = "Não existe endereço"

                End If

            Next

        End With

    End Sub

     

    Editado: Nao havia entendido o que queria dizer c/ Bx, mas ja corrigi o codigo acredito q agora está de acordo.

                 Desconsidere o anexo, ou copie o codigo acima e cole no modulo1, substituindo o presente.

    Também funcionou bem!

    Mas vou ficar com a formula. A planilha original tem MUITO VBA, sei que não tem nada a ver uma coisa com a outra. Mas eu quebrei muito a cabeça fazendo VBA para envio automático de e-mail, letras maiúsculas, data e hora automática, importar exportar, não quero mais tocar nas linhas de cód.

     

    Muito obrigado pela ajuda, tenho certeza que vai cair como uma luva em futuras plans e outras pessoas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!