Excel planilha vba copia dados novos workbook salva diretorio

Sáb, 20 de Novembro de 2010 17:18 Expedito Marcondes
Imprimir

Saberexcel - o Site das Macros

Essa macro do Aplicativo Microsoft Excel VBA, contém macro que copia determinados dados de uma planilha e salva novos Workbook com nome dos dados existentes na coluna(A), foi escolhido o Diretório C:\VBA\ , mas você poderá indicar um novo caminho para seu computador, para entender melhor baixe a planilha exemplo.

Sub Copiar_dados_novos_wkb_salvar()

Dim wbkPrincipal As String
Dim vNovoWkb As String
Dim vLinha As Integer
Dim vContinuar As Boolean

Dim vColAMestre As String
Dim vColATeste As String

Dim WkbContador As Integer
Dim vMensagem As String

Dim vDiretorio As String
Dim vArquivoNome As String

Dim vColAValor As String

'Diretorio onde salvará os novos Workbooks
vDiretorio = "C:\VBA\"

'Retorna o nome do workbook contendo os dados a serem copiados
wbkPrincipal = ActiveWorkbook.Name

'Inicilizando com variáveis
vContinuar = True
vLinha = 2
WkbContador = 0

'Inicio da comparação com a célula(A2)
vColAMestre = "A2"

'Loop em todos os ítemns coluna (A) até encontrar encontrar uma célula em branco
While vContinuar = True

vLinha = vLinha + 1
vColATeste = "A" & CStr(vLinha)

'Quando encontrar um célula em branco, sai do loop
If Len(Range(vColATeste).Value) = 0 Then
vContinuar = False
End If

'Valor que esta na coluna(A)
vColAValor = Range(vColAMestre).Value

'A ocorrência encontrada que que não combina, é copiada para o novo livro de exercícios
If vColAValor <> Range(vColATeste).Value Then

'Copiando o cabeçalho
Range("A1:D1").Select
Selection.Copy

'Adicionando novo Workbook e colando o cabeçalho no novo Wkb Livro
Workbooks.Add
vNovoWkb = ActiveWorkbook.Name
ActiveSheet.Paste
Range("A1").Select

'Copiando os dados da coluna A - D
Windows(wbkPrincipal).Activate
Range(vColAMestre & ":D" & CStr(vLinha - 1)).Select
Selection.Copy

'Colando os resultados
Windows(vNovoWkb).Activate
Range("A2").Select
ActiveSheet.Paste
Range("A1").Select
On Error Resume Next 'tratando um possível erro

'Salvando os Workboks se necessário com o nome das frases da coluna A
'e logo fechando o livro de exercícios
vArquivoNome = vDiretorio & vColAValor & ".xls"
If Dir(vArquivoNome) <> "" Then Kill vArquivoNome
ActiveWorkbook.SaveAs Filename:=vArquivoNome
ActiveWorkbook.Close

'Voltando para a planilha principal ao ponto desejado
Windows(wbkPrincipal).Activate
vColAMestre = "A" & CStr(vLinha)

'variável contador emite na msgbox quantas planilhas foram salvas
WkbContador = WkbContador + 1

End If

Wend

Range("A1").Select
Application.CutCopyMode = False

vMensagem = "Dados copiados com sucesso! copiados para [ " & WkbContador & " ] novos Workbook."
vMensagem = vMensagem & Chr(10) & "Salvo no Diretório : [ " & Chr(10) & vDiretorio & " ]"

MsgBox vMensagem, vbInformation, "Saberexcel - o Site das Macros"

End Sub

 


Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel




 Baixe o Exemplo de planilha contendo a macro acima
vba copia dados novos workbook salva diretorio (23.29 kB 2010-11-20 18:21:48)

 

Tags:
Última atualização em Qua, 10 de Agosto de 2011 08:25