Página 1 de 1

LISTBOX E FORMULARIOS

Enviado: Qui Mai 23, 2019 9:14 pm
por Fernando Batista
BOA NOITE A TODOS...SOU INICIANTE EM VBA... TENHO UMA PLANILHA DE PACIENTES
NOME PLANO CARTAO , E UMA UMA LISTA DE PESQUISA COM UM TEXTBOX E UM LIST BOX.

QUANDO PESQUISO POR NOME VEM...
NOME PLANO CARTÃO
BENEDITO ANT SSB 24584
BENEDITO LUI SSB 24584
BENEDITO MAR CCX 54871
BENEDITO RUI BBC 54784

BEM ATE AI TUDO CERTO...

OQUE EU QUERIA É QUE QUANDO EU DESSE 2 CLIQUES NO NOME QUE EU ESCOLHESSE ABRIRIA O FORM DE ACORDO COM A COLUNA 2.
OU SEJA PARA CADA PLANO EU TENHO UM FORM POIS A FOLHA DE PEDIDO DE EXAMES NAO SÃO IGUAIS.
POR EXEMPLO: SE EU CLICAR NO BENEDITO MAR ELE ABRIRA O FORM_CCX.... E SE EU CLICAR NO BENEDITO ANT ABRIRA O FORM_SSB..

AGRADEÇO A AJUDA

Re: LISTBOX E FORMULARIOS

Enviado: Sex Mai 24, 2019 9:59 am
por Reinaldo
Assim e dificil, pois não se pode testar (por razoes obvias), não se sabe nomes/tipos de campos retorno etc...
Experimente no evento clique ou duplo clique incluir um If

Algo como:--> If seuCampo.valor="valor" then seuformulario.show

Re: LISTBOX E FORMULARIOS

Enviado: Sáb Mai 25, 2019 6:34 am
por Fernando Batista
Obrigado agradeço muito ter respondido, mas é por ai mesmo.. é essa condição "if" que falta... so que eu não sei colocar na sintaxe
Vou explicar melhor. Na Plan1 eu tenho no cabeçalho Nome - Plano - Cartão...
Tenho um Form de Pesquisa_nome que me retorna o nome do paciente. O que eu quero é que quando o nome deste paciente for selecionando pelo curso ele é enviado ao Form de acordo com o plano de exemplo;
Nome: Benedito Alves ///Plano: SSB ///Cartao: 25455 = O Plano esta na segunda coluna do ListBox>
Seria como o exemplo abaixo:
Se coluna 2 for igual a condição 1 (SSB) então abra o FormSSB/// Se a coluna 2 for igual a Condição 2 (CCX) então abra o FormCCX.... e assim por diante

so que eu naõ sei colocar>

If condição Then
[ instruções ]
[ ElseIf condição-n Then
[ instruçõeselseif ]]
[ Else
[ instruçõeselse ]]
End If

Re: LISTBOX E FORMULARIOS

Enviado: Sáb Mai 25, 2019 6:40 pm
por Reinaldo
Pois é, dificil tentar propor algo tentando imaginar o que vem de onde e como.
A sintaxe seria

Código: Selecionar todos

If seuCampo.valor = "valor1" Then
    seu.formulario.nome.Show
    'blablabla
ElseIf seuCampo.valor = "valor2" Then
    seu.outroformulario.nome.Show
    'blablabla
Else
    'blablabla
    '.....
End If
Mas assim nem via bola de cirstal.
Espero que alguem tenha entendido melhor e possa auxilia-lo

Re: LISTBOX E FORMULARIOS

Enviado: Seg Mai 27, 2019 8:20 pm
por Fernando Batista
Mais uma vez muito obrigado... vou tentar fazer depois te falo...

Re: LISTBOX E FORMULARIOS

Enviado: Seg Jun 03, 2019 3:35 pm
por Fernando Batista
REINALDO MUITO OBRIGADO PELA CODIGO.. EU FIZ ESSE ESTA FUNCIONANDO;
SO TEM UM PROBLEMA NÃO CONSIGO COLOCAR O SETFOCUS NO TXTEXAME1.SETFOCUS....

