Olá,
Estou desenvolvendo uma planilha para padronizar e facilitar o envio do nome de alunos que concluíram o ensino médio. Cada escola deve me enviar uma lista contendo, além de alguns dados da escola, o nome dos alunos, seus respectivos números de registro e a página do livro de registros em que se encontram.
Comecei a desenvolver uma planilha que permitisse o envio de até 600 nomes de uma única vez. A plan1 é o local onde devem ser inseridos os dados da escola e os dados dos alunos concluintes. Na plan3 (ainda sem nome definido) eu obtenho um texto com estes dados concatenados. O formato final é:
ESCOLA DO ESTADO, Credenciada pela Portaria nº 5678 de 01/01/2000-SE: ENSINO MÉDIO, Livro 09, João da Silva, 1, 235; João da Silva, 2, 235; João da Silva, 3, 235; João da Silva, 4, 235; Diretor José dos Santos Reg. nº789-X, Secretário Escolar Maria de Souza Reg. nº 6321-A.
Como tenho um intervalo de 600 nomes para concatenar, além dos dados da escola, tive que procurar uma solução na internet que me permitisse concatenar grandes intervalos. Acabei achando uma macro chamada “myconcatenate”. A princípio pareceu resolver todos meus problemas, no entanto,quando copiei o resultado concatenado na planilha 3 e colei no editor de texto para formatação final, vi que a cada 9.900 caracteres, foi inserido um parágrafo. Seria isto devido ao código da macro ou uma limitação do Calc? Para ter mais segurança na utilização desta planilha, inclusive por outros colegas de trabalho e mais futuramente, precisaria ter certeza de que não fossem inseridos estes parágrafos no texto final, pois se trata de uma lista que deve ser formatada periodicamente para envio para publicação em Diário Oficial. Desta forma, minha primeira dúvida é:
1 - Seria possível eliminar este parágrafo que é inserido a cada 9.900 caracteres?
A outra questão é que esta macro funciona bem quando eu preencho os 600 nomes do intervalo, mas supondo que uma escola tenha apenas 100 alunos concluintes para enviar, a macro insere no texto final um espaço para cada registro vazio. Sendo assim:
2 - Seria possível editar a macro para que ela ignorasse os registros vazios ao invés de inserir espaços?
Por último, gostaria de saber o que me aconselham quanto ao formato do arquivo final a ser disponibilizado para as escolas, pois a maior parte delas utiliza o excel, em diferentes versões, e aqui na sede utilizamos o calc. Já perdi alguns dados quando fui salvar edições feitas aqui, no calc, pois o arquivo inicial era do excel mais atual, e após salvar, algumas fórmulas que continham o “myconcatenate” foram completamente apagadas.
Desde já agradeço a ajuda de todos e disponibilizo a planilha em anexo!
P.S.: Parece que eu necessito de uma certa pontuação para anexar o arquivo, sendo assim, vou copiar o código da macro em questão aqui embaixo:
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Option Explicit
Public Function MyConcatenate(ByVal myRange As Range)
Dim vCell, vResult As String
For Each vCell In myRange.Cells
vResult = vResult & " " & vCell.Text
Next
MyConcatenate = Mid(vResult, 2)
End Function