PEGAR O íNDICE DE UM MêS PELO NOME DO MêS

 Tópico anterior Próximo tópico Novo tópico

PEGAR O íNDICE DE UM MêS PELO NOME DO MêS

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#496424 - 07/03/2021 23:19:56

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Pessoal, tenho um combobox com o mês atual (coloquei para ele autopreencher o text do combobox com o mês atual no form_load)
cboConNotaMes.Text = Format(Date, 'mmmm')


Porem como ele autopreencher o text... ele não pegou o indice... entao qualquer consultar que eu faço pegando o mês pelo indice (janeiro=1, fevereiro=2, etc) sempre dar erro.
Pois o listindex tá -1 (nenhum selecionado)

então fiz assim:
If cboConNotaMes.ListIndex = -1 Then cboConNotaMes.ListIndex = MonthName(cboConNotaMes)


Ou seja, se não tiver nenhum selecionado, pega o índice do nome exibido no combobox.... mais sempre o resultado é -1

como faço para ele converter 'março' para '3', 'abril' para '4', etc



#496425 - 08/03/2021 09:08:40

FUTURA
.
Cadast. em:Maio/2004


vc vai ter que carregar  o valor numérico do mês no index do combo.. pra pegar o número do mês :   Month(data)



Resposta escolhida #496427 - 08/03/2021 12:19:34

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Olhe isto.
http://www.vbweb.com.br/dicas_visual.asp?Codigo=652



#496428 - 08/03/2021 13:28:04

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Citação:
:
vc vai ter que carregar  o valor numérico do mês no index do combo.. pra pegar o número do mês :   Month(data)


Justamente isso que não quero.... não quero carregar o combobox.... quer jogar o combo1.text='março' e ao pedi para saber qual é o numero que representa março ele me retornar o numero 3, abril = 4 e etc




#496444 - 10/03/2021 19:41:45

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


cboMes.Clear
cboMes.add 'Janeiro'
[...]
cboMes.add 'Dezembro'

cboMes.ListIndex + 1 'pois o primeiro item é zero .... que é janeiro

ou entendi mal?

____________________________________________________________________
Episcopal Studios


#496517 - 19/03/2021 21:29:26

AMELINHACODE
SAO PAULO
Cadast. em:Junho/2019


Citação:
:
cboMes.Clear
cboMes.add 'Janeiro'
[...]
cboMes.add 'Dezembro'

cboMes.ListIndex + 1 'pois o primeiro item é zero .... que é janeiro

ou entendi mal?


Não é isso! essa parte já tenho pronta!

Deu eu explicar melhor

Tenho 2 combobox (cboMes e cboAno)

no form_load eu autopreenchi cada combobox
cboMes.Text = Format(Date, 'mmmm')
cboAno.Text = Year(Date)


Tudo indo bem!
cboMes.Text = março
cboAno.Text = 2021

Auto preenchi os 2 combobox sem precisar mexer neles... correto?

Tenho um comandbutton que vai consultar vários registros baseados no mês escolhido nos 2 combobox.
SELECT * FROM TABELAX WHERE (MONTH(DataEmissao) = ' & cboMes.ListIndex + 1 & ') AND (YEAR(DataEmissao) = ' & cboAno& ')


Porem como foi explicado... não selecionei o mês de março no cbomes... e sim autopreenchi com a palavra 'março'... sendo assim não há um listindex definido

Ponto que quero chegar? preciso gerar algo que me diga qual numero(index) represente a string 'março' que está contida no cbomes.

sendo,
Janeiro=1
fevereiro=2
março=3
etc





#496518 - 20/03/2021 09:58:27

SAMUKA
PEDREIRA - SP
Cadast. em:Janeiro/2010


AMELINHACODE,

O problema é que quando você atribui um valor a propriedade TEXT do comboBox, ele não seleciona um item da List.

Para selecionar o mês, você pode fazer dessa forma
cboMes.ListIndex = Month(Date) + 1






#496519 - 20/03/2021 10:31:15

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Última edição em 20/03/2021 10:31:38 por EPISCOPAL

Ou vc pode usar um algoritimo para pesquisar

dim i as byte

for i = 0 to  cboMes.ListCount -1
     if cboMes.listindex(i) = 'O mes que vc quer' then
           'execute o que vc quer
     endif
next i



____________________________________________________________________
Episcopal Studios


#496520 - 20/03/2021 11:23:32

SAMUKA
PEDREIRA - SP
Cadast. em:Janeiro/2010


EPISCOPAL

Só um detalhe:
if cboMes.List(i) = 'março' then cboMes.ListIndex = i  





#496521 - 20/03/2021 13:17:25

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


EPISCOPAL e SAMUKA isso não é o que ela quer.
Se tem apenas um mês no combo porque listcount.
Acho mais sensato usar caixa de texto.
Uma ideia mais ou menos assim,
If Combo2.Text = 'março' Then
Text1.Text = Combo2.ListIndex + 4
ElseIf Combo2.Text = 'abril' Then
Text1.Text = Combo2.ListIndex + 5
End If



#496530 - 22/03/2021 13:17:34

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 22/03/2021 13:18:05 por FABRICIOWEB

Public Function NUMERODATA(ByVal monthName As String) As Integer
    Select Case monthName.ToLower
        Case Is = 'JANEIRO'
            Return 1
        Case Is = 'FEVEREIRO'
            Return 2
        Case Is = 'MARÇO'
            Return 3
        Case Is = 'ABRIL'
            Return 4
        Case Is = 'MAIO'
            Return 5
        Case Is = 'JUNHO'
            Return 6
        Case Is = 'JULHO'
            Return 7
        Case Is = 'AGOSTO'
            Return 8
        Case Is = 'SETEMBRO'
            Return 9
        Case Is = 'OTUBRO'
            Return 10
        Case Is = 'NOVENBRO'
            Return 11
        Case Is = 'DEZEMBRO'
            Return 12
        Case Else
            Return 0
    End Select
End Function




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por AMELINHACODE em 29/03/2021 22:24:12