Notifications
Clear all

PROCV COM LISTA PARA OPÇÃO DE ESCOLHA

4 Posts
1 Usuários
0 Reactions
1,720 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal estou fazendo uma planilha que usa o procv mas a listagem dos itens para serem digitados é muito grande e exigiria uma memoria de elefante por parte do usuário para tê-los todos guardados na cabeça.
Quero colocar um form ou uma caixa de texto que seja flutuante ao lado dos campos para que o usuário possa ver a listagem dos itens e digitar o código.
Peguei na internet um código que permite que se trabalhe na planilha enquanto o formulário está aberto mas nao permite a digitacao dos dados.
Isso seria o ideal pra mim, pensei em usar os comentários mas fica inviável pela quantidade de itens, talvez a caixa de texto mas nao teria uma barra de rolagem ao lado...

Alguem tem uma solução para algo assim?

 
Postado : 12/01/2010 10:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

segue duas dicas....
ve se ajuda!!!

Combo Box
download/file.php?id=298

Iniciado pela letra
http://www.4shared.com/file/139683488/e ... letra.html

 
Postado : 13/01/2010 5:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu consegui fazer o que precisava, usei um código que achei para fazer com que pudesse usar a planilha com o formulário aberto e em outro caso achei um código que coloquei no botão que chama o form aí ficou perfeito, agora posso digitar enquanto a tela está aberta.
Segue abaixo os códigos.

Código:

Option Explicit

Private Declare Function FindWindow& Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName$, _
ByVal lpWindowName$)

Private Declare Function SetWindowLong& Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, _
ByVal dwNewLong&)

Private Declare Function EnableWindow& Lib "user32" _
(ByVal hWnd&, ByVal fEnable&)

Private Declare Function ShowWindow& Lib "user32" _
(ByVal hWnd&, ByVal nCmdShow&)

'--------------------->

Private Sub UserForm_Initialize()
'\ Minimizar
Dim Style As Long

Style = &H84C80080 Or &H20000 Or &H40000
SetWindowLong FindWindow(vbNullString, Me.Caption), -16, Style
EnableWindow FindWindow(vbNullString, Application.Caption), 1
End Sub

'--------------------->

Private Sub UserForm_Activate()

Dim hWnd As Long

hWnd = FindWindow(vbNullString, Me.Caption)
ShowWindow hWnd, 0
SetWindowLong hWnd, -20, &H40101
ShowWindow hWnd, 1
End Sub

Para Chamar o formulário:

Código:

Sub UserfoemShowNonModal()
#If VBA6 Then
UserForm1.Show 0
#Else
UserForm1.Show
#End If
End Sub

 
Postado : 14/01/2010 4:12 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Voce pode fazer uma lista com validação de dados dos itens também, talvez ajude.

 
Postado : 09/05/2010 10:30 am