Notifications
Clear all

formulario nao funciona em outra aba sem ser do banco dados

4 Posts
2 Usuários
0 Reactions
863 Visualizações
(@junin-lima)
Posts: 4
New Member
Topic starter
 

Bom dia Galera.

Tenho no meu projeto uma userform de cadastro, que INSERIR, PESQUISAR, ALTERAR ETC. dados em uma planilha. ate ai tudo certo. Em uma ABA do excel fiz uma tela tipo menu onde coloquei um botao com uma macro para abrir o formulario/userfom. porem o formulario nao funciona pois ele entende que a planilha de menu/tela inicial é seu banco de dados entao se nando pesquisar alguma coisa ele busca na planilha de menu nao acha nada. como eu faço para resolver isso. que mesmo que eu abra o formulario na tela de menu ele busque as informaçoes na planilha banco de dados.

segue planilha em anexo.

OBS: a opçao de incluir ta fazendo direito , ta achando a planilha de banco de dados.

 
Postado : 30/10/2013 11:30 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Junin, pelas regras do Forum você teria de anexar o arquivo compactado, favor ler as regras.

Quanto a sua solicitação, o meu excel é 2003, não tenho como verificar no momento sua rotina, mas pelo que explicou, você deve ter instrução no Botão de Pesquisa referenciando ACTIVESHEET, ou seja refere-se a aba que estiver selecionada, ou em evidencia no momento em que a rotina for executada, para nos referirmos a outra aba devemos indicar na rotina a que aba se refere, ou seja :

'Criamos a variável para a aba Banco_de_dados
Dim wshBDados As Worksheet
Informamos ao aplicativo que esta aba se chama ("BANCO_de_DADOS")
Set wshBDados = Worksheets("BANCO_de_DADOS")

Então se tivermos na rotina :
ActveSheet.Select por exemplo, ela selecionara a aba ativa, se quisermos selecionar a que definimos acima usariámos
wshBDados.Select

É só um exemplo, de uma olhada no link abaixo, é referente a um modelo diferente mas utiliza o mesmo principio, tem uma explicação um pouco mais aprofundada, se não conseguir e não tiver uma resposta antes de eu chegar em casa dou uma olhada.
http://www.tomasvasquez.com.br/forum/vi ... nE6etgZF1E

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/10/2013 12:07 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para pesquisa, procure a linha

Range("A1").Select

e acima dela copie/cole

Plan2.Select

Assim a planilha de dados será ativada. ;)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/10/2013 4:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Junin, fiz os ajustes somente na Rotina do Botão pesquisar, se baseie nela se precisar alterar as outras rotinas :

Private Sub pesquisar_Click()
    
    'Definimos as abas
    Dim wshTelaInicial As Worksheet
    Set wshTelaInicial = Worksheets("TELA INICIAL")
    
    Dim wshBDados As Worksheet
    Set wshBDados = Worksheets("EMBALAGENS - INSUMOS")
    
    Dim contador As Integer

    If TextBox1.Value = "" Then
        MsgBox "Código é Campo Obrigatorio!"
        TextBox1.SetFocus
        
        'Sai da Rotina se Textbox1 estiver em Branco
        Exit Sub
        
    Else
    
    End If

    contador = 0
    
    'Congelamos a atualização da Tela
    Application.ScreenUpdating = False
    
    wshBDados.Activate
    Range("A1").Select

    Do While ActiveCell.Value <> TextBox1.Text And contador < 300
        ActiveCell.Offset(1, 0).Select
        contador = contador + 1
    Loop

    If ActiveCell.Value = TextBox1.Text Then
    
        TextBox2.Text = ActiveCell.Offset(0, 1).Value
        TextBox3.Text = ActiveCell.Offset(0, 2).Value
        TextBox4.Text = ActiveCell.Offset(0, 3).Value
        TextBox5.Text = ActiveCell.Offset(0, 4).Value
        TextBox6.Text = ActiveCell.Offset(0, 5).Value
        
        Call Módulo2.Liberar
        Call Módulo3.trancar
    
    Else
    
        MsgBox "Cadastro não localizado!", vbCritical, "Erro"
        TextBox1.SetFocus
    End If
    
    'Selecionamos a Aba Tela Inicial
    wshTelaInicial.Activate
    
    'Devolvemos a condição de atualizaçãode Tela
    Application.ScreenUpdating = True

End Sub

Eu particularmente prefiro utilizar a Function para Pesquisas, de uma olhada no Tópico abaixo e baixe o modelo e verá como é bem mais simples.
Function Pesquisar InputBox e TextBox
viewtopic.php?f=21&t=2877

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/10/2013 4:48 pm