Notifications
Clear all

Editar várias pastas de trabalho de uma só vez

18 Posts
2 Usuários
1 Reactions
2,839 Visualizações
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

Olá pessoal,

Preciso realizar uma pequena alteração em aproximadamente 1000 pastas de trabalho (arquivos) que possuem a mesma estrutura, só estão preenchidas com dados diferentes. Existe alguma forma de realizar as alterações sem ter que abrir uma a uma?

Obrigada!

 
Postado : 10/12/2020 10:43 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Existe sim, @gmribeiro. A opção mais imediata seria fazer pelo próprio VBA do Excel. Outra maneira seria via Power Query, também incorporado no Excel.

Descreva com detalhes seu problema, anexe arquivos modelo, enfim, especifique bem seu problema e qual solução gostaria de realizar pra que possamos ajudá-lo.

 
Postado : 10/12/2020 8:32 pm
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

@edsonbr vou tentar explicar o que eu preciso, porém não tenho permissão para anexar as planilhas, que contém dados confidenciais. Caso seja realmente necessário posso tentar falar com o responsável.

A planilha que usamos para dimensionamento de materiais busca dados em mais 3 pastas de trabalhos. Esses arquivos se encontram em uma pasta do diretório de um usuário da empresa, porém hoje precisamos migrar esses arquivos para uma pasta da rede, cujo caminho é totalmente diferente.

Seria simples alterar os vínculos se não fossem aproximadamente 1000 dessas planilhas de dimensionamento (mesma estrutura), com 5 abas protegidas por senha (a mesma para todas), sendo 4 dessas ocultas. Como você pode imaginar, os usuários dessas planilhas não podem ter conhecimento da senha, o que impossibilita a alteração dos vínculos e por aí vai.

Essa planilha já tem o seguinte código:

Sub excluir_linhas()

ActiveWorkbook.Save

ActiveSheet.Unprotect Password:="xxxxxxxx"


Range("V46").Value = "0"
Range("V68").Value = "0"
Range("V74").Value = "0"
Range("V88").Value = "0"
Range("V98").Value = "0"
Range("V121").Value = "0"
Range("V126").Value = "0"
Range("V132").Value = "0"
Range("V137").Value = "0"
Range("V156").Value = "0"
Range("V168").Value = "0"
Range("V185").Value = "0"
Range("V197").Value = "0"
Range("V214").Value = "0"
Range("V226").Value = "0"
Range("V240").Value = "0"
Range("V250").Value = "0"
Range("V272").Value = "0"
Range("V294").Value = "0"


Range("A1:CM500").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False


Dim r, c, x
r = 31: c = 22
x = r
Do While x < 500
If Plan1.Cells(r, c) = "0" Then
Rows(r).Delete
r = r - 1
End If
r = r + 1
x = x + 1
Loop

ActiveSheet.Protect Password:="xxxxxxxx"

Application.Dialogs(xlDialogPrint).Show

ActiveWorkbook.Close False

End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "AH76" Then
If Target.Value > 25 Then
MsgBox "Para espessuras acima de 25 mm, consultar diretoria."
End If
End If

If Target.Address(0, 0) = "AH101" Then
If Target.Value > 25 Then
MsgBox "Para espessuras acima de 25 mm, consultar diretoria."
End If
End If

End Sub

 

Detalhe, eu não entendo nada de VBA nem Power Query. Estou começando a achar que não tem solução!

 
Postado : 11/12/2020 1:18 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Então são 1000 Pastas de Trabalho Excel de Dimensionamento que estavam na pasta do usuário "C:\Users\Fulano\Arquivos do Fulano" e cada uma dessas 1000 se referem sempre a apenas outras 3 Pastas de trabalho Excel também presentes no mesmo diretório que as de dimensionamento ("C:\Users\Fulano\Arquivos do Fulano").
Ou seja:
Dimensionamento0001.xlsx vincula-se a DadosMateriais1.xlsx, DadosMateriais2.xlsx e DadosMateriais3.xlsx
Dimensionamento0002.xlsx vincula-se a DadosMateriais1.xlsx, DadosMateriais2.xlsx e DadosMateriais3.xlsx
...
Dimensionamento0999.xlsx vincula-se a DadosMateriais1.xlsx, DadosMateriais2.xlsx e DadosMateriais3.xlsx
Dimensionamento1000.xlsx vincula-se a DadosMateriais1.xlsx, DadosMateriais2.xlsx e DadosMateriais3.xlsx

Agora todos esses arquivos, tanto de dimensionamento quanto de dados, ficarão em uma única e determinada pasta no servidor, digamos "\\SERVIDOR\COMPARTILHADOS\NOVA PASTA"

É isso?

 
Postado : 11/12/2020 2:38 pm
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

@edsonbr isso, mesmo diretório, porém subpastas um pouco diferentes, segue:

Planilha 1 - C:\Users\Administrativo\Dropbox\GIOVANNE\TANQUES-PADRÕES\EXCEL_TANQUES-PADRÕES.xlsx

Planilha 2 - C:\Users\Administrativo\Dropbox\GIOVANNE\FONTE\EXCEL_FONTE-CUSTO DE MATERIAIS.xlsx

Planilha 3 - C:\Users\Administrativo\Dropbox\GIOVANNE\FONTE\EXCEL_FONTE-MÃO DE OBRA.xlsx

