Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Scroll Mouse em ListBox
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Scroll Mouse em ListBox
Colegas, estava revendo alguns arquivos antigos do excel armazenados no PC, são tantos que nos esquecemos doque temos e deixamos alguns interessantes para traz, e encontrei um que habilita o Scroll do Mouse dentro de um Listbox quando este ultrapassar a quantidade de itens, então segue o exemplo a quem possa vir a precisar.
Anexo Atualizado em 03/05/2011 abraços
Anexo Atualizado em 03/05/2011 abraços
-
- Colaborador
- Mensagens: 12
- Registrado em: Ter Nov 09, 2010 9:58 am
Re: Scroll Mouse em ListBox
Fiz os testes na listbox mas o scroll do mouse nao funcionou nao sei o porquê!Mauro Coutinho escreveu:Colegas, estava revendo alguns arquivos antigos do excel armazenados no PC, são tantos que nos esquecemos doque temos e deixamos alguns interessantes para traz, e encontrei um que habilita o Scroll do Mouse dentro de um Listbox quando este ultrapassar a quantidade de itens, então segue o exemplo a quem possa vir a precisar.
abraços
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: Scroll Mouse em ListBox
Dizer somente que não funcionou, não ajuda muito.[BDS] escreveu:Aqui também não funcionou
Baixei o arquivo e testeii no Excel 2003 e Excel 2007 e funcionou perfeitamente nas duas versões.
Procurem detalhar o que fizeram para podermos entender o pq não funcionou, informações tipo :
Não funcionou quando executam o formulário no arquivo anexo ?
Não funcionou porque moveram ou colocaram a rotina em outro Formulário ?
Não funcionou em formulário em outro arquivo ?
Se foi criado um outro arquivo, é necessário copiar as rotinas do modulo, e tambem fazer a chamada no inicializar do formulário.
[]s
Re: Scroll Mouse em ListBox
Perfeito !!!!!!! Parabéns a toda equipe ! Me destaco bem nos locais onde trabalhei e trabalho por conhecer bastante de VBA e excel, mas após lidar com o código disponibilizado vejo que ainda sou um aprendiz !
Vi que além de fornecer de "mão beijada" os códigos, sempre se deve deixar um item em que se deve pensar antes de utilizá-los, mas para facilitar a quem não conseguiu usar o código disponibilizado, vai:
Basta incluir o código na inicialização do formulário (UserForm_Initialize) ----> UserFormHook Me, Me.Caption
Abs e muito obrigado.
Vi que além de fornecer de "mão beijada" os códigos, sempre se deve deixar um item em que se deve pensar antes de utilizá-los, mas para facilitar a quem não conseguiu usar o código disponibilizado, vai:
Basta incluir o código na inicialização do formulário (UserForm_Initialize) ----> UserFormHook Me, Me.Caption
Abs e muito obrigado.
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: Scroll Mouse em ListBox
Rener, seja Bem vindo ao Forum.
Em nome da equipe, agradeço os parabens.
Quanto a sua obs, deve ter visto que na rotina do Inicializar do formulário, consta a linha em questão, por isso que peço para aqueles que dizem que não funcionou, detalharem qual o erro e o que fizeram, pois muitos adaptam o código em outros arquivos utilizando somente o CTRL+C e CTRL+V, desconsiderando o Modulo (scrollListbox) que contem as APIs ou alterando algum nome, com isso gerando erros ou o não funcionamento corretamentte.
Grato pela obs, e fique a vontade para postar duvidas e sempre que possível continuar colaborando com o Forum.
abraços
Em nome da equipe, agradeço os parabens.
Quanto a sua obs, deve ter visto que na rotina do Inicializar do formulário, consta a linha em questão, por isso que peço para aqueles que dizem que não funcionou, detalharem qual o erro e o que fizeram, pois muitos adaptam o código em outros arquivos utilizando somente o CTRL+C e CTRL+V, desconsiderando o Modulo (scrollListbox) que contem as APIs ou alterando algum nome, com isso gerando erros ou o não funcionamento corretamentte.
Grato pela obs, e fique a vontade para postar duvidas e sempre que possível continuar colaborando com o Forum.
abraços
Re: Scroll Mouse em ListBox
Tomás Vasques, Mauro e equipe,
em alguns testes que fiz utilizando meu form (com um listbox e alguns combos) percebi um erro quando rolar o mouse sem um controle selecionado. Não sei se é a melhor solução (básica), mas incluí os códigos abaixo:
'Scroll 2 linhas da listbox ou página a página em conjunto com o CTRL
Sub MouseWheel(Formulario As UserForm, ByVal Rodar As Long)
Dim LinhasListBox As Integer, Linhas2Scroll As Integer, xIndex As Integer
With Formulario
If TypeName(.ActiveControl) = "ListBox" Or TypeName(.ActiveControl) = "ComboBox" Then 'Incluído para utlizar também os combos
LinhasListBox = .ActiveControl.ListCount
Linhas2Scroll = 2
If Rodar > 0 Then
'rodar acima
xIndex = .ActiveControl.TopIndex - Linhas2Scroll
If xIndex < 0 Then xIndex = 0
On Error GoTo 80 'Incluído
.ActiveControl.TopIndex = xIndex
Else
'rodar abaixo
xIndex = .ActiveControl.TopIndex + Linhas2Scroll
If xIndex > LinhasListBox Then xIndex = LinhasListBox
On Error GoTo 80 'Incluído
.ActiveControl.TopIndex = xIndex
End If
End If
End With
80 End Sub
Ainda sim, no excel 2007, quando interrompo o formulário (sem execução de códigos no momento), o mesmo é encerrado automaticamente. Sabem algo sobre ?
Abs
Rener
em alguns testes que fiz utilizando meu form (com um listbox e alguns combos) percebi um erro quando rolar o mouse sem um controle selecionado. Não sei se é a melhor solução (básica), mas incluí os códigos abaixo:
'Scroll 2 linhas da listbox ou página a página em conjunto com o CTRL
Sub MouseWheel(Formulario As UserForm, ByVal Rodar As Long)
Dim LinhasListBox As Integer, Linhas2Scroll As Integer, xIndex As Integer
With Formulario
If TypeName(.ActiveControl) = "ListBox" Or TypeName(.ActiveControl) = "ComboBox" Then 'Incluído para utlizar também os combos
LinhasListBox = .ActiveControl.ListCount
Linhas2Scroll = 2
If Rodar > 0 Then
'rodar acima
xIndex = .ActiveControl.TopIndex - Linhas2Scroll
If xIndex < 0 Then xIndex = 0
On Error GoTo 80 'Incluído
.ActiveControl.TopIndex = xIndex
Else
'rodar abaixo
xIndex = .ActiveControl.TopIndex + Linhas2Scroll
If xIndex > LinhasListBox Then xIndex = LinhasListBox
On Error GoTo 80 'Incluído
.ActiveControl.TopIndex = xIndex
End If
End If
End With
80 End Sub
Ainda sim, no excel 2007, quando interrompo o formulário (sem execução de códigos no momento), o mesmo é encerrado automaticamente. Sabem algo sobre ?
Abs
Rener
Re: Scroll Mouse em ListBox
caros frequentadores do fórum, incluindo em minha última postagem:
tanto a linha que mencionei a ser incluída na inicialização do formulário quanto a maior parte do do código informado em minha última mensagem são de autoria e disponibilização de Mauro Coutinho.
tanto a linha que mencionei a ser incluída na inicialização do formulário quanto a maior parte do do código informado em minha última mensagem são de autoria e disponibilização de Mauro Coutinho.