ELE IMPRIME 2 VEZES... NÃO SEI OQUE ESTA ERRADO. E NEM ONDE COLOCAR




Private Sub Txtobservacao_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheets("IAMSPETP").Range("Q25").Value = Txtobservacao.Value
Sheets("SANTA").Range("Q25").Value = Txtobservacao.Value

Dim vS As String
Dim vI As String
Dim Vc As String
Dim Vf As String

vS = "SANTA CASA"
vI = "IAMSPE"
Vc = "CABESP"
Vf = ""

If Me.Txtnomeplano.Value = "SANTA CASA" Then

'SANTA.Select
Me.Hide
'SANTA.PrintPreview
SANTA.PrintOut
Range("b1:y45").Select
'ActiveSheet.PrintOut

'Txtexame1.SetFocus

ElseIf Me.Txtnomeplano.Value = "IAMSPE" Then
' 'IAMSPETP.Select
Me.Hide
'IAMSPETP.PrintPreview
IAMSPETP.PrintOut
Range("b1:z44").Select

ElseIf Me.Txtnomeplano.Value = "CABESP" Then

'Vc = "CABESP"
'CABESP.Select
Me.Hide
'CABESP.PrintPreview
CABESP.PrintOut
Range("b1:AD71").Select

Else

'If Me.Txtnomeplano.Value = "" Then

MsgBox "Impresso não encontrado!!!", vbExclamation, "Formulário"

End If


Me.Txtexame1.Value = ""
Me.Txtexame2.Value = ""
Me.Txtexame3.Value = ""
Me.Txtexame4.Value = ""
Me.Txtexame5.Value = ""
Me.Txtobservacao.Value = ""


Me.Show
TXTEXAME1.SETFOCUS


End Sub

Re: LISTBOX E FORMULARIOS

Enviado: Seg Jun 03, 2019 6:09 pm
por Reinaldo
O setfocus, dependendo da estrutura de seu formulário, não efetua o que se é esperado. São varios fatores que poderão influenciar, e já vi casos de não foi obtido sucesso. experimente utilizar o repaint:

Código: Selecionar todos

Private Sub Txtobservacao_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Sheets("IAMSPETP").Range("Q25").Value = Txtobservacao.Value
Sheets("SANTA").Range("Q25").Value = Txtobservacao.Value

If Me.Txtnomeplano.Value = "SANTA CASA" Then
    Me.Hide
    SANTA.PrintOut
    Range("b1:y45").Select
ElseIf Me.Txtnomeplano.Value = "IAMSPE" Then
    Me.Hide
    IAMSPETP.PrintOut
    Range("b1:z44").Select
ElseIf Me.Txtnomeplano.Value = "CABESP" Then
    Me.Hide
    CABESP.PrintOut
    Range("b1:AD71").Select
Else
        MsgBox "Impresso não encontrado!!!", vbExclamation, "Formulário"
End If

Me.TXTEXAME1.Value = ""
Me.Txtexame2.Value = ""
Me.Txtexame3.Value = ""
Me.Txtexame4.Value = ""
Me.Txtexame5.Value = ""
Me.Txtobservacao.Value = ""

Me.Show
Me.repaint
TXTEXAME1.SetFocus
End Sub
Quanto a imprimir 2x, nada na rotina que justifique; porem não sou favorável a disparar uma rotina assim a partir de um evento de tipo o que está utilizando, pois sempre que "passar" por esse controle irá disparar essa situação.

Re: LISTBOX E FORMULARIOS

Enviado: Qui Jun 13, 2019 10:54 am
por Fernando Batista
BOM DIA.. REINALDO.... TODO O SISTEMA ESTA RODANDO BELEZINHA.... GRAÇAS A SUA EXPLICAÇÃO...
MAS O ENGRAÇADO É QUE ESTE SETFOCUS QUANDO VAI NA TXTBOX ELE DE INICIO ELE APARECE MAS DEPOIS SOME... ESTRANHO