Página 1 de 1

Lista suspensa com validação de dados

Enviado: 11 Dez 2020 às 10:33
por vitorms97
Bom dia,

Estou com duas dificuldades com lista suspensa e validação dados:

1º) Quando aciono a lista suspensa (a macro Control ActiveX) ele aceita dados que não estão na lista de referência quando digitados. Exemplo: se eu digitar 'pedro', ela vai aceitar mesmo não estando na lista de referência, sendo que na validação de dados se digitasse 'pedro' aparecia uma mensagem de erro.

Código usado p/ lista suspensa:

Option Explicit

Private Sub TempCombo_KeyDown(ByVal _
KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)

'Ocultar caixa de combinação e mover a próxima célula com Enter e Tab
Select Case KeyCode
Case 9
ActiveCell.Offset(0, 1).Activate
Case 13
ActiveCell.Offset(1, 0).Activate
Case Else
'Nada
End Select

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Dim wsList As Worksheet

Set ws = ActiveSheet
Set wsList = Sheets(Me.Name)
Application.EnableEvents = False
Application.ScreenUpdating = False

If Application.CutCopyMode Then
'Permite copiar e colar na planilha
GoTo errHandler
End If

Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
.Top = 10
.Left = 10
.Width = 0
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
End With

On Error GoTo errHandler
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 15
.Height = Target.Height + 5
.ListFillRange = str
.LinkedCell = Target.Address
End With
cboTemp.Activate

'Abrir a lista suspensa automaticamente
Me.TempCombo.DropDown
End If

errHandler:
Application.ScreenUpdating = True
Application.EnableEvents = True
Exit Sub

End Sub

2º) Como faço diferenciação de minúscula e maiúscula para esse mesmo problema acima?

Desde já agradeço quem puder ajudar!

Re: Lista suspensa com validação de dados

Enviado: 11 Dez 2020 às 20:08
por osvaldomp
vitorms97 escreveu: 11 Dez 2020 às 10:33 1º) Quando aciono a lista suspensa (a macro Control ActiveX) ele aceita dados que não estão na lista ...
Para desativar a digitação na Combo altere a Propriedade Style de 0 para 2.

Re: Lista suspensa com validação de dados

Enviado: 13 Dez 2020 às 19:12
por vitorms97
osvaldomp escreveu: 11 Dez 2020 às 20:08
vitorms97 escreveu: 11 Dez 2020 às 10:33 1º) Quando aciono a lista suspensa (a macro Control ActiveX) ele aceita dados que não estão na lista ...
Para desativar a digitação na Combo altere a Propriedade Style de 0 para 2.
Muito obrigado!