Notifications
Clear all

Dividir banco de dados

4 Posts
3 Usuários
0 Reactions
1,059 Visualizações
(@miguexcel)
Posts: 167
Reputable Member
Topic starter
 

Olá,

Tenho um banco de dados com cerca de 10000 registos em várias linhas e colunas.

Na coluna B tenho vários nomes de registos (ex: Miguel, António, José, Carlos) e quero dividir o banco de dados pelos nomes de registo, e depois que essa informação seja gravada numa planilha nova, ou seja, quero carregar num botão e que o excel crie automaticamente várias planilhas, consoante os registos que tenho, e que as grave automaticamente. Quero passar a ter o banco de dados do Miguel, do Antonio, do José e do Carlos, individualmente.

Estou sendo claro?

Como poderei fazer isso?

 
Postado : 17/12/2012 9:43 am
(@hronconi)
Posts: 314
Reputable Member
 

Sim Miguel é possível.

Para fazer isso recomendo que você poste um modelo compactado do seu arquivo, para podermos verificar o layout do mesmo e adaptar uma macro para fazer a conversão.

Att.

Henrique Ronconi

 
Postado : 17/12/2012 10:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tambem pode utilzar o banco de dados (pesquisa), e tente adaptar:
http://www.planilhando.com.br/forum/viewtopic.php?f=16&t=2472&p=25526&hilit=separar+em+abas#p25526
http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=2522
http://www.planilhando.com.br/forum/viewtopic.php?f=16&t=4516

veja tb o arquivo anexo de autoria do colega Mauro Coutinho

 
Postado : 17/12/2012 11:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!
Eu não prestei muita atenção, tenho algo próximo em outro fórum, talvez você possa aproveitar.

http://profwillianexcel.forumeiros.com/ ... utra-pasta

Sub Operador()
    Dim myOperator As String, _
        myFrom    As Integer, _
        myRow      As Integer, _
        myCount    As Integer, _
        myTo      As Integer
    myRow = 2
    myFrom = 2
    While Cells(myRow, 1) <> ""

        myCount = WorksheetFunction.CountIf(Range(Cells(2, 1), Cells(1000, 1)), Cells(myFrom, 1))
        myTo = myFrom + myCount - 1
        myOperator = Cells(myFrom, 1)
        
        Range(Cells(1, 1), Cells(myTo, 8)).Copy
        Workbooks.Add
        ActiveSheet.Paste
        Range("A1").Select
        Application.CutCopyMode = False
        Selection.Copy
        Application.CutCopyMode = False
        If myFrom > 2 Then
            Rows("2:" & (myFrom - 1) & "").Select
            Application.CutCopyMode = False
            Selection.Delete Shift:=xlUp
        End If
      
        ActiveWorkbook.SaveAs Filename:="C:Documents and Settings" & myOperator & ".xls", FileFormat:=xlNormal, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
        ActiveWindow.Close
        
        
        myRow = myFrom + myCount
        myFrom = myRow
    Wend
  
    ActiveWorkbook.Save
End Sub

 
 
Postado : 17/12/2012 11:56 am