Gilberto_Silva
-
Posts
17 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Gilberto_Silva
-
-
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
-
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
adicionado 1 minuto depois2 minutos atrás, Gilberto_Silva disse:as planilhas com digito excluiu, a partir de 2 não foram excluidos.
adicionado 12 minutos depois16 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 Sub2)
Sub CONCILIAR_CONTAS()
Dim LRd As Long, LRo As Long, c As Range
Application.ScreenUpdating = False
On Error Resume Next
Sheets("BALANCETE").ShowAllDataColumns("J:J").Select
Selection.ClearContentsWith 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 Sub3)
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 -
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
-
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
-
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?
-
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
-
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.
-
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
-
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 DSub 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
-
Desculpe pela insistência, mas seria possível, apenas copiar os nomes das planilhas para a coluna C linha 6 na planilha "Listar Abas"? e depois copiar os valores das células F4 destas mesmas planilhas para a coluna D linha 6 da mesma planilha "Listar Abas"?
muito obrigado.
-
Em 17/09/2018 às 00:40, osvaldomp disse:
.
Osvaldo, obrigado pelo retorno.
para simplificarmos, o código poderia ser modificado para fazer a minha citação?
mais uma vez obrigado
-
Osvaldo,
obrigado pelo retorno, acho que não me expliquei bem.
Seria possível, apenas copiar os nomes das planilhas para a coluna C linha 6 na planilha "Listar Abas"? e na copiar os valores das células F4 destas mesmas planilhas para a coluna D linha 6?
-
-
Osvaldo,
segue novamente, excluir algumas informações desnecessária para reduzir o tamanho do arquivo.
-
Osvaldo, boa tarde.
estou mandando o link para baixar o arquivo no google drive
muito obrigado
https://drive.google.com/open?id=1oimCX5Vb_xCdS9X67o_YAfIIU4A2EvLl
-
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
Excluir "abas" planilhas - VBA
em Microsoft Office e similares
Postado
@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