Documente Academic
Documente Profesional
Documente Cultură
(https://www.contextures.com/index.html)
NOTE: You can't use ActiveX controls on a Macintosh. Prof. Lee Townsend shows how to create drop
downs using Form control combo boxes (https://uhaweb.hartford.edu/ltownsend/excel.html).
Introduction
https://www.contextures.com/xlDataVal11.html 1/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
Introduction
You can use Data Validation to create a dropdown list of options in a cell. However, the list font can't be
changed, nor can the number of visible rows, which has a maximum of eight. Also, Data Validation
doesn't have an AutoComplete feature, which finds matching items in the list as you start to type.
To overcome these limitations, you can add a combo box to your worksheet, and use programming to
make it appear in cells that contain a data validation list.
Double-click on a cell that contains a data validation list, and the combo box appears. The combo box's
font size can be set, more than 8 rows can be displayed, and autocomplete can be enabled.
Note: If the worksheet is protected, allow users to Edit Objects, and they will be able to use the
combobox.
https://www.contextures.com/xlDataVal11.html 2/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
Name the lists (there are Naming instructions here: Name a Range
(https://www.contextures.com/xlNames01.html#NameBox)):
NOTE: If you are using lists in formatted Excel tables, create a named range based on the table column.
Then, create a second named range, based on that first name. Otherwise, the combo box list will be
empty. See detailed instructions on this blog post
(https://contexturesblog.com/archives/2014/09/18/worksheet-combo-box-problem-in-excel-2013/).
As células B2: B12 têm listas de validação de dados com o DayList de origem . Quando uma
célula desse intervalo é selecionada, uma lista suspensa de dias da semana fica disponível.
As células C2: C12 têm listas de validação de dados com a fonte MonthList . Quando uma célula
nesse intervalo é selecionada, uma lista suspensa de meses fica disponível.
1. Na faixa de opções, clique na guia Desenvolvedor. Se você não vir a guia Desenvolvedor, siga as
etapas aqui (https://www.contextures.com/excel-macro-record-test.html#ReadyTest) para
https://www.contextures.com/xlDataVal11.html 4/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
mostrá-la.)
2. Clique no comando Design Mode
3. Clique em Inserir e, em Controles ActiveX, clique no botão da caixa de combinação para ativar
essa ferramenta.
4. Clique em uma área vazia da planilha para adicionar uma caixa de combinação
https://www.contextures.com/xlDataVal11.html 3/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
2. Na caixa de diálogo Fonte, selecione uma fonte, tamanho da fonte e outras configurações
desejadas para a sua caixa de combinação e clique em OK.
De na o número de linhas
1. Na janela Propriedades, clique na caixa ListRows
2. Digite o número de linhas que você deseja exibir no menu suspenso. Neste exemplo, a
configuração é: 12
Adicione o código
O código do Visual Basic for Applications (VBA) é necessário para fazer a caixa de combinação aparecer
quando você clica duas vezes em uma célula que contém uma lista de validação de dados. Veja detalhes
na próxima seção, para Como o código funciona .
NOTA: Para datas ou números na validação de dados, você pode usar o código KeyDown na seção
Código para números abaixo .
https://www.contextures.com/xlDataVal11.html 7/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
'==========================
Sub-Planilha Privada_AntesDoubleClick _
(ByVal Target As Range, _
Cancelar como booleano)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Definir ws = ActiveSheet
errHandler:
Application.EnableEvents = True
Sair do Sub
End Sub
'=========================================
Private Sub TempCombo_LostFocus ()
With Me.TempCombo
.Top = 10
.Left = 10
.Width = 0
https://www.contextures.com/xlDataVal11.html 8/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
Terminar com
End Sub
'====================================
Código opcional para mover para a próxima célula
'se Tab ou Enter forem pressionados
'do código por Ted Lanham
'*** NOTA: se KeyDown causar problemas,
'mude para KeyUp
'Tabela com números para outras teclas
'como a seta direita (39)
'https://msdn.microsoft.com/en-us/
library / aa243025% 28v = vs.60% 29.aspx
2. Escolha Editar | Cole, para colar o código no módulo da planilha, onde o cursor está piscando.
3. Escolha Arquivo | Feche e retorne ao Microsoft Excel.
https://www.contextures.com/xlDataVal11.html 9/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
Worksheet_BeforeDoubleClick
Este código é executado quando uma célula é clicada duas vezes.
As variáveis são definidas para a planilha ativa e a caixa de combinação denominada TempCombo - use
esse nome para sua caixa de combinação.
Definir ws = ActiveSheet
Free Grammar
Checker
Eliminate grammar errors instantly
and enhance your writing with
Grammarly
Grammarly DOWNLOAD
A caixa de combinação está oculta e sua célula vinculada e ListFillRange são limpas.
Com o cboTemp
limpar e ocultar a caixa de combinação
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
Terminar com
O tipo de validação de dados para a célula de Destino (a célula ativa) é verificado. Se for do tipo 3 (uma
lista suspensa), o restante do código será executado.
If Target.Validation.Type = 3 Então
A variável str obtém a fórmula de validação de dados para a célula Target. Por exemplo: "= MonthList".
Em seguida, o sinal de igual é removido, usando a função Direita. Isso deixa apenas o nome do intervalo
da lista de validação de dados - "MonthList"
str = Target.Validation.Formula1
str = Direita ( str , Len ( str ) - 1)
A caixa de combinação é tornada visível, e é posicionada no canto superior esquerdo da célula Alvo
Com o cboTemp
'mostre a caixa de combinação com a lista
.Visible = True
.Left = Target.Left
.Top = Target.Top
https://www.contextures.com/xlDataVal11.html 10/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
A largura e a altura da caixa de combinação são determinadas pela largura e altura da célula de destino,
com uma pequena quantidade adicionada. Você pode alterar o "+5" para um número diferente:
.Width = Target.Width + 5
.Height = Target.Height + 5
O ListFillRange é alterado para a variável str - MonthList - para que a caixa de combinação mostre os
itens desse intervalo nomeado.
.ListFillRange = str
.LinkedCell = Target.Address
cboTemp.Activate
Me.TempCombo.DropDown
Fim se
TempCombo_LostFocus
Esse código é executado quando você sai da caixa de combinação
A caixa de combinação está oculta, movida para o canto superior esquerdo da planilha e sua célula
vinculada e ListFillRange são limpas.
With Me.TempCombo
.Top = 10
.Left = 10
.Width = 0
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
Terminar com
https://www.contextures.com/xlDataVal11.html 11/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
6. Quando terminar, feche a janela Propriedade e clique no botão Design para sair do modo Design.
Na captura de tela abaixo, uma hora foi selecionada e, embora a célula esteja formatada para Hora, ela
aparece na célula como um número decimal longo. A entrada é realmente texto, não um número;
portanto, a formatação do número não a afeta.
https://www.contextures.com/xlDataVal11.html 13/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
Teste o código
IMPORTANTE: mantenha as duas folhas (ValidationSample e ValidationLists) na mesma
configuração de zoom, para evitar falhas no Excel. Há um bug estranho conectado às
caixas de combinação e aos níveis de zoom.
1. Clique duas vezes em uma das células que contém uma lista de validação de dados.
2. A caixa de combinação aparecerá
3. Selecione um item na lista suspensa da caixa de combinação ou comece a digitar, e o item será
preenchido automaticamente
Siga estas etapas para localizar a caixa de combinação e ajuste suas propriedades:
Grammarly DOWNLOAD
Para enviar os números para a planilha como números reais, em vez de texto, use o seguinte código, em
vez do código TempCombo_KeyDown acima.
Depois de selecionar um número (ou data ou hora) na lista suspensa da caixa de combinação, pressione
a tecla Enter ou a tecla Tab para mover para a próxima célula.
Certi cado
digital gratuito
Seu certi cado digital A1
pode sair de graça. É só
assinar qualquer plano do
eGestor eGestor.
NOTA: Esse código é usado no arquivo de exemplo, que você pode baixar abaixo . Você pode testá-lo na
coluna D na folha Amostra de validação.
https://www.contextures.com/xlDataVal11.html 14/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
'====================================
Código opcional para mover para a próxima célula
'se Tab ou Enter forem pressionados
'do código por Ted Lanham
'*** NOTA: se KeyDown causar problemas,
'mude para KeyUp
Application.EnableEvents = False
str = Target.Validation.Formula1
str = Direita (str, Len (str) - 1)
https://www.contextures.com/xlDataVal11.html 15/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
Abaixo dessas linhas, adicione as seguintes linhas de código, para manipular fórmulas INDIRECT
simples, como = INDIRECT (E2)
Isso é usado para a lista suspensa Cidade no arquivo de exemplo Dependent Combo abaixo.
O código verifica a propriedade ListFillRange, para ver se corresponde ao nome da fonte da lista
suspensa.
Se não corresponderem, o código definirá um intervalo, com base no nome e no endereço da
planilha para o intervalo nomeado dinâmico.
Em seguida, o ListFillRange é definido para esse nome e endereço da planilha.
Faça o download do arquivo de amostra para ver o código completo das listas dependentes com
intervalos dinâmicos:
https://www.contextures.com/xlDataVal11.html 16/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
.ListFillRange = str
If .ListFillRange <> str Then
'para intervalos nomeados dinâmicos
str = Target.Validation.Formula1
str = Direita (str, Len (str) - 1)
Definir wb = ActiveWorkbook
Defina nm = wb.Names (str)
Defina wsNm = wb.Worksheets _
(nm.RefersToRange.Parent.Name)
Defina rng = wsNm.Range _
(nm.RefersToRange.Address)
.ListFillRange = "'" & wsNm.Name _
& "'!" & rng.Address
Fim se
In the premium version, a list box automatically appears when you select a cell that has a drop down
list. You can set it to allow selection of a single item (button), or multiple items.
(https://www.contextures.com/datavalidationmultiselectpremium.html)
(https://www.contextures.com/datavalidationmultiselectpremium.html)
For multiple selections, the listbox pre-selects any items that are already in the cell. It also has buttons
to Clear all the selections, and select all the items.
https://www.contextures.com/xlDataVal11.html 17/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
The kit has a setup sheet, that lets you quickly customize the listbox, and details on how to add this
technique to your own workbooks. See the details here: Data Validation Multi Select Premium
(https://www.contextures.com/datavalidationmultiselectpremium.html).
3. Este arquivo de exemplo mostra uma caixa de combinação para listas suspensas dependentes com
base em um intervalo nomeado dinâmico (datavalidationsamples/datavalcombodepdynamic.zip) .
Links Relacionados
Validação de dados Multi Select Premium
(https://www.contextures.com/datavalidationmultiselectpremium.html)
https://www.contextures.com/xlDataVal11.html 18/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
(https://www.contextures.com/signup01)
(30excelfunctionsin30days01.html)
https://www.contextures.com/xlDataVal11.html 19/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
(https://www.contextures.com/datavalidationmultiselectpremium.html)
https://www.contextures.com/xlDataVal11.html 20/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
(/xlPivotPremAddIn.html)
https://www.contextures.com/xlDataVal11.html 22/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
(https://www.contextures.com/exceltoolsaddin.html)
https://www.contextures.com/xlDataVal11.html 24/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
(/xlPivotPremAddIn.html)
(https://mvp.microsoft.com/en-us/mvp/Debra%20%20Dalgleish-7612)Debra Dalgleish
(https://mvp.microsoft.com/en-us/mvp/Debra%20%20Dalgleish-7612)
https://www.contextures.com/xlDataVal11.html 25/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
https://www.contextures.com/xlDataVal11.html 21/25
09/07/2020 Caixa de combinação de validação de dados do Excel usando intervalos nomeados
https://www.contextures.com/xlDataVal11.html 23/25