- Este tópico contém 2 respostas, 3 utilizadores e foi actualizado pela última vez há 12 anos, 7 meses por jorgerod.
-
AutorArtigos
-
-
22 de Maio de 2012 às 12:40 #1091AlbinoParticipante
boas
gostaria se é possivel ordenar o resultado numa combobox em ordem alfabética sem ter de ordenar a tabela onde estão os dados.
isto é:
num formulário de pesquisa tenho uma combobox onde me aparecem as entradas de uma folha de dados, acontece é que quando efctuo a pesquisa os resltados ai mostrados aparecem por ordem de introdução na folha de dados.
o que pretendia seria que ao introduzir um caracter nessa combobox, me devolve-se todas as entradas iniciadas por esses caractertes e não por ordem de introdução na folha de dados.obrigado
-
22 de Maio de 2012 às 19:20 #1877jorgerodAdministrador
albino,
tenta adaptar o seguinte código:
option explicit
private sub combobox1_enter()dim msg as string, strcriteria as string
dim lastrow as long, rnglist as rangemsg = “please enter 3 digits, example: 123”
lastrow = sheet1.cells(rows.count, 1).end(xlup).row
strcriteria = “=” & application.inputbox(msg, “enter three digits”, type:=2) & “*”
with sheet1 ‘sheet code name
‘turn off any filters before creating unique list
if .autofiltermode = true then .autofiltermode = false
‘ apply auto-filter using the value from the input box
.range(“a1”).autofilter field:=1, criteria1:=strcriteria, operator:=xland
‘ define the range for the filtered values
set rnglist = .range(“a1:a” & lastrow).specialcells(xlcelltypevisible)‘ clear the paste range to receive fresh content
.range(“g1”).currentregion.resize(, 1).clearcontents
rnglist.copy .range(“g1”)
end with‘ set the row source of the combo box the refernce the filtered list
with me.combobox1
.rowsource = sheet1.range(“g1”).currentregion.address
end withset rnglist = nothing
end sub
pode ser que te ajude. diz depois qq coisa, ok? e, se conseguires adaptar, coloca aqui 🙂
fica bem.
-
16 de Junho de 2012 às 22:15 #1092AnónimoInactivo
sub ordenarcombobox()
dim iforsta, isista as integer
dim i, j as integer
dim stemp as stringiforsta = 0
isista = combobox1.listcount - 1for i = iforsta to isista - 1
for j = i + 1 to isista
if combobox1.list(i) > combobox1.list(j) then
stemp = combobox1.list(j)
combobox1.list(j) = combobox1.list(i)
combobox1.list(i) = stemp
end if
next j
next i
end sub
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.