Notifications
Clear all

(VBA) Varias planilhas alimentando uma matriz

24 Posts
3 Usuários
0 Reactions
2,926 Visualizações
(@gsousa)
Posts: 12
Active Member
Topic starter
 

Boa tarde pessoal!
Tenho um grande desafio e gostaria muito de contar com a ajuda de vocês.

Tenho esta planilha: http://www.sendspace.com/file/9kcfy7

Esta, é um banco de dados de anomalias de segurança da empresa. Ela tem aproximadamente 120 abas. A ultima aba desta planilha é a "P128". Eu preciso, criar uma aba "P129", cujo esta apresentara as informações das abas: P03 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P17 P18 P19 P20 P21 P22 P24 P25 P26 P27 P28 P29 P30 P31 P33 P34 P35 P36 P37 P38 P39 P40 P41 P42 P44 P45 P46 P47 P48 P49 P50 P51 P52 P53 P55 P56 P57 P58 P59 P60 P61 P63 P64 P65 P66 P68 P69 P70 P71 P72 P73 P75 P76 P77 P78 P79 P80 P81 P82 P83 P85 P86 P89 P90 P91 P93 P94 P95 P97 P98 P99 P103 P104 P105 P106 P107 P109 P110 P111 P112 P113 P115 P116 P117 P119 P120 P121 P123 P124 P125 P126 P127 P128 (TODAS ESTAS ABAS TEM O MESMO LAYOUT)

No caso, a aba "P129" teria o mesmo layout das abas citadas acima, enquanto as planilhas acima forem atualizadas, a "p129" automaticamente também será.
Desta forma, a "P129" se tornara um grande banco de dados, onde futuramente, eu criarei uma aba com filtros para extrair relatorios distintos.

esta situação, me parece bem cabeluda, porem sei que aqui irei encontrar ajuda.

Obrigado!!

 
Postado : 16/12/2013 1:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

seria melhor por as guias que não devem ser copiadas.

"P1","P2","P9","P16","P23","P32","P43","P54","P58","P62","P67","P74","P84","P88","P92","P96","P102","P108","P114","P118","P122","P129"

Sub AleVBA_9942()

Dim ws As Worksheet, ws1 As Worksheet, LR As Long
'Na linha abaixo fica as guia que não devem ser copiadas
Set ws1 = Sheets(Array("P1", "P2", "P9", "P16", "P23", "P32", "P43", "P54", "P58", "P62", "P67", "P74", "P84", "P88", "P92", "P96", "P102", "P108", "P114", "P118", "P122", "P129"))
If MsgBox("Limpar os dados existentes da guia P129?", vbYesNo, "Confirmação") = vbYes Then ws1.Cells.Clear
Application.ScreenUpdating = 0
For Each ws In Worksheets
    If ws.Name <> ws1.Name Then
        LR = ws.Range("B" & Rows.Count).End(xlUp).Row
        ws.Range("B11:K" & LR).Copy ws1.Range("A" & Rows.Count).End(xlUp).Offset(1)
    End If
Next ws

With Sheets("P129")
   Sheets("P129").Range("A1:K1").Value = Worksheets("P3").Range("B10:K10").Value
   With ws1.Cells
        .Copy
        .PasteSpecial xlPasteValues
   End With
   '.Columns("E:F").EntireColumn.Delete  '<- Caso queira deletar alguma coluna
   '.Columns("H:K").EntireColumn.Delete  '<- Caso queira deletar alguma coluna
End With
Application.ScreenUpdating = 1
End Sub

Obs:Por favor click na mãozinha
Att

 
Postado : 17/12/2013 12:52 pm
(@gsousa)
Posts: 12
Active Member
Topic starter
 

Veja o erro que o codigo apresentou, Alexandre.

http://www.sendspace.com/file/c8038e

 
Postado : 17/12/2013 1:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Você tem uma guia protegida ("P1") qual é a senha?

Att

 
Postado : 17/12/2013 2:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente........

Sub AleVBA_9942()

Dim ws As Worksheet, ws1 As Worksheet, LR As Long

Application.ScreenUpdating = 0

[A1].Value = "Procedência"
[B1].Value = "Data da Anomalia"
[C1].Value = "Local"
[D1].Value = "Descrição do problema"
[E1].Value = "Ação"
[F1].Value = "FIAI"
[G1].Value = "Prazo de Resolução"
[H1].Value = "Responsável"
[I1].Value = "Resolução %"
[J1].Value = "Obs:"
For Each ws1 In Sheets(Array("P3", "P4", "P5", "P6", "P10", "P11", "P12", "P13", "P14", "P15", "P17", _
"P18", "P19", "P20", "P21", "P22", "P24", "P25", "P26", "P27", "P28", "P29", "P30", "P31", "P33", "P34", "P35", _
"P36", "P37", "P38", "P39", "P40", "P41", "P42", "P44", "P45", "P46", "P47", "P48", "P49", "P50", "P51", "P52", _
"P53", "P55", "P56", "P57", "P58", "P59", "P60", "P61", "P63", "P64", "P65", "P66", "P68", "P69", "P70", "P71", _
"P72", "P73", "P75", "P76", "P77", "P78", "P79", "P80", "P81", "P82", "P83", "P85", "P86", "P89", "P90", "P91", _
"P93", "P94", "P95", "P97", "P98", "P99", "P103", "P104", "P105", "P106", "P107", "P109", "P110", "P111", "P112", _
"P113", "P115", "P116", "P117", "P119", "P120", "P121", "P123", "P124", "P125", "P126", "P127", "P128"))
 
    With ws1
      If .Name <> "P129" Then
         If InStr(1, (.Name), "P", 1) > 0 Then
               LR = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
               .Range("B11:K" & LR).Copy
               Sheets("P129").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
        End If
      End If
    End With
Next ws1
Application.ScreenUpdating = 1
End Sub

Att

 
Postado : 17/12/2013 4:57 pm
(@gsousa)
Posts: 12
Active Member
Topic starter
 

Alexandre, tive outro erro.
Veja: http://www.sendspace.com/file/tmpog2

 
Postado : 18/12/2013 5:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

No meu teste eu tive erro!!!

Mande seu arquivo para eu verificar!

Att

 
Postado : 18/12/2013 6:55 am
(@gsousa)
Posts: 12
Active Member
Topic starter
 

Alexandre, segue meu arquivo em anexo: http://www.sendspace.com/file/kwnxi0

Uma pergunta...

A planilha, pelo seu grande numero de abas e conteudo, esta com 13 mb. Consequentemente, ela trabalha muito lentamente. Vc conhece alguma forma de agilizar o trabalho desta planilha?

Obrigado!

 
Postado : 18/12/2013 7:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Mantenha as guias desprotegidas ("P1").

Salve e execute o código!

A planilha, pelo seu grande numero de abas e conteudo, esta com 13 mb. Consequentemente, ela trabalha muito lentamente. Vc conhece alguma forma de agilizar o trabalho desta planilha?

Não é possível ter uma única base de dados (com uma única guia)?

Att

 
Postado : 18/12/2013 10:23 am
(@gsousa)
Posts: 12
Active Member
Topic starter
 

Alexandre, veja o que aconteceu depois que desbloqueie a planilha salvei, fechei e reabri. http://www.sendspace.com/file/r31gij

Em relação ao tamanho, é necessario que cada area tenha sua guia e cada assunto também....

 
Postado : 18/12/2013 11:49 am
Página 2 / 2