Planilha dimensionamento - C:\Users\Administrativo\Dropbox\GIOVANNE\TANQUES-CLIENTES

Gostaria que ficassem com os seguintes vínculos:

Planilha 1 - Z:\Custos\Tanques de Polipropileno\Cilíndricos\PADRAO\EXCEL_TANQUES-PADRÕES

Planilha 2 - Z:\Custos\Tanques de Polipropileno\Cilíndricos\FONTE\EXCEL_FONTE-CUSTO DE MATERIAIS

Planilha 3 - Z:\Custos\Tanques de Polipropileno\Cilíndricos\FONTE\EXCEL_FONTE-MÃO DE OBRA

Planilha dimensionamento - Z:\Custos\Tanques de Polipropileno\Cilíndricos\CLIENTES\TANQUES-CLIENTES

 
Postado : 11/12/2020 3:19 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 
  • Ainda não entendi onde estão/ficarão as de dimensionamento, em relação ao nome delas. Estão atualmente todas na pasta:

C:\Users\Administrativo\Dropbox\GIOVANNE\

algo como

TANQUES-CLIENTES_1.xlsx, TANQUES-CLIENTES_2.xlsx, etc?

Ou estão/estarão em subpastas desta?

Ou \TANQUES-CLIENTES é uma pasta e não um arquivo?

 

  • Postado por: @gmribeiro

    Gostaria que ficassem com os seguintes vínculos:

    Z:\Custos\Tanques de Polipropileno\

    Penso que vc deveria evitar usar o caminho como unidade mapeada (Z:) e usar o caminho UNC completo no vínculo (por ex.: \\SERVIDOR\COMPARTILHAMENTO\Custos\Tanques de Polipropileno\). Se não fizer isso, todos os usuários que forem usar as planilhas terão que estar mapeados com a mesma letra Z para aquele caminho, o que nem sempre ocorre em ambientes corporativos.

 

 
Postado : 13/12/2020 12:36 am
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

@edsonbr as planilhas de dimensionamento estão todas dentro da pasta TANQUES-CLIENTES.

Sobre o caminho eu entendi, vou testar aqui. Obrigada.

 
Postado : 14/12/2020 10:44 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 
Postado por: @gmribeiro

pasta TANQUES-CLIENTES.

Ah, entendi agora. É uma pasta, não um arquivo. Ok.

 
Postado : 14/12/2020 10:57 am
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

@edsonbr estou pesquisando mas não encontro como vinculo o caminho UNC no lugar do outro, poderia me auxiliar?

Eu tenho isso numa célula: =N3*PROCV(D3;'Z:\Custos\[FONTE_CUSTO_MATERIAIS.xlsx]mat_prima'!$C:$D;2;FALSO)

Porém quando mudo para o seguinte, dá erro: =N3*PROCV(D3;'\\wsg02\Custos\[FONTE_CUSTO_MATERIAIS.xlsx]mat_prima'!$C:$D;2;FALSO)

 
Postado : 14/12/2020 4:15 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Após criar um vínculo já no novo modelo, indo na guia Dados, grupo Conexões, clicando em Editar Links, o que aparece na caixa de diálogo "Editar Vínculos" sob "Local:"?

 
Postado : 14/12/2020 8:33 pm
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

@edsonbr aparece Z:\Custos

 
Postado : 15/12/2020 7:55 am
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

Consegui vincular, o caminho estava errado.

 
Postado : 15/12/2020 11:08 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

E qual o caminho correto, pra darmos continuidade?

 

 
Postado : 15/12/2020 11:19 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem, aqui vai uma possível solução usando unidade mapeada em Z mesmo.

  • Por precaução, faça uma cópia de segurança de sua pasta de arquivos de dimensionamento;
  • Verifique cuidadosamente se os nomes de arquivo e diretórios que vc passou são grafados assim mesmo, alguns com acentuação (Cilíndrico, PADRÕES, MÃO) e outros sem (PADRAO);
  • Pressupõe-se que todas as planilhas de todas as pastas de trabalho Excel de dimensionamento, ocultas ou não, têm uma única senha não vazia e todas são a mesma para todos os arquivos, como dito anteriormente;
  • Todos os arquivos de dimensionamento são .xlsx e já estão todos na raiz da nova pasta:
    Z:\Custos\Tanques de Polipropileno\Cilíndricos\CLIENTES\TANQUES-CLIENTES\
  • Ao rodar o código, leve em conta que, para processar 1000 arquivos levará um tempo considerável, pois cada arquivo é aberto, cada planilha de cada arquivo é desprotegida, os 3 links são atualizados, cada planilha é novamente protegida pela mesma senha, o arquivo é salvo e então fechado para só então seguir ao próximo;
  • Faça inicialmente um teste deixando a pasta dos dimensionamentos com apenas alguns arquivos e rodando o código;
  • P.S.: no rodapé do Excel (barra de Status) vc poderá acompanhar quantos arquivos já foram processados ao longo da execução do código.

 
Postado : 15/12/2020 12:23 pm
gmribeiro reacted
(@gmribeiro)
Posts: 37
Eminent Member
Topic starter
 

@edsonbr obrigada, porém cliquei o botão e deu erro 9, depois cliquei para depurar e o programa indicou essa linha: For i = 1 To UBound(ListaArqs)

 
Postado : 15/12/2020 2:14 pm
Página 1 / 2