Ir ao conteúdo
  • Cadastre-se

Bruno_BRP

Membro Júnior
  • Posts

    11
  • Cadastrado em

  • Última visita

posts postados por Bruno_BRP

  1. 11 minutos atrás, FMattos disse:

    existe um evento chamado OnTime ( Application.OnTime) onde você pode determinar um horário específico para executar seu procedimento.

    Abra o editor VBA e clique em Ajuda, Digite Application.OnTime e leia para ter melhores exemplos.

     

    Vi isso no Social MSDN, pode ser que ajude.

     

    Não consegue conversar com o pessoal da TI para liberar o agendador de tarefas? é uma ferramenta nativa do SO, não vejo problema na utilização.

     

     

    vou tentar ver algo sobre esse ontime e tambem com o TI 

     

    obrigado por enquanto 

  2. bom dia !

     

    Tenho uma macro que envia o email informando uma situação dentro do Excel mas tenho que ficar abrindo o arquivo todo dia para que isso ocorra , tenho o codigo que estou usando para isso acontecer , gostaria de uma forma de automatizar esse envio para todo dia entre 8 e 9 horas da manha saísse essa informação para os remetentes 

     

    como uso o outlook diariamente queria fazer uma macro no próprio para abrir o arquivo e ativar a macro e apos o envio fechar o arquivo 

     

     

     

    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 = "$F$" & linha Then

            If Plan1.Cells(linha, 6) = "1" Then
                texto = "Prezado(a) " & Plan1.Cells(3, 1) & "," & vbCrLf & vbCrLf & "Faltam" & " " & Plan1.Cells(2, 4) & " Dias para o inicío de suas férias em caldas novas" & vbCrLf & vbCrLf & "#Cerveja" & vbCrLf & vbCrLf & "#Viagem" & vbCrLf & vbCrLf & "#Aguas quentes "
                
                           
                      
            End If

            With OutMail
                .To = Plan1.Cells(linha, 1)
                .CC = ""
                .BCC = ""
                .Subject = "Férias em Caldas Novas"
                '.HTMLBody = texto
                .Body = texto
                'send
                .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

     

     

     

     

     

     

     

     

    alguém pode me dar uma ajuda 

     

    obrigado 

     

     

     

  3. obrigado no momento , outra questão se puder me ajudar 

     

    no lugar de range("a1"). gostaria de usar uma variavel tipo activecell.value e não estou conseguindo 

     

    para que eu quero isso 

     

    para cada coluna eu tenho um cabeçalho em diferentes posições ao longo das abas em que vou estar copiando 

     

    por tanto quero fazer uma ação em que se A1 = A1 da outra coluna ele me copia a coluna toda e cola na que vou montar a lista , feito isso vou para a coluna B1 e B2 se forem iguais fazer o mesmo recurso se não pular ate serem iguais com isso vou estar montando minha lista sem estarem fora de coluna 

     

    um pouco complexo eu falando mas pode dar certo 

     

    abaixo um exemplo 

    Sub XXX()Workbooks("BD_02_Atualizado - Cópia.xlsm").ActivateRange("a1").SelectWorkbooks("BD2 Matriz.xlsx").ActivateRange("a1").SelectDox = ActiveCell.Activatea = Workbooks("BD_02_Atualizado - Cópia.xlsm").ActiveSheet.Range.Valueb = Workbooks("BD2 Matriz.xlsx").ActiveSheet.Range.ValueIf a = b ThenEnd Ifc = c + 1Workbooks("BD_02_Atualizado - Cópia.xlsm").ActivateActiveCell.Offset(0, c).Range("A1").SelectWorkbooks("BD2 Matriz.xlsx").ActivateActiveCell.Offset(0, c).Range("A1").SelectLoopEnd Sub
  4. Bom dia a todos !!!

     

     

    estou montando uma planilha que me trás as informações contidas em uma outra planilha só que em varias abas, retornando as para a planilha criada uma em baixo da outra tipo uma unica lista. isso ja esta acontecendo e esta bom o problema é que o meu cabeçalho não bate com alguns dentro das abas que estou fazendo esse processo deixando minha lista toda bagunçada.

     

     

    minha pergunta é !!

     

    como posso fazer uma consulta em outra planilha e ver se na mesma coluna é igual a minha e então copiar a coluna toda e jogar na mesma coluna da minha planilha formando uma lista com todas as abas 

     

     

    usei de inicio o cells.find mas não esta dando muito certo ou não estou sabendo usar 

     

    pensei em algo do tido 

     

    if Workbooks("BD_02_Atualizado.xlsm").Range(a1).value = Workbooks(Linta.xlsm").Range(a1).value then , mas não funciona desta forma.

     

    sou novo no VBA então não entendo muito bem das formas de execução

     

     

    alguem pode me ajudar 

     

     

  5. bom dia !

     

    Estou com uma duvida em como uso o "thisworkbook.name"

     

    no meu caso tenho duas planilhas que mudam de nome diariamente e com isso não consigo usar o sheets("xxx").select

     

     

    com o thisworkbook.name identifico a planX mas quando estou no outro arquivo executando o restante da macro ele identifica a planY como sendo igual a planX

     

    quero usar essa nomenclatura para para usar "X;Y" como referencia para mudar de arquivo.

     

     

    alguém pode me ajudar 

     

     

    Exemplo do que quero que aconteça 

     

     

    Sub teste()''INICIO DA MACROSem_parar = ThisWorkbook.Name'''' ABRE o BD 01''x = Range("A1") + 1Dim Path As StringDim D As StringDim M As StringDim A As StringDim File1 As StringPath = "F:\Transporte\Banco de Dados\BD1 Controle de Cargas\BD01\2015\07_Julho\BD1 01 a "D = Format(Now, "DD")M = "." & Format(Now, "mm") & "."A = Format(Now, "yyyy") & ".xlsx"File1 = Path & nome & D & M & AWorkbooks.Open Filename:=File1         Range("A1").Activate                  ''' NESTE PONTO QUERO IDENTIFICAR QUAL É O MEU WORKBOOK         bd01 = ThisWorkbook.Name         ActiveCell.Offset(0, 0).Range("A1:br1").Select         Range(Selection, Selection.End(xlDown)).Select         Selection.Copy''''' COLA NO ARQUIVO DO SEM PARAR              Workbooks("planX").Activate           Range("A1").Activate           Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _      :=False, Transpose:=False           Range("A1").Activate''''' Fecha BD01             Workbooks("planY").Activate           Workbooks("plannY").Close FalseEnd Sub
  6. Segue exemplo que cria a pasta backup caso nao exista e a funcao que cria backup

     

    Sub CriaPasta_Backup()

        On Error Resume Next

        Dim fso As Object

        Set fso = CreateObject("Scripting.FileSystemObject")   

        If fso.FolderExists(ThisWorkbook.path & "\BACKUP") Then    ' verifica se ja existe a pasta

        Else: MkDir ThisWorkbook.path & "\BACKUP"    ' se nao existir cria

        End If

    End Sub

    Function BackXls()

        Dim CopiaSegura As Object

        Dim Caminho As String

         MyXlsPath = ThisWorkbook.path & "\" & ThisWorkbook.Name

        Caminho = ThisWorkbook.path & "\BACKUP\"    'Nome da pasta e nome de inicio para o banco de backup

        Set CopiaSegura = CreateObject("Scripting.FileSystemObject")

        CopiaSegura.CopyFile MyXlsPath, Caminho & Format(Now, "_ddmmyyyy") & ".XLSM"

    End Function

     

     

    é quase isso que quero que aconteça 

     

    dentro da minha planilha na celula c38 tenho uma formula que faz uma contagem numérica

     

    quero que este numero seja meu arquivo 

     

    ficaria essa sequencia 

     

    backup > Mês > Recibo 01.pdf

     

    fiz um teste nas linhas que me passou, mas o que eu realmete necessito é que 

     

    se não tem criar arquivo 

     

    se tem achar o arquivo e salvar dentro do mês o PDF

     

     

    ate gerar o PDF eu estou conseguindo , o problema é que não estou conseguindo fazer gerar uma pasta com o mês antes 

    é quase isso que quero que aconteça 

     

    dentro da minha planilha na celula c38 tenho uma formula que faz uma contagem numérica

     

    quero que este numero seja meu arquivo 

     

    ficaria essa sequencia 

     

    backup > Mês > Recibo 01.pdf

     

    fiz um teste nas linhas que me passou, mas o que eu realmete necessito é que 

     

    se não tem criar arquivo 

     

    se tem achar o arquivo e salvar dentro do mês o PDF

     

     

    ate gerar o PDF eu estou conseguindo , o problema é que não estou conseguindo fazer gerar uma pasta com o mês antes 

     

     

     

     

    Segue exemplo que cria a pasta backup caso nao exista e a funcao que cria backup

     

    Sub CriaPasta_Backup()

        On Error Resume Next

        Dim fso As Object

        Set fso = CreateObject("Scripting.FileSystemObject")   

        If fso.FolderExists(ThisWorkbook.path & "\BACKUP") Then    ' verifica se ja existe a pasta

        Else: MkDir ThisWorkbook.path & "\BACKUP"    ' se nao existir cria

        End If

    End Sub

    Function BackXls()

        Dim CopiaSegura As Object

        Dim Caminho As String

         MyXlsPath = ThisWorkbook.path & "\" & ThisWorkbook.Name

        Caminho = ThisWorkbook.path & "\BACKUP\"    'Nome da pasta e nome de inicio para o banco de backup

        Set CopiaSegura = CreateObject("Scripting.FileSystemObject")

        CopiaSegura.CopyFile MyXlsPath, Caminho & Format(Now, "_ddmmyyyy") & ".XLSM"

    End Function

     

     

    o que fiz ate o momento foi isso, se tem uma pasta ele ja salva o arquivo se não tem ele cria a pasta e salva , agora queto deixar os arquivos salvos dentro do mes em uma pasta por mes dentro de backup

     

    obrigado 

     

     

     

    'CRIA O PRIMEIRO ARQUIVO SE NÃO TIVER
    On Error Resume Next
    If Len(Dir("C:Recibos", vbDirectory) & "") > 0 Then
    '    MsgBox "Você está tentando criar um diretório que já existe"
    Else
        If Len(Dir("C:Recibos", vbDirectory) & "") = 0 Then
        MkDir "C:\Recibos\"
     
       MsgBox "Backup em PDF ficada no C:\Recibos\"
    End If
     
    End If
     
     
    'SALVA O ARQUIVO EM PDF NA PASTA ESCOLHIDA
     
    Dim nome As String
    Dim endereco As String
     
    'E O LOCAL ONDE SALVA O ARQUIVO MAIS O NOME DO ARQUIVO E O NUMERO DO PEDIDO
     
    nome = "C:\Recibos\" & Range("c38").Value & ".pdf"
     
    'LINHAS SELECIONADAS QUE APARECERAM NO PDF
     
    ActiveSheet.Range("C3:I38").ExportAsFixedFormat Type:=xlTypePDF, Filename:=nome

    Obrigado a todos , estou fechando este post pois chequei no meu objetivo 

     

     

    segue 

     

     

    Private nova_pasta()
     
    Dim Path As String
    Dim D As String
    Dim File1 As String
    Path = "C:\Recibos\"
    D = Format(Now, "MMMM") & "\"
    File1 = Path & nome & D
     
    On Error Resume Next
    If Len(Dir((File1), vbDirectory) & "") > 0 Then
    Else
        If Len(Dir((File1), vbDirectory) & "") = 0 Then
        MkDir "C:Recibos"
        
        MkDir (File1)
     
       MsgBox "Mês de Backup foi alterado C:\Recibos\"
    End If
     
    End If
     
    nome = (File1) & Range("c38").Value & ".pdf"
     
    'LINHAS SELECIONADAS QUE APARECERAM NO PDF
     
    ActiveSheet.Range("C3:I38").ExportAsFixedFormat Type:=xlTypePDF, Filename:=nome
     
    End Sub
     
  7. boa tarde !

     

    Estou usando o codigo abaixo para gerar uma pasta de arquivo do diretorio C:\

     

    esta funcionando ok , gostaria agora de fazer ele gerar uma sub pasta com o mes corrente para manter o backup de registros por mes 

     

    estava pensando em alguma varialvel que eu possa colocar no MkDir e ele entenda isso como um caminho 

     

    quero usar tambem a Celula A1 que contera a informação para gerar esse caminho 

     

    alguma ideia para me ajudar?

     

     

     

     
    On Error Resume Next
    If Len(Dir("C:Recibos", vbDirectory) & "") > 0 Then
    '    MsgBox "Você está tentando criar um diretório que já existe"
    Else
        If Len(Dir("C:Recibos", vbDirectory) & "") = 0 Then
       
        MkDir "C:\Recibos\"
     
     
       MsgBox "Backup em PDF ficada no C:\Recibos\"
    End If
     
    End If
     
  8. bom dia !

     

    gostaria de complementar minha macro com um nome de pasta 

     

     

     

    ex: no meu PC eu defini uma pasta no C: como "Recibos de venda" , se eu abrir este arquivo em outra maquina não terá esta pasta e ira dar erro na macro , não gerando o arquivo 

     

    o que tenho ate agora e esta funcionando e as linhas abaixo 

     

    alguem pode me ajudar?

     

     

    'SALVA O ARQUIVO EM PDF NA PASTA ESCOLHIDA COM O NOME ESCOLHIDO DE UMA CELULA OU MAIS
     
    Dim nome As String
    Dim endereco As String
     
    'E O LOCAL ONDE SALVA O ARQUIVO MAIS O NOME DO ARQUIVO E O NUMERO DO PEDIDO
     
    nome = "C:\Recibos de Venda\" & Range("c38").Value & ".pdf"
     
    'SAO AS SELECIONADAS QUE APARECERAM NO PDF
     
    ActiveSheet.Range("C3:I38").ExportAsFixedFormat Type:=xlTypePDF, Filename:=nome
     
     
     
     
     

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!