Ir ao conteúdo
  • Cadastre-se

Gilberto_Silva

Membro Júnior
  • Posts

    17
  • Cadastrado em

  • Última visita

posts postados por Gilberto_Silva

  1. @Midori

     

    Na pratica estou fazendo alguma coisa errada rsrs..

     

    As planilhas que não serão excluídas são:

    Base de Dados, Controle de Conciliação, COLAR BALANCETE (CSV) e BALANCETE 

    Logo eu informei no código da seguinte maneira:

     

      If UBound(Filter(Exceto, P.Base de Dados, P.Controle de Conciliação, P.COLAR BALANCETE (CSV), P.BALANCETE, vbTextCompare)) = -1 Then

     

    Não sei onde estou errando.

     

     

     

    Sub ExcluiPlanilhas()
        Dim P   As Worksheet
        Dim R   As Range
        
        Set R = ThisWorkbook.Worksheets("BALANCETE").[A:A]

        For Each P In ThisWorkbook.Worksheets
            If R.Find(What:=P.Name, LookAt:=xlWhole) Is Nothing Then
                If UBound(Filter(Exceto, P.Name, vbTextCompare)) = -1 Then
                    Application.DisplayAlerts = False
                    P.Delete
                    Application.DisplayAlerts = True
                End If
            End If
        Next P
    End Sub

     

     

  2. 2 horas atrás, Midori disse:

    @Gilberto_Silva Você pode usar uma Sub para chamar as outras,

     

    
    Sub Executar()
        Call InsereHiperlinks
        Call CONCILIAR_CONTAS
        Call ExcluiPlanilhas
    End Sub

     

    Muito Obrigado Midori, funcionou, mas eu esqueci de mencionar que existem pelo menos duas planilhas que não deveriam ser excluídas (quando eu executar o "ExcluiPlanilhas", ou seja, preciso inclui "exceto" planilha X e Y, por exemplo, no momento da exclusão, visto que elas não estão na listas na planilha que o código está se apoiando para executar a função.

    Essas duas planilhas seria de informações cadastrais e outras informações.

    Muito Obrigado e me desculpe desde já pelo equivoco de informação inicial.

     

    att.

    Gilberto

     

  3. 16 horas atrás, osvaldomp disse:

    Sub ExcluiPlanilhas() Dim k As Long Application.DisplayAlerts = False For k = 1 To Application.Max([A:A]) If Application.CountIf([A:A], k) = 0 Then Sheets(CStr(k)).Delete Next k End Sub

    image.png.f0d6589d230331a4f996fc4f02d1be2e.png

    adicionado 1 minuto depois
    2 minutos atrás, Gilberto_Silva disse:

    image.png.f0d6589d230331a4f996fc4f02d1be2e.png

    as planilhas com digito excluiu, a partir de 2 não foram excluidos.

    adicionado 12 minutos depois
    16 horas atrás, Midori disse:

    @Gilberto_Silva  Considerei a aba Nomes do mesmo arquivo com a coluna (A) dos nomes das planilhas,

     

    
    Sub Macro()
        Dim P   As Worksheet
        Dim R   As Range
        
        Set R = ThisWorkbook.Worksheets("Nomes").[A:A]
        
        For Each P In ThisWorkbook.Worksheets
            If P.Name <> "Nomes" Then
                If R.Find(What:=P.Name, LookAt:=xlWhole) Is Nothing Then
                    Application.DisplayAlerts = False
                    P.Delete
                    Application.DisplayAlerts = True
                End If
            End If
        Next P
    End Sub

     

    Funcionou,muito obrigado.

    é possível eu incluir esse codigo com outros dois, para formar um unico, assim eu posso executar todas as funções de uma unica vez?

    1) Sub InsereHiperlinks()
     Dim c As Range
      With Range("K6:K" & Cells(Rows.Count, 1).End(3).Row)
       .ClearHyperlinks
       .Font.Underline = xlUnderlineStyleNone
      End With
      For Each c In Range("A6:A" & Cells(Rows.Count, 1).End(3).Row)
       If Evaluate("ISREF('" & (c.Value) & "'!A1)") = True Then
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(c.Row, "K"), Address:="", SubAddress:= _
            "'" & c.Value & "'!A1"
       End If
      Next c
    End Sub

     

    2) 

    Sub CONCILIAR_CONTAS()

     Dim LRd As Long, LRo As Long, c As Range
      Application.ScreenUpdating = False
      On Error Resume Next
      Sheets("BALANCETE").ShowAllData

        Columns("J:J").Select
        Selection.ClearContents

      With Sheets("BALANCETE")
       LRd = .Cells(Rows.Count, 2).End(3).Row
       .Range("J6:J" & LRd).Formula = "=INDIRECT(A6&""!D5"")"
       .Range("J6:J" & LRd).Value = .Range("J6:J" & LRd).Value
      End With
      Application.ScreenUpdating = True
      
      
    End Sub

     

    3) 

    Sub ExcluiPlanilhas()

        Dim P   As Worksheet
        Dim R   As Range
        
        Set R = ThisWorkbook.Worksheets("BALANCETE").[A:A]
        
        For Each P In ThisWorkbook.Worksheets
            If P.Name <> "BALANCETE" Then
                If R.Find(What:=P.Name, LookAt:=xlWhole) Is Nothing Then
                    Application.DisplayAlerts = False
                    P.Delete
                    Application.DisplayAlerts = True
                End If
            End If
        Next P
    End Sub

     

     

     

  4. Pessoal,

     

    Na mesma linha desse tópico, gostaria de saber se é possível executar um código no Excel, que exclua planilhas de um arquivo, a partir de uma condição em outra planilha.

     

    Exemplo:

    na coluna A contenha uma lista:

     

    1

    2

    3

    4

    7

    9

     

    os nomes das planilhas : 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 

     

    Para cada item desta lista, existe uma planilha, porém, pode conforme essa lista sofre uma alteração e alguns deixam de existir, e as planilhas que estiverem sobrando (não tem na lista, ela deverá ser excluída).

     

    Muito Obrigado

     

    Att..

     

    Gilberto

     

     

     

  5. 6 horas atrás, osvaldomp disse:

     

    Gilberto, você sequer informou se a segunda demanda que você colocou neste tópico foi resolvida e já colocou a terceira demanda (citação acima). Eu já tô perdido aqui, pois este tópico está com mais de 20 postagens e sem perspectiva de conclusão.

    Sugestão: encerre este tópico e abra outro, anexe o seu arquivo com os códigos que você já tem e que funcionam a contento e explique com exatidão sobre essa terceira demanda.

    Por gentileza sou novo no fórum não estou localizando a forma de encerrar.  Vou publicar os códigos que funcionaram, você está de parabéns, Deus lhe abençoe e muito obrigado. 

     

    Att

     

    Gilberto 

  6. Em 22/10/2018 às 16:20, Gilberto_Silva disse:

    Osvaldo, boa tarde!

     

    Ainda no projeto da minha planilha de conciliação contábil, tenho outra situação: de um mês para outro, podem surgir novas contas no Balancete_2018, para isso, tenho uma formula na coluna J do balancete que indica "INSERIR CONTA NA PASTA DA CONCILIAÇÃO". Pergunto: É possível fazer a leitura desta frase na coluna J e através de uma planilha Modelo, criar uma planilha e renomear e inserir as informações, como numero da conta e descrição da conta?

     

    Mais uma vez de agradeço imensamente pela sua ajuda até aqui.

     

    PS. Seria possível compilar dois códigos em apenas um?

     

     

     

     

    Att.

     

    Gilberto

     

    Olá Osvaldo, 

     

    Seria possível o citado acima? 

  7. Em 17/10/2018 às 21:44, osvaldomp disse:

    Olá, Gilberto.

    Veja se é isso. O código abaixo insere Hiperlink na coluna J para a planilha com o nome na coluna A.
     

    
    Sub InsereHiperlinks()
     Dim c As Range
      With Range("J6:J" & Cells(Rows.Count, 1).End(3).Row)
       .ClearHyperlinks
       .Font.Underline = xlUnderlineStyleNone
      End With
      For Each c In Range("A6:A" & Cells(Rows.Count, 1).End(3).Row)
       If Evaluate("ISREF('" & (c.Value) & "'!A1)") = True Then
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(c.Row, "J"), Address:="", SubAddress:= _
            "'" & c.Value & "'!A1"
       End If
      Next c
    End Sub
    

     

    Osvaldo, boa tarde!

     

    Ainda no projeto da minha planilha de conciliação contábil, tenho outra situação: de um mês para outro, podem surgir novas contas no Balancete_2018, para isso, tenho uma formula na coluna J do balancete que indica "INSERIR CONTA NA PASTA DA CONCILIAÇÃO". Pergunto: É possível fazer a leitura desta frase na coluna J e através de uma planilha Modelo, criar uma planilha e renomear e inserir as informações, como numero da conta e descrição da conta?

     

    Mais uma vez de agradeço imensamente pela sua ajuda até aqui.

     

    PS. Seria possível compilar dois códigos em apenas um?

     

     

     

     

    Att.

     

    Gilberto

     

  8. Osvaldo, boa tarde.

     

    o código está apagando minha lista da coluna A e inserindo a informação Plan1 e Plan1(2) com hyperlink,

    Eu entendi que você quer uma lista com os nomes das planilhas e os correspondentes Hiperlinks e como você não informou  em qual coluna você quer a lista eu optei pela coluna A.

    Anexei uma amostra da planilha, na planilha Balancete_2018 coluna A (linha 6 em diante) tenho a relação das contas contábeis , que possuem planilhas no mesmo arquivo com os mesmos nomes.

    Já na coluna J de Balancete_2018, tenho informações, se a conta é sintética, se está conciliada ou não conciliada..... O que preciso é que o hiperlink seja criado na coluna J de Balancete_2018, quando existir uma planilha aberta com o mesmo nome.

     

    porém essas Plan1 não existe em meu arquivo.

    Essa eu gostaria de ver, pois a probabilidade de o código colocar na lista o nome de uma planilha inexistente é equivalente a encontrar um político honesto, ou seja, zero! 

     

    Por exemplo: Tenho na coluna A da planilha "Listar Abas" uma sequencia numerica que são os nomes das planilhas laterais, o código tem que comparar minha lista com essas planilhas existentes e inserir o hyperlink quando existir uma coincidência entre a lista e as plans existentes.

    Disponibilize uma amostra do seu arquivo Excel com o resultado desejado.

    Anexei uma amostra da planilha

     

    Osvaldo, mais uma vez agradeço sua paciência em me ajudar.

     

    Att

     

    Gilberto

     

     

    2 horas atrás, osvaldomp disse:

     

    dica - para responder clique em Responder, localizado abaixo da última postagem. Só clique em Citar se necessário.

    (AMOSTRA) CONCILIAÇÕES_SET_2018.rar

  9. 14 horas atrás, osvaldomp disse:

    Selecione a planilha Listar Abas e rode o código abaixo. Resultado na coluna A, altere no código se quiser.

    Nos casos de inclusão/exclusão ou alteração de nomes de planilhas rode o código para exibir a lista atualizada.

     

    
    Sub ListaPlansHiperlinks()
     Dim ws As Worksheet
      [A:A] = ""
       For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Listar Abas" Then
         Cells(Rows.Count, "A").End(3)(2) = ws.Name
         ActiveSheet.Hyperlinks.Add Anchor:=Cells(Rows.Count, 1).End(3), Address:="", SubAddress:= _
          "'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
        End If
       Next ws
    End Sub

     

    Osvaldo,

    o código está apagando minha lista da coluna A e inserindo a informação Plan1 e Plan1(2) com hyperlink, porém essas Plan1 não existe em meu arquivo.

     

    Por exemplo: Tenho na coluna A da planilha "Listar Abas" uma sequencia numerica que são os nomes das planilhas laterais, o código tem que comparar minha lista com essas planilhas existentes e inserir o hyperlink quando existir uma coincidência entre a lista e as plans existentes.

     

    Desde já agradeço

     

    Gilberto

     

     

  10. Em 27/09/2018 às 16:16, osvaldomp disse:

    Segue abaixo o código com as alterações.

    Somente na primeira vez antes de rodar o código, faça as seguintes alterações na planilha Listar Abas :
    1. reexiba as linhas ocultas
    2. limpe as colunas C:D a partir da linha 6
    3. desfaça as mesclagens de células da coluna D

     

    
    Sub ReplicaDadosV3()
     Dim LRd As Long, LRo As Long, c As Range
      Application.ScreenUpdating = False
      If Sheets("Listar Abas").[C6] <> "" Then Sheets("Listar Abas") _
       .Range("C6:D" & Sheets("Listar Abas").Cells(Rows.Count, 3).End(3).Row).Value = ""
      With Sheets("BALANCETE_2018")
       On Error Resume Next
       .ShowAllData
       On Error GoTo 0
       LRo = .Cells(Rows.Count, 1).End(3).Row
       .[A5].AutoFilter 2, ""
       .[A5].AutoFilter 3, "<>1.1.02.001.001*"
       .Range("A6:A" & LRo).SpecialCells(12).Copy Sheets("Listar Abas").[C6]
       On Error Resume Next
       .ShowAllData
       On Error GoTo 0
      End With
      With Sheets("Listar Abas")
       LRd = .Cells(Rows.Count, 3).End(3).Row
       .Range("D6:D" & LRd).Formula = "=INDIRECT(C6&""!F4"")"
       .Range("D6:D" & LRd).Value = .Range("D6:D" & LRd).Value
      End With
      Application.ScreenUpdating = True
    End Sub

     

    Bom dia Osvaldo,

     

    Minha planilha está evoluindo, desde já agradeço e muito sua ajuda!

     

    Não sei se é possível, mais vou perguntar: É possível criar um código para inserir hyperlink em uma lista com as planilhas do mesmo arquivo?

     

    Tenho a Plan "Listar_Abas" e gostaria de inserir um link para quando clicar em um nome de  "Listar_abas" já direto a planilha desejada.

     

    Encontrei um código que você havia criado para um outro participante deste forum, em partes ele atende, porém não será necessário criar as novas planilhas, apenas criar o link dos nomes das já existentes para uma listas como o nomes destas planilhas.

     

    veja o código que encontrei:

     

    Sub CriaNomeiaHyper() Dim planBase, planNova As String Dim plan As Worksheet, flg As Boolean planBase = ActiveSheet.Name planNova = ActiveSheet.Range("A1").Value If planNova = "" Then MsgBox "insira em A1 o nome desejado para a nova planilha" Exit Sub End If For Each plan In Worksheets If plan.Name Like planNova Then flg = True: Exit For Next If flg = True Then MsgBox "já existe a planilha " & "'" & _ planNova & "'" & ", altere o nome desejado" Else Worksheets.Add(after:=Sheets(Sheets.Count)).Name = planNova ActiveSheet.Hyperlinks.Add Anchor:= _ Sheets(planBase).Range("A1"), Address:="", _ SubAddress:="'" & ActiveSheet.Name _ & "'!A1", TextToDisplay:=ActiveSheet.Name End If End Sub

     

     

    Desde já agradeço.

     

    Att.

     

    Gilberto

     

     

     

  11. Boa tarde.

    Preciso de ajuda para fazer uma macro no Excel. Já utilizei o forum vária vezes para tirar dúvidas e consegui encontrar todas usando a busca. Porém desta vez não consegui encontrar.

    É o seguinte.

    Tenho uma lista de contas contábeis em uma coluna de uma Plan "Balancete" na coluna A6 até .... (esse quantidade depende de empresa para empresa), ao lado desta Plan tenho varias outras que tem o mesmo nome desta lista e com as mesmas formatações de quantidade de colunas etc.

     

    Preciso criar uma macro que leia a lista de contas na Plan "Balancete" e localize a respectiva Plan de nome igual e na sequencia, pegue e realizar uma função igual ao PROCV, ou seja, abra localize a conta XXX da Plan "Balancete" na célula A6, na célula C6 da Plan correspondente e traz o valor da célula F6. 

     

     

    Desde já agradeço

     

    Gilberto

     

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!