Notifications
Clear all

Ajuda em macro para unificar abas

3 Posts
2 Usuários
0 Reactions
840 Visualizações
(@rafaelvnq)
Posts: 0
New Member
Topic starter
 

Boa tarde, sou um iniciante nos estudos de excel e me deparei com um problema no trabalho.

Trabalho em uma obra e temos um arquivo onde fazemos nosso controle de projetos (quem está com qual projeto). Esta planilha foi feita por uma técnica que separou cada "dia de coleta" de projetos em uma aba, que são numeradas no formato xxx2014 (onde xxx vai de 001 em diante), resultando em uma planilha pouco prática.

O meu objetivo é condensar as entradas de dados das 50 abas em uma única planilha, para isso, preciso copiar as informações das linhas de cada aba até que ela seja vazia e também o nome da aba (que é nossa numeração adotada).

Com esse objetivo criei um "algoritmo" tentando buscar algumas funções do VBA, o qual não estou familiarizado ainda, que tenta executar essa rotina.

Peço vossa ajuda para que eu possa conseguir escrever esse código em linguagem VBA e detectar os prováveis problemas no mesmo.

Um abraço

Start
Dim integer n=Worksheets.Count //declara como n o número de abas
Dim integer k=1 //declara k como 1 para valor de controle
Dim integer x=6 //linha inicial da coleta de dados
Dim integer y=6 //linha de entrada de dados na planilha final
Dim string info1; info2; info3; info4; info5
Em Worksheet(k) repita até que k=n
Enquanto b(x)!=NULL
Info1 = Worksheet(k).name
Info2 = Worksheet(k).Range(b(x))
Info3 = Worksheet(k).Range(c(x))
Info4 = Worksheet(k).Range(d(x))
Info5 = Worksheet(k).Range(e(x))
Em Worksheet(n+1)
Range(a(y)) = Info1
Range(b(y)) = Info2
Range(c(y)) = Info3
Range(d(y)) = Info4
Range(e(y)) = Info5
Y++
End
X++
X=6
K++
Fim repita
End

 
Postado : 03/06/2014 2:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Use a pesquisa do fórum, eu mesmo já postei algo similar!!

Veja também:
http://usuariosdoexcel.forumeiros.com/t ... o-planilha

Att

 
Postado : 04/06/2014 5:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se lhe atende

Sub vbCod()
'Declaração de variaveis
Dim x As Integer, y As Integer, n As Integer
Dim Sh As Worksheet
'Atribui valores as variaveis
n = Worksheets.Count

'Cria planilha para consolidação de dados
'E a nomeia como BaseDados
    Sheets.Add After:=Sheets(n)
    Sheets(n + 1).Name = "BaseDados"
    y = 6                   'linha de entrada de dados na planilha final

'Inicio do loop nas planilhas
'Para cada planilha (Sh) no arquivo
For Each Sh In Sheets
    If Sh.Name <> "BaseDados" Then
        x = 6
        With Sh
            Do While .Range("B" & x) <> ""
                Sheets("BaseDados").Cells(y, "A") = .Name
                Sheets("BaseDados").Cells(y, "B") = .Cells(x, "B")
                Sheets("BaseDados").Cells(y, "C") = .Cells(x, "C")
                Sheets("BaseDados").Cells(y, "D") = .Cells(x, "D")
                Sheets("BaseDados").Cells(y, "E") = .Cells(x, "E")
            x = x + 1: y = y + 1
            Loop
        End With
    End If
Next
End Sub
 
Postado : 04/06/2014 4:58 pm