Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#58297
Boa tarde amigos, procurei no forum e não encontrei algo que pudesse resolver meu problema.

Problema: Possuo uma planilha com 200 mil linhas e necessito importar para um programa especifico onde só consegue ler arquivos com no máximo 5000 linhas.

Necessito: Alguma formula/macro para poder dividr essa planilha em vários outras planilhas.

Tem como fazer isso?
#58302
É viável via macro.

1. existe cabeçalho na planilha ? Se sim, cada nova planilha formada por 5 mil linhas também terá cabeçalho ?

2. quais as colunas ocupadas pelos dados ?

3. todas as colunas têm a mesma quantidade de linhas preenchidas ?

4. você quer todas as planilhas com 5 mil linhas em um único arquivo ou cada planilha um arquivo ?
#58303
Boa noite Osvaldo.

1. Existe cabeço na planilha e gostaria q todas as planilhas que forem gerados viessem a planilha também.

2. A planilha possui 21 colunas

3. Algumas colunas estão vazias.

4. Então, necessitava de cada planilha em um arquivo, com no máximo 5 mil linhas em cada. Acredito que a última não terá os 5 mil.. mas as anteriores sim

Obrigado pela resposta
#58311
Experimente o código abaixo.

1. eu perguntei "quais" colunas, no entanto você respondeu "quantas" colunas, então considerei que haverá dados da coluna A até a coluna U; não importa se houver colunas vazias; considerei que a coluna A sempre conterá dados e essa coluna terá a maior quantidade de linhas preenchidas

2. o comando ActiveWorkbook.SaveAs ... irá salvar cada novo arquivo na mesma pasta em que estiver salvo o arquivo que contiver a macro, altere se desejar; para desativar esse comando basta excluí-lo ou colocar um apóstrofo no início do comando; o nome de cada arquivo será Desmembrado diamês 001, sendo diamês o dia e o mês correntes, mais um número sequencial a partir de 001, altere se desejar, no entanto se você for desmembrar mais de um arquivo em bruto (com 200 mil linhas) em um mesmo dia então haverá duplicação de nome de arquivo, e nesse caso você precisa informar um novo critério para nomear os arquivos

3. o comando ActiveWorkbook.Close irá fechar cada novo arquivo após salvá-lo; para desativar esse comando basta excluí-lo ou colocar um apóstrofo no início do comando

4. se você não quiser salvar e fechar cada arquivo então poderá abrir a caixa de diálogo Salvar Como, para isto basta remover o apóstrofo inicial desta linha de comando ~~~> 'Application.Dialogs(xlDialogSaveAs).Show
Código: Selecionar todos
Sub GeraPlanilhas()
 Dim k As Long, ws As Worksheet, m As Long
  Application.ScreenUpdating = False
  With ActiveSheet
   For k = 2 To Cells(Rows.Count, 1).End(3).Row Step 4999
    Workbooks.Add
    Range("A1:U1").Value = .Range("A1:U1").Value
    .Cells(k, 1).Resize(4999, 21).Copy [A2]
    'Application.Dialogs(xlDialogSaveAs).Show
    m = m + 1
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\Desmembrado " & Format(Date, "ddmmm") & " " & Format(m, "000") & ".xlsx"
    ActiveWorkbook.Close
   Next k
  End With
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord