Jump to content

Recommended Posts

Posted

Boa tarde,

Em primeiro lugar gostaria de agradecer a todos os que tornam este fórum possível, pois assim temos a oportunidade de partilhar conhecimento.

Quanto à minha dúvida está relacionada com a ComboBox. Isto é, eu já tenho uma ComboBox que me mostra os dados inseridos nas células, no entanto não me está a seleccionar a respectiva célula. Assim, eu gostaria de saber como faço (quais os comandos) para que cada vez que escolher uma palavra na ComboBox a respectiva célula onde se encontra essa palavra fique seleccionada.

Desde já agradeço a ajuda e orientação que me possam facultar.

Fábio Santos

Posted

Boas,

O código abaixo coloca os valores na ComboBox

Private Sub UserForm_Initialize()


pesquisa = Worksheets("Folha1").UsedRange.Rows.Count
If pesquisa > 1 Then
procurar.RowSource = "a2:a" & pesquisa
End If

___________________________________________

E o código a seguir preenche os restantes campos de acordo com os dados correspondentes à ComboBox

Private Sub procurar_AfterUpdate()

Dim linha As Integer
Dim digo As String

digo = procurar
linha = 2

Sheets("Folha1").Select

Do Until Sheets("Folha1").Cells(linha, 1) = ""

If Sheets("Folha1").Cells(linha, 1) = digo Then

codigo = Sheets("Folha1").Cells(linha, 1)
nipc = Sheets("Folha1").Cells(linha, 2)
nib1 = Sheets("Folha1").Cells(linha, 3)
nib2 = Sheets("Folha1").Cells(linha, 4)
morada = Sheets("Folha1").Cells(linha, 5)
lote = Sheets("Folha1").Cells(linha, 6)
postal = Sheets("Folha1").Cells(linha, 7)
localidade = Sheets("Folha1").Cells(linha, 8)
administradores = Sheets("Folha1").Cells(linha, 9)
fornecedores = Sheets("Folha1").Cells(linha, 10)
pagamentos = Sheets("Folha1").Cells(linha, 11)
relatorio = Sheets("Folha1").Cells(linha, 12)
tarefas = Sheets("Folha1").Cells(linha, 13)
extras = Sheets("Folha1").Cells(linha, 14)
banco = Sheets("Folha1").Cells(linha, 15)

Exit Sub

End If
linha = linha + 1
Loop

End Sub

Agora o que eu pretendia era outro comando, talvez no evento Change, que a cada vez que eu escolher um valor na ComboBox seleccionaria automaticamente a respectiva célula no Excel.

Obrigado pela Ajuda.

Posted (edited)

Boas, eu digo sempre que interessa é funcionar...

Só para conhecimento, eu para carregar uma combo a partir de uma folha do excel faço assim:

Dim linha As Integer, coluna As Integer
linha = 2
coluna = 8
Me.ComboBox1.Clear
With Sheets("teste")
	Do While Not IsEmpty(.Cells(linha, coluna))
		Me.ComboBox1.AddItem .Cells(linha, coluna).Value
		linha = linha + 1
	Loop
End With

Não quer dizer que seja a forma mais correta 🙂

Em relação ao seleccionar a célula, tentei e não estou a conseguir, e também estou com pouco tempo.

Deixo-te aqui um exemplo que eu tenho a funcionar, mas que vai buscar o valor de uma TextBox, vai procurar esse valor na folha, selecciona as células à esquerda desse valor, insere valores e muda a cor da linha. Com tempo deves conseguir adaptar ao que tu queres, altera e experimenta até acertares.

processo é o nome da minha textbox

Dim pesquisa As Range
Set pesquisa = Folha1.Range("e:e").Find(processo.Value, LookIn:=xlValues, lookat:=xlWhole)
If pesquisa Is Nothing Then
MsgBox ("Processo não Encontrado"), vbExclamation, "Verifique se o valor introduzido está correcto!"
Else
With pesquisa
.Offset(0, -2) = "1"
.Offset(0, -3) = "-"
.Interior.ColorIndex = 45
End With
Call CommandButton3_Click
 MsgBox ("Processo Actualizado!" & " " & iniciado.Text & " " & "Iiciados" & " " & concluido.Text & " " & "Concluídos"), vbInformation
End If

Boa sorte.

Edited by Gnrtuga

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted

Boa tarde MLCAlves,

Eu tenho um botão com a função actualizar, e o meu objectivo é poder alterar os dados das textbox. Ou seja, quando clicar no botão actualizar, carregar os dados nas células correspondentes e isso só é possível se eu na coluna A tiver a linha correcta activada, porque, de acordo com os comandos do meu botão actualizar, os dados serão actualizados a partir da célula seleccionada e essa pode estar em qualquer lado.

Por outras palavras, a aplicação que eu desenvolvi no VBA é para cadastrar clientes, neste momento já os consigo cadastrar, e carregar os seus dados a partir do código escolhido na combobox. No entanto, como a célula activa não corresponde à célula da combobox, cada vez que altero os dados e faço "actualizar", preenche as células a partir daquela que está activa, que normalmente é a célula onde se encontra o código do último cliente.

Assim, se eu a cada vez que seleccionasse um código a partir da combobox, a respectiva célula ficasse activa poderia fazer a actualização dos dados desse cliente sem problemas. Penso eu...

Este é o código do meu botão actualizar
Private Sub actualizar_Click()
ActiveCell.Value = codigo.Text
ActiveCell.Offset(0, 1).Value = nipc.Text
ActiveCell.Offset(0, 2).Value = nib1.Text
ActiveCell.Offset(0, 3).Value = nib2.Text
ActiveCell.Offset(0, 4).Value = morada.Text
ActiveCell.Offset(0, 5).Value = lote.Text
ActiveCell.Offset(0, 6).Value = postal.Text
ActiveCell.Offset(0, 7).Value = localidade.Text
ActiveCell.Offset(0, 8).Value = administradores.Text
ActiveCell.Offset(0, 9).Value = fornecedores.Text
ActiveCell.Offset(0, 10).Value = pagamentos.Text
ActiveCell.Offset(0, 11).Value = relatorio.Text
ActiveCell.Offset(0, 12).Value = tarefas.Text
ActiveCell.Offset(0, 13).Value = extras.Text
ActiveCell.Offset(0, 14).Value = banco.Text
MsgBox "Dados do cliente actualizados com sucesso"
End Sub

Obrigado pelo interesse.

Posted

Boas,

Um pequeno exemplo

Private Sub ComboBox1_Change()
If Me.ComboBox1.Text = "codigo" Then
Sheet1.Range("A2").Select
End If
If Me.ComboBox1.Text = "nipc" Then
Sheet1.Range("B2").Select
End If

End Sub
Posted

Obrigado a todos os que me ajudaram e tem ajudado.

Mas já consegui descobrir qual o código para esta operação.

No envento Change da combobox colocar:

digo = procurar.Value ' Valor selecionado na ComboBox
Sheets("Folha1").Select  'Seleciona a Folha onde se encontra o código
Cells.Find(digo).Activate 'Procura o valor que está na combobox e ativa a célula

Grato e boas programações

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.