Notifications
Clear all

Separar uma sheet em diversas sheets através de um títulos

13 Posts
2 Usuários
0 Reactions
1,547 Visualizações
(@leohass)
Posts: 10
Active Member
Topic starter
 

Oi, sou novo aqui e como vocês são experts em VBA, precisava de uma ajuda...

Eu precisava de uma codificação que eu pudesse separar uma sheet em diversas sheets através do conteúdo de uma célula.

Por exemplo, num excel que eu tenho, está numa sheet só uma linha escrito: "QUADRO SÃO PAULO - 1" e uma série de outras linhas com outras informações, e então em outra linha começamos mais informações com "QUADRO SÃO PAULO - 2" e mais linhas de informação e, então "QUADRO SÃO PAULO - 3" e assim em diante.

Eu queria saber se haveria alguma forma de, com VBA, eu considerar através do contém "QUADRO SÃO PAULO" a separação em outras sheets. Queria um quadro em cada sheet.

É possível? Poderiam me ajudar?

Abs,

 
Postado : 26/04/2013 2:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Poste seu arquivo modelo compactado!!!

Att

 
Postado : 26/04/2013 3:40 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Enquanto aguardamos um modelo de uma olhada no exemplo abaixo se ajuda.

Separar uma planilha em varias planilhas no mesmo arquivo
viewtopic.php?f=16&t=2472

[]s

 
Postado : 27/04/2013 6:13 am
(@leohass)
Posts: 10
Active Member
Topic starter
 

Caros,

Então, segue um exemplo em anexo. Reparem que não há uma regularidade de linhas nas tabelas, então será necessário usar o começo dos títulos, ao menos...

Obrigado!

Leia as regras, os arquivos devem ser compactados!!!

 
Postado : 27/04/2013 9:16 am
(@leohass)
Posts: 10
Active Member
Topic starter
 

Corrigindo, segue arquivo compactado.

 
Postado : 27/04/2013 11:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Baixe o arquivo, faças os testes!!

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

Att

 
Postado : 27/04/2013 3:32 pm
(@leohass)
Posts: 10
Active Member
Topic starter
 

Aqui apontou um erro 9... Subscrição fora de intervalo.

C/ vc funcionou?

 
Postado : 27/04/2013 9:12 pm
(@leohass)
Posts: 10
Active Member
Topic starter
 

Opa, consegui. O nome da planilha estava incorreto.

Valeu!! ;)

 
Postado : 27/04/2013 9:18 pm
(@leohass)
Posts: 10
Active Member
Topic starter
 

Alexandre,

Só mais uma coisa, fiz alguns testes em casa e o nome da célula, no caso de algo pra que testei aqui, é "TAB.1) Pergunta feita para os entrevistados de pesquisa ad hoc" e assim por diante ("TAB.2) xxxxxxxxxx"; "TAB.3) xxxxxxxxxx", então, na hora de fazer o código funcionar, ele não cria as sheets porque selecionei para a separação começar a partir de "TAB" (superando o limite de 32 caracteres), não teria algum código que eu conseguisse limitar o nome da sheet a até o ")" (parênteses) para que esse problema não acontecesse e a nomeação das sheets ficasse organizada?

Se precisar de um exemplo pra entender melhor, avisa!

Obg!!

 
Postado : 27/04/2013 10:17 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Contribuindo:
Se entendi corretamente, segue uma possibilidade:
Altere a variavel de procura: SearchStr = "TAB."
Adicione uma variavel de numeração , por exemplo "Dim x as integer"
Em Do

Do
TabName = Mid(FoundCell, InStr(1, FoundCell, SearchStr)) & x = x + 1.....

Altere para

Do
x = x + 1
TabName = Mid(FoundCell, InStr(1, FoundCell, SearchStr), Len(SearchStr)) & x
....
 
Postado : 28/04/2013 7:08 am
(@leohass)
Posts: 10
Active Member
Topic starter
 

Muito obrigado! Deu certinho! :)

 
Postado : 29/04/2013 7:38 am
(@leohass)
Posts: 10
Active Member
Topic starter
 

Caros,

Só complementando, tem como eu tirar esse "tab" que vai na nomeação da sheet e deixar só um "." e a numeração?

Exemplo, quando eu gero agora, as sheets ficam nomeadas "tab.1", "tab.2" e etc. Eu precisava que a nomeação ficasse ".1", ".2", ".3", etc. Como eu poderia alterar o código para que funcionasse dessa forma?

Obrigado.

 
Postado : 17/05/2013 8:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente assim:

    Do
    x = x + 1
    TabName = "." &  x
    ....
 
Postado : 17/05/2013 8:27 am