fabiob Posted February 26, 2014 at 05:52 PM Report #546762 Posted February 26, 2014 at 05:52 PM 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 http://cartamodelo.pt/ https://www.facebook.com/cartamodelo
Gnrtuga Posted February 26, 2014 at 10:48 PM Report #546794 Posted February 26, 2014 at 10:48 PM Boas, antes de mais, quase que tive de ir buscar uma lupa para ler o que escreveste... Mete ai o código para ver o que já tens... Assim sem ver digo-te que tens que programar ou o evento change da combobox, ou o lostfocus...mas sem ver são suposições. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :)
fabiob Posted February 26, 2014 at 11:21 PM Author Report #546800 Posted February 26, 2014 at 11:21 PM 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. http://cartamodelo.pt/ https://www.facebook.com/cartamodelo
Gnrtuga Posted February 27, 2014 at 09:41 AM Report #546820 Posted February 27, 2014 at 09:41 AM (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 February 27, 2014 at 09:43 AM 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.. :)
fabiob Posted February 27, 2014 at 10:09 AM Author Report #546826 Posted February 27, 2014 at 10:09 AM Bom dia, Obrigado pela ajuda e interesse demonstrados. Continuo a aceitar sugestões para o problema atrás referido... Boas programações... http://cartamodelo.pt/ https://www.facebook.com/cartamodelo
mlcalves Posted February 27, 2014 at 03:55 PM Report #546921 Posted February 27, 2014 at 03:55 PM Fábio, porquê é que queres que seja selecionada essa célula correspondente ao item selecionado na combo? Qual é o objetivo?
fabiob Posted February 27, 2014 at 08:46 PM Author Report #546984 Posted February 27, 2014 at 08:46 PM 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. http://cartamodelo.pt/ https://www.facebook.com/cartamodelo
mlcalves Posted February 28, 2014 at 09:56 AM Report #547038 Posted February 28, 2014 at 09:56 AM 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
fabiob Posted February 28, 2014 at 10:48 AM Author Report #547057 Posted February 28, 2014 at 10:48 AM Muito Obrigado pela ajuda, mas experimentei o teu código para a minha combobox que tem o nome de "procurar" e a célula continua parada, não se desloca para lado nenhum. Também tentei trabalhar a partir do código que sugeriste, mas devido a minha inexperiência também não consegui nada. Grato pela força. http://cartamodelo.pt/ https://www.facebook.com/cartamodelo
fabiob Posted February 28, 2014 at 02:31 PM Author Report #547117 Posted February 28, 2014 at 02:31 PM 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 http://cartamodelo.pt/ https://www.facebook.com/cartamodelo
mlcalves Posted February 28, 2014 at 02:45 PM Report #547120 Posted February 28, 2014 at 02:45 PM Fixe 🙂 Dá o tópico como resolvido
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now