como criar dois banco de dados apartir de um [RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA

como criar dois banco de dados apartir de um [RESOLVIDO]

Mensagempor Beckman » Dom Mai 13, 2012 6:48 pm

Olá pessoal
Criei userform e todos os comandos para o cadastro foram feitos para salvar na plan1. Como pode ser feito para que quando fosse cadastrado um item no userform e ao ser salvo podesse ser salvo em plan1 e plan2 ao mesmo tempo?

Vou deixar um modelo (não é o que eu fiz, mas um que vi em um site) no qual me baseio.
Anexos
modelo.zip
(26.36 KiB) Baixado 27 vezes
Editado pela última vez por Beckman em Seg Mai 21, 2012 10:37 am, em um total de 1 vez.
Beckman
 
Mensagens: 24
Registrado em: Seg Fev 20, 2012 2:04 am
Localização: manaus
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 3 vezes

Re: como criar dois banco de dados apartir de um

Mensagempor webmaster » Seg Mai 14, 2012 10:27 am

Beckman,

Dando uma olhada rápida, na macro lsAdicionar, há a linha:

Código: Selecionar todos
Worksheets("Banco").Activate


É ela quem define em qual planilha adicionar os dados. Se repetir o código mudando a linha para:

Código: Selecionar todos
Worksheets("SuaPlanilha").Activate


Deve funcionar. Obviamente, a planilha SuaPlanilha deve ter a estrutura idêntica a da Banco.

Abraços
Tomás
http://www.tomasvasquez.com.br/blog
http://twitter.com/tomamais
Gostou da resposta? Clique no ícone Imagem da mensagem!
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.
Avatar do usuário
webmaster
Administrador
 
Mensagens: 1722
Registrado em: Sex Jul 24, 2009 2:44 pm
Agradecimentos dados: 104 vezes
Agradecimentos recebidos: 77 vezes

Re: como criar dois banco de dados apartir de um

Mensagempor Beckman » Ter Mai 15, 2012 2:33 pm

webmaster
Não funcionou.
Olha só
No UserForm_Initialize
há esse comando
Set wsCadastroClientes = ThisWorkbook.Worksheets("Clientes")

Mas antes disso há um comandoque específica o wsCadastroClientes que é:
Private wsCadastroClientes As Worksheet

Com base nisso tentei fazer a mesma coisa para outro cadastro
Private wsCadastroClientes As Worksheet
Private wsCadastroClientes2 As Worksheet

UserForm_Initialize
Set wsCadastroClientes = ThisWorkbook.Worksheets("Clientes")
Set wsCadastroClientes2 = ThisWorkbook.Worksheets("Clientes2")
end sub

Os dados que foram salvos no Clientes não foram salvos no Clientes2
Tudo que tinha wsCadastroClientes fiz uma cópia e coloquewsCadastroClientes2
mas não funcionou.
Portanto fico grato com juda!
Beckman
 
Mensagens: 24
Registrado em: Seg Fev 20, 2012 2:04 am
Localização: manaus
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 3 vezes

Re: como criar dois banco de dados apartir de um

Mensagempor webmaster » Ter Mai 15, 2012 6:13 pm

Beckman,

A mudança era para ser feita só no lsAdicionar. Você fez isso?

Abraços
Tomás
http://www.tomasvasquez.com.br/blog
http://twitter.com/tomamais
Gostou da resposta? Clique no ícone Imagem da mensagem!
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.
Avatar do usuário
webmaster
Administrador
 
Mensagens: 1722
Registrado em: Sex Jul 24, 2009 2:44 pm
Agradecimentos dados: 104 vezes
Agradecimentos recebidos: 77 vezes

Re: como criar dois banco de dados apartir de um

Mensagempor Beckman » Qua Mai 16, 2012 4:58 pm

Código: Selecionar todos
Rem Attribute VBA_ModuleType=VBAFormModule
Option VBASupport 1
Option Explicit
'define constantes para controlar as colunas de dados
Const colCodigo As Integer = 1
Const colNome As Integer = 2
Const colEndereco As Integer = 3
Const colCidade As Integer = 4
Const colEstado As Integer = 5
Const colCep As Integer = 6
Const colTelefone As Integer = 7
Const colEmail As Integer = 8
Const indiceMinimo As Byte = 2

'define variavies para controlar a
Private alterar As Boolean
Private novo As Boolean
Private excluir As Boolean


'define a planilha usada e o indice do registro
Private wsCadastroClientes As Worksheet
Private indiceRegistro As Long



Private Sub SalvaRegistro(ByVal id As Long, ByVal indice As Long)
    With wsCadastroClientes
        .Cells(indice, colCodigo).Value = id
        .Cells(indice, colNome).Value = Me.txtNome.Text
        .Cells(indice, colEndereco).Value = Me.txtEndereco.Text
        .Cells(indice, colCidade).Value = Me.txtCidade.Text
        .Cells(indice, colEstado).Value = Me.txtEstado.Text
        .Cells(indice, colCep).Value = Me.txtCep.Text
        .Cells(indice, colTelefone).Value = Me.txtTelefone.Text
        .Cells(indice, colEmail).Value = Me.txtEmail.Text
    End With

    Call AtualizaRegistroAtual
End Sub


Private Sub UserForm_Initialize()
    novo = False
    alterar = False
    excluir = False
    Set wsCadastroClientes = ThisWorkbook.Worksheets("Clientes")
    Call HabilitaBotoesAlteracao
    Call carregaDados
    Call DesabilitaControles
End Sub

Private Sub CarregaRegistro()
    'carrega os dados do primeiro registro
    With wsCadastroClientes
        If Not IsEmpty(.Cells(indiceRegistro, colNome)) Then
            Me.txtCodigo.Text = .Cells(indiceRegistro, colCodigo).Value
            Me.txtNome.Text = .Cells(indiceRegistro, colNome).Value
            Me.txtEndereco.Text = .Cells(indiceRegistro, colEndereco).Value
            Me.txtCidade.Text = .Cells(indiceRegistro, colCidade).Value
            Me.txtEstado.Text = .Cells(indiceRegistro, colEstado).Value
            Me.txtCep.Text = .Cells(indiceRegistro, colCep).Value
            Me.txtTelefone.Text = .Cells(indiceRegistro, colTelefone).Value
            Me.txtEmail.Text = .Cells(indiceRegistro, colEmail).Value
        End If
    End With

    Call AtualizaRegistroAtual
End Sub





Tomás eu li todo o código mas não consegui encontrar -lsAdicionar- que vc disse que há no código.Portanto quero que vc podesse me mostrar, por gentileza, onde é que eu que deveira fazer essa troca. E deixei algumas partes do comando,parte que vi que talvez fosse feita a troca.
Mais uma vez fico grato com sua ajuda e ficarei mais grato com outra juda sua.
Beckman
 
Mensagens: 24
Registrado em: Seg Fev 20, 2012 2:04 am
Localização: manaus
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 3 vezes

Re: como criar dois banco de dados apartir de um

Mensagempor webmaster » Qua Mai 16, 2012 5:34 pm

Beckman,

Estou falando do seu arquivo, o que enviou em anexo na primeira mensagem. O código do lsAdiciona que comentei é este:

Código: Selecionar todos
Sub lsAdiciona()
    Dim iTotalLinhas As Integer
   
    Worksheets("Banco").Activate
    Range("Banco!$A$1").Select
   
    iTotalLinhas = Cells(Rows.Count, 1).End(xlUp).Row + 1
   
    Cells(iTotalLinhas, 1).Value = Range("Banco!$L$1").Value + 1
    Cells(iTotalLinhas, 2).Value = UCase(Range("Formulario!E7").Value)  'nome
    Cells(iTotalLinhas, 3).Value = Range("Formulario!E9").Value         'cep
    Cells(iTotalLinhas, 4).Value = UCase(Range("Formulario!E11").Value) 'tipo
    Cells(iTotalLinhas, 5).Value = UCase(Range("Formulario!G11").Value) 'logradouro
    Cells(iTotalLinhas, 6).Value = Range("Formulario!M11").Value        'número
    Cells(iTotalLinhas, 7).Value = UCase(Range("Formulario!E13").Value) 'bairro
    Cells(iTotalLinhas, 8).Value = UCase(Range("Formulario!E15").Value) 'cidade
    Cells(iTotalLinhas, 9).Value = UCase(Range("Formulario!M15").Value) 'uf
   
    Worksheets("Formulario").Activate
   
    Range("Formulario!E7").Value = "" 'nome
    Range("Formulario!E9").Value = "" 'cep
    Range("Formulario!M11").Value = "" 'número
   
End Sub


Abraços
Tomás
http://www.tomasvasquez.com.br/blog
http://twitter.com/tomamais
Gostou da resposta? Clique no ícone Imagem da mensagem!
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.
Avatar do usuário
webmaster
Administrador
 
Mensagens: 1722
Registrado em: Sex Jul 24, 2009 2:44 pm
Agradecimentos dados: 104 vezes
Agradecimentos recebidos: 77 vezes

Re: como criar dois banco de dados apartir de um [RESOLVIDO]

Mensagempor Beckman » Seg Mai 28, 2012 2:36 pm

Obrigado Tómas!!
Beckman
 
Mensagens: 24
Registrado em: Seg Fev 20, 2012 2:04 am
Localização: manaus
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 3 vezes

Anúncios


Voltar para VBA Básico

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante