Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por Cid
#36916
Pessoal, boa noite. Sou novo aqui e talvez alguém possa me ajudar..

Encontrei na internet um código para que quando eu digite na combobox me apareça todos os nomes que comecem com as letras que digitei (código abaixo). Só que estou procurando uma maneira de que apareçam no dropdown todos os nomes que CONTENHAM as letras que digitei.

Ex: Digitei Am e ele me mostra Amanda, Amanhã, Amora, etc.. Queria que ao digitar Am aparecesse Camaro, Vamos, Fruta amora e por ai vai..


Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, _
Cancel As Boolean)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet

Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
'clear and hide the combo box
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
'if the cell contains
'a data validation list
Cancel = True
Application.EnableEvents = False
'get the data validation formula
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
'show the combobox with the list
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = str
.LinkedCell = Target.Address
End With
cboTemp.Activate
'open the drop down list automatically
Me.TempCombo.DropDown
End If

errHandler:
Application.EnableEvents = True
Exit Sub

End Sub


Muito obrigado
Por Cid
#36964
gfranco escreveu:Boa noite.
Se eu entendi direito seu objetivo nem vai precisar de VBA.
Dê uma olhada:
https://www.youtube.com/watch?v=bPc9Z6VkCTQ
É mais ou menos isso. Só que eu vou ter várias combobox, aí eu teria q linkar cada uma a uma célula diferente e ter uma lista de dados pra cada uma delas..

Meu arquivo tem uma lista de uns 400 nomes de atividades (apenas 1 coluna). E o usuário vai ter q preencher vários campos com esses dados dessa lista. Uma picklist normal fica impossível de achar.

Esse vídeo praticamente resolve:
https://www.youtube.com/watch?v=7-S1D3IR2Nc&t=3s

O problema (nem é tão problema assim) é que toda vez q muda de célula a lista não reaparece por completo, fica gravado a última palavra escolhida. Ai pra reaparecer teria que apertar DELETE ou BACKSPACE. A macro meio que resolve isso só que ela acha apenas palavras que comecem com o digitado. Queria que encontrasse palavras que contenham o digitado...

Obrigado
Avatar do usuário
Por gfranco
Avatar
#36965
Sugiro então postar um modelo de seu arquivo que demonstre o cenário real (pode ser com dados fictícios MAS MESMA ESTRUTURA)
Anexe um arquivo Excel (não uma imagem)
Para anexar, clique em +Resposta e localize essa opção abaixo da caixa de digitação de mensagens.
Por Cid
#37093
Nessa picklist com a macro vc vai ver na Planilha 1 várias combobox como linhas de atividades a serem preenchidas. No entanto, quando vc digita ela só pesquisa se a palavra começa com o que vc escreveu
Pick List Automático - MACRO_teste.xlsm
Você não está autorizado a ver ou baixar esse anexo.
Por Cid
#37095
E nessa outra, sem Macro, ela encontra as opções que contenham o que vc escreveu, mas para limpar a lista é necessário apertar delete ou backspace. Isso devido à fórmula da célula E1 da planilha Auxiliar
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord