Change data in a spreadsheet through a listbox

Asked

Viewed 1,062 times

0

I have a form with two text boxes, three command buttons, a listbox and some Abels.

The purpose of the form is to list data that is entered in the database (which is the excel spreadsheet itself).

How the code works:

The texts are inserted into the 2 texbox and the listbox is fed through rowsource in code.

It works almost all right; register the text, the listbox is fed by BD through rowsource but in the last stage it is change the entered data button not active.

Follows the code:

'CADASTRAR TEXTO NO LISTBOX

Private Sub Boão_Cadastrar_Click()


If VerificaCampo(Me.CAIXA_DE_TEXTO01.Text) = False Then
    MsgBox "Informe o texto desejado", vbExclamation, "ERRO"
    Exit Sub

End If

If VerificaCampo(Me.CAIXA_DE_TEXTO02.Text) = False Then
    MsgBox "Informe o texto desejado", vbExclamation, "ERRO"
    Exit Sub

End If


    Sheets("VALIDAÇÃO").Activate 'ATIVA A PLANILHA CORRESPONDENTE
    Range("E2").Select 'SELECIONA A CÉLULA ESPECIFICADA ENTRE OS PARENTESES

Do 'FAÇA
        If ActiveCell.Value <> Empty Then  'SE O VALOR DA CELULA SELECIONADA FOR DIFERENTE DE VAZIO ENTÃO

            ActiveCell.Offset(1, 0).Select  'A CELULA ATIVA VAI PARA O CAMINHO INDICADO NOS PARENTESES
        End If                              'FIM DO SE

Loop Until ActiveCell.Value = Empty         'REPETIR ATÉ QUE O VALOR DA CÉLULA ATIVA SEJA IGUAL A VAZIO

    ActiveCell.Value = Me.CAIXA_DE_TEXTO01 'O VALOR DA CÉLULA ATIVA VAI RECEBER O QUE FOR DIGITADO NA CAIXA DE TEXTO CORRESPONDENTE

    ActiveCell.Offset(0, 1).Value = Me.CAIXA_DE_TEXTO02.Text 'O MESMO DE CIMA

    MsgBox ("Atualização efetuada com SUCESSO!!") 'MESSAGEM DO SISTEMA

    Me.CAIXA_DE_TEXTO01.Text = Empty 'LIMPA A CAIXA DE TEXTO
    Me.CAIXA_DE_TEXTO02.Text = Empty 'LIMPA A CAIXA DE TEXTO

    'ATUALIZA OS DADOS PARA QUE ELES APARECAM NO FORMULÁRIO SEM PRECISAR FECHÁ-LO
    Unload Me
    Userform.Show

End Sub

'CAMPO DE VERIFICAÇÃO

Private Function VerificaCampo(Texto As String) As Boolean

    If Texto = "" Then
    VerificaCampo = False

    Else
    VerificaCampo = True

    End If

End Function

'SELECIONA OS DADOS NA LISTBOX PARA PODER SER FEITA A ALTERAÇÃO EM DADOS

Private Sub ListBox1_Change()

Me.CAIXA_DE_TEXTO01.Text = ListBox1.List(ListBox1.ListIndex, 0) '1ª COLUNA
Me.CAIXA_DE_TEXTO02.Text = ListBox1.List(ListBox1.ListIndex, 1) '2ª COLUNA

End Sub

'BOTÃO QUE ALTERA LEGISLAÇÕES E/OU ARTIGOS

Private Sub Botão_Alterar_Legislações_Artigos_Click()

If VerificaCampo(Me.CAIXA_DE_TEXTO01.Text) = False Then
    MsgBox "Informe a legislação desejada", vbExclamation, "ERRO"
    Exit Sub

End If

If VerificaCampo(Me.CAIXA_DE_TEXTO02) = False Then
    MsgBox "Informe o texto desejado", vbExclamation, "ERRO"
    Exit Sub

End If

Dim X As String
Dim Y As String

X = Me.CAIXA_DE_TEXTO01.Text
ARTIGO = Me.CAIXA_DE_TEXTO02.Text

Dim LINHA As Integer
LINHA = ListBox1.ListIndex

ListBox1.List(LINHA, 0) = X
ListBox1.List(LINHA, 1) = Y

Me.CAIXA_DE_TEXTO01 = ""
Me.CAIXA_DE_TEXTO02 = ""

Me.CAIXA_DE_TEXTO01.SetFocus

End Sub

'LIMPAR TUDO/APAGAR DA PLANILHA

Private Sub Botão_Limpar_Tudo_Click()

[E2:F100000].ClearContents

Unload Me

Userform.Show

End Sub


'POPULAR LISTBOX:

Private Sub UserForm_Initialize()

Ulinha = Range("e1000000").End(xlUp).Row

ListBox1.RowSource = "VALIDAÇÃO!E2:F" & Ulinha

End Sub
  • Please do not write the title of the question in high box. Take the opportunity and do a [tour] to learn more about the community.

  • can yes; sorry; I will fix.

  • Edited. Thank you; :)

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.