Olá queridos jovens, estou com uma duvida "VBÁTICA" crucial, seguinte:
Sou instrutor de informática e no intuito de facilitar a minha vida estava tentando criar um que boletim fosse gerado automaticamente baseado em uma lista de dados e um modelo, achei o seguinte artigo em um site http://www.ambienteoffice.com.br/excel/gerar_planilhas_com_base_em_uma_planilha_padrao_e_uma_tabela/, até ai tudo bem, utilizei o código VBA para complementar meu boletim e o código funciona exatamente como eu preciso exceto por uma coisa! ( ) Meu boletim tem tamanhos de colunas diferente do padrão (tudo cabe em uma folha de sulfite), o boletim "MODELO" possui uma imagem, porém quando o código é rodado ele altera o tamanho das minhas células (não cabe mais em uma folha) e altera o tamanho da imagem (E TUDO O QUE É GRÁFICO ELE ALTERA POR CAUSA DO TAMANHO DAS CÉLULAS) a duvida é utilizando o seguinte código
Sub GeraRelatórios()
'Local onde os valores da Lista são atribuídos na Planilha Modelo
Const sNome As String = "E5"
Const sIdade As String = "E7"
Const sCidade As String = "E11"
Const sCor As String = "E9"
Dim lLast As Long
Dim lRow As Long
Dim wb As Workbook
Dim wsLista As Worksheet
Dim ws As Worksheet
Set wsLista = ThisWorkbook.Sheets("Lista")
'Opcional: descomente a linha abaixo para aumentar a velocidade
'de elaboração dos relatórios:
'Application.ScreenUpdating = False
With wsLista
lLast = .Cells(.Rows.Count, "A").End(xlUp).Row
Set wb = Workbooks.Add(xlWBATWorksheet)
'A contagem se inicia em 2 porque a linha 1 é o cabeçalho
For lRow = 2 To lLast
'Copia um dos Modelos para a nova Pasta de Trabalho
ThisWorkbook.Sheets("Modelo").Copy Before:=wb.Sheets(1)
Set ws = wb.Sheets(1)
'Renomeia a nova Planilha para, por exemplo, o nome de uma
'pessoa da Planilha Lista:
ws.Name = .Cells(lRow, "A")
'Entra com os registros da tabela em Lista na nova Planilha
ws.Range(sNome) = .Cells(lRow, "A")
ws.Range(sIdade) = .Cells(lRow, "B")
ws.Range(sCidade) = .Cells(lRow, "C")
ws.Range(sCor) = .Cells(lRow, "D")
Next lRow
End With
'Se você alterou a propriedade ScreenUpdating do objeto Application,
'deve voltar ao valor que estava antes, que provavelmente era True:
'Application.ScreenUpdating = True
End Sub
não tem como fazer o VBA copiar além dos conteúdos, o tamanho da célula, o estilo e não alterar a imagem?
TENTEI DE TUDO O QUE CONHEÇO SOBRE VBA (que no caso é 0,0001) MAS NÃO CONSEGUI.
(Posto o boletim se houver necessidade)
Postado : 04/02/2015 8:52 am