none
Administração de BD RRS feed

  • Pergunta

  • Olá caros amigos:

    Olha eu aqui maaaaisss uma vez com uma questão.

    Gostaria de saber o seguinte: tenho uma userform onde cadastro informações de um tipo de documento chamado RNC (Relatório de não conformidades).
    As informações inputadas na userform ao clicar no botão CADASTRAR vão para uma planilha chamada BD.
    Pois bem, sabendo que o Excel trabalha com no máximo 65536 células, pergunto: como posso criar uma sub rotina que quando as informações gravadas chegarem na célula 65536 seja criada uma nova planilha com o nome BD2 e nessa nova planilha seja gravada daí por diante as informações?

    Muito obrigado meus amigos e fiquem com Deus!!!
    domingo, 18 de maio de 2008 17:22

Respostas

  • Olá Braz, dá pra fazer assim...Faz um teste..

     

    Code Snippet

    Sub Macro()
       Dim I As Integer
       I = 1
       Plan = "BD"
        If Worksheets(Plan).Range("A65536") <> Empty Then
            For Each Plan In Worksheets
               If Worksheets(I).Name = "BD2" Then
                   Plan = "BD2"
                   GoSub Grava
                   Exit Sub
               End If
               I = I + 1
            Next Plan
        Else
            GoSub Grava
            Exit Sub
        End If
        Sheets.Add.Name = "BD2"
        Plan = "BD2"
        
       
    Grava:
    'Ponha sua sub aqui, mas se for fazer referência a uma planilha faça assim Worksheets(Plan)
    Return

    End Sub

     

     

     

    Até..

    segunda-feira, 19 de maio de 2008 12:38
  • Você acertou.....

    Na verdade o return não está interferindo em nada....Eu o deixei porque a sintaxe do gosub possui o Return...Pra fica mais certinho...

     

    No final do código esqueci de por assim..

     

    Code Snippet

    Sheets.Add.Name = "BD2"
        Plan = "BD2"
        GoSub Grava
        Exit Sub
       
    Grava:
    'Ponha sua sub aqui, mas se for fazer referência a uma planilha faça assim Worksheets(Plan)
    Return

    End sub

     

    Mas se preferir pode deixar sem..Daí os exit sub poderão ser apagados...

    Outro...Fica na paz..

     

     

    terça-feira, 20 de maio de 2008 16:53

Todas as Respostas

  • Olá Braz, dá pra fazer assim...Faz um teste..

     

    Code Snippet

    Sub Macro()
       Dim I As Integer
       I = 1
       Plan = "BD"
        If Worksheets(Plan).Range("A65536") <> Empty Then
            For Each Plan In Worksheets
               If Worksheets(I).Name = "BD2" Then
                   Plan = "BD2"
                   GoSub Grava
                   Exit Sub
               End If
               I = I + 1
            Next Plan
        Else
            GoSub Grava
            Exit Sub
        End If
        Sheets.Add.Name = "BD2"
        Plan = "BD2"
        
       
    Grava:
    'Ponha sua sub aqui, mas se for fazer referência a uma planilha faça assim Worksheets(Plan)
    Return

    End Sub

     

     

     

    Até..

    segunda-feira, 19 de maio de 2008 12:38
  • Olá meu irmão Evangelista tudo bem?

    Olha, acho que achei onde está o erro, pelos teste que fiz aqui, eu tirei o Return do final da sub e a rotina funcionou normalmente.
    Não sei se era isso, mas se não é , tive sorte de principiante rsrsrsrsrsrsrsr

    Se não for por favor me desculpe. Um grande abraço e fique na paz!!!
    terça-feira, 20 de maio de 2008 15:46
  • Você acertou.....

    Na verdade o return não está interferindo em nada....Eu o deixei porque a sintaxe do gosub possui o Return...Pra fica mais certinho...

     

    No final do código esqueci de por assim..

     

    Code Snippet

    Sheets.Add.Name = "BD2"
        Plan = "BD2"
        GoSub Grava
        Exit Sub
       
    Grava:
    'Ponha sua sub aqui, mas se for fazer referência a uma planilha faça assim Worksheets(Plan)
    Return

    End sub

     

    Mas se preferir pode deixar sem..Daí os exit sub poderão ser apagados...

    Outro...Fica na paz..

     

     

    terça-feira, 20 de maio de 2008 16:53