Vídeo recomendado
https://youtu.be/Ju8Esra5--I

Pesquisa valor de combobox em uma só linha da planilha

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Pesquisa valor de combobox em uma só linha da planilha

Mensagem por Reinaldo »

Talvez assim:

Código: Selecionar todos

Sub GuardarLitros()
Dim Ctrl As Control
Dim c As Integer, x As Integer
Dim strText As String
'Determina a coluna a ser utilizada
c = WorksheetFunction.Match(Me.ComboBoxMES.List(ComboBoxMES.ListIndex, 2), Sheets("GASOLEO").Range("A1:M1"), 0)
'Loop pelos controles do formulario
For Each Ctrl In UserForm_KmFimMes.Controls
    'considerando textbox 801 a 807
    For x = 1 To 7
    If x <= 9 Then
        strText = "TextBox80"
    Else
        strText = "TextBox8"
    End If
    If Ctrl.Name = strText & x Then
         If Ctrl <> "" Then Sheets("GASOLEO").Cells(x + 2, c) = Ctrl.Value
     End If
    Next
 Next
End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


pedro_mexico
Consultor
Consultor
Mensagens: 285
Registrado em: Qua Dez 09, 2015 5:54 pm

Re: Pesquisa valor de combobox em uma só linha da planilha

Mensagem por pedro_mexico »

boa noite Reinaldo,
mais uma vez obrigado pela ajuda que deu,

ao inicio o seu codigo nao estava a dar, mas tentei adaptar , substitui numero aqui e ali e consegui adaptar o codigo e coloquei a funcionar.
ficou assim

Código: Selecionar todos

Dim Ctrl As Control
Dim c As Integer, x As Integer
Dim strText As String
'Determina a coluna a ser utilizada
c = WorksheetFunction.Match(Me.ComboBoxMES1.List(ComboBoxMES1.ListIndex, 2), Sheets("GASOLEO 2").Range("A1:M1"), 0)
'Loop pelos controles do formulario
For Each Ctrl In UserForm_KmFimMes.Controls
    'considerando textbox 801 a 807
      For x = 8 To 30
    If x <= 9 Then
        strText = "TextBox80"
    Else
        strText = "TextBox8"
    End If
    If Ctrl.Name = strText & x Then
         If Ctrl <> "" Then Sheets("GASOLEO 2").Cells(x - 5, c) = Ctrl.Value
     End If
    Next
 Next
como a textbox começa no 808 e vai ate á 830, substitui o 1 to 7 por o 8 to 30, e como estava a gravar a partir da linha 8, depois fiz a subtraçao das linhas ao X inicial.

e ficou á primeira vista a funcionar .

amanha vou ver melhor e confirmo.

Muito obrigado pela ajuda dada Reinaldo


Responder