Ir para conteúdo
Fórum Script Brasil

PBJ

Membros
  • Total de itens

    11
  • Registro em

  • Última visita

Tudo que PBJ postou

  1. Olá Tenho um listbox com linhas e colunas proveniente dos dados existentes na plan2. Gostaria de uma rotina que ao selecionar o item da listbox que mostra apenas os valores das três primeiras colunas substitua toda a linha existente na plan1 caso os três primeiros valores sejam iguais. obrigado.
  2. PBJ

    Ajuda com ListBox !

    Prezados, Peço ajuda para solucionar uma rotina de testes entre 3 listBox, onde o usuário no caso de esquecer de selecionar um deles seja avisado. Um dos listBox é MultiSelect e todos são ListStyleOption. A rotina que criei abaixo funciona somente com os primeiros itens de cada listBox se selecionar a partir do segundo item ele informa como falso. Como poderia resolver isso? Private Sub CommandButton1_Click() Dim i As Integer Dim j As Integer Dim r As Integer For i = 0 To ListBox1.ListCount - 1 For j = 0 To ListBox3.ListCount - 1 For r = 0 To ListBox4.ListCount - 1 If ListBox1.Selected(i) = False Then MsgBox "ListBox1 falta selecionar" ElseIf ListBox3.Selected(j) = False Then MsgBox "ListBox3 falta selecionar" ElseIf ListBox4.Selected® = False Then MsgBox "ListBox4 falta selecionar" End If Exit Sub Next r Next j Next i End Sub agradeço ajuda.
  3. Criei novo post com detalhes sobre esse assunto. http://scriptbrasil.com.br/forum/index.php?showtopic=143162
  4. PBJ

    Onde está o ERRO!

    Paulo, Funcionou, Plan1.Range("A65000").End(xlUp)(2, 1) = CDate(Me.ListBox1.List(i)) obrigado.
  5. Prezados, Gostaria de apoio para desenvolver uma forma para interação entre dois ListBox e dois ComboBox da seguinte forma. Aceito outras sugestões. ListBox1 armazena as datas de todo um ano. 01/01/2009 a 31/12/2009 ComboBox1 armazena as horas do período de 24h. 00:00 a 23:00 ComboBox2 também armazena as horas do período de 24h 00:00 a 23:00 ListBox2 armazena as datas selecionadas na ListBox1 . Ao selecionar uma data em ListBox1, o usuário deverá selecionar o horário de inicio e final nas ComboBox1 e 2, clicar em gravar e a data e horários transferidos para ListBox2. Somente a conclusão do período de 24h a data deve ser removida da listBox1. Exemplo: O usuario pode selecionar o período de 00:00 a 14:00, podendo selecionar mais tarde selecionar outros horários a partir das 14:00 até concluir o período de 24h. Somente a conclusão do período de 24h a data selecionada na listBox1 seja removida. A Listbox2 armazena a cada click de gravar a data e horários escolhidos pelo usuário. Outro detalhe necessário e possibilitar a ListBox2 por meio de um botão resgatar as datas e seus respectivos horários para alterações. Option Explicit Private Sub UserForm_Initialize() Dim lastRow As Long Dim i As Integer ListBox1.Clear 'Verifica qual a ultima linha preenchida lastRow = Plan2.Range("A65000").End(xlUp).Row 'Adiciona datas na ListBox1 For i = 2 To lastRow Me.ListBox1.AddItem Plan2.Range("A" & i) Next ComboBox1.Clear 'Verifica qual a ultima linha preenchida lastRow = Plan2.Range("B65000").End(xlUp).Row 'Adiciona horas na ComboBox1 For i = 2 To lastRow Me.ComboBox1.AddItem Format(Plan2.Range("B" & i).Value, "hh:mm") Next ComboBox2.Clear 'Verifica qual a ultima linha preenchida lastRow = Plan2.Range("C65000").End(xlUp).Row 'Adiciona horas na ComboBox2 For i = 2 To lastRow Me.ComboBox2.AddItem Format(Plan2.Range("C" & i).Value, "hh:mm") Next ListBox2.Clear 'Verifica qual a ultima linha preenchida lastRow = Plan1.Range("A65000").End(xlUp).Row 'Adiciona datas na ListBox2 For i = 2 To lastRow 'Me.ListBox2.RowSource = "A2:C" & i Me.ListBox2.AddItem Plan1.Range("A" & i) Next End Sub Private Sub CommandButton1_Click() Dim i As Integer 'Adicionar data da ListBox1 para ListBox2 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.List(i) Plan1.Range("A65000").End(xlUp)(2, 1) = ListBox1.List(i) End If Next i 'Remover da ListBox1 a data For i = ListBox1.ListCount - 1 To 0 Step -1 If ListBox1.Selected(i) = True Then ListBox1.RemoveItem (i) End If Next i End Sub abraços,
  6. Olá, Consegui resolver o problema da data formatando as celulas da Plan1 como texto. Esse é a linha que adiciona as datas para Plan1: Plan1.Range("A65000").End(xlUp)(2, 1) = ListBox1.List(i) Não entendi o motivo da inversão do dia com o mês. JoséA Posso enviar por e-mail para você? abraços, Peter Segue meu e-mail. peter@vmtubes.com.br
  7. PBJ

    Onde está o ERRO!

    Olá, Tenho a seguinte linha em meu código: Plan1.Range("A65000").End(xlUp)(2, 1).Value = ListBox1.List(i) Transfiro uma data de um listbox para outros sem problemas, mas imprimindo na planilha o valor fica invertido. Assim, 1/2/2009 é alterado para 2/1/2009 ??? Onde estou errando?
  8. Olá pessoal, Estou removendo o item selecionado na listBox1 e transferindo o item removido da listBox1 para a listBox2. Private Sub CommandButton1_Click() Dim i As Integer 'Incluir na listBox2 o item selecionado na listbox1 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then Plan1.Range("A65000").End(xlUp)(2, 1) = ListBox1.List(i) ListBox2.AddItem ListBox1.List(i) End If Next i 'Retirar da listbox1 o item selecionado For i = ListBox1.ListCount - 1 To 0 Step -1 If ListBox1.Selected(i) = True Then ListBox1.RemoveItem (i) End If Next i End Sub Problemas: A listBox1 e alimentada pela Plan2 com as datas de 01/01/2009 a 31/12/2009 O item data quando selecionado é transferido para a listBox2 e impresso na Plan1. O problema é que a data selecionada por exemplo 2/1/2009 e impressa de forma trocada dia e mês, 1/2/2009. Como resolver ? Outro problema: Ao reiniciar a userform os valores da listbox1 selecionados e removidos retornam, como escrever uma linha de código para remover da plan2 a data. abraços,
  9. Prezado JoséA. Funcionou muito bem! Agradeço sua ajuda. obrigado, Peter
  10. Olá José, Sim, seleciono na combobox uma data para reeditar os valores existentes da planilha. Ao selecionar uma data o programa vai até a plan1 na data correspondente, busca os valores e apresenta nas textbox para alterações dos valores que forem necessários. O problema que ao selecionar a data o programa buscar os valores na plan1 e armazena todas na 2ª linha em vez de manter na mesma linha da data selecionada. Exemplo: Ao selecionar a data do dia 4/1/2009 na combobox o programa vai até plan1 na "A5" e transporta para as textbox para alterações necessárias, e imediatamente o programa leva os valores da linha 5 que são 1200003 na "B5"; 600003 na "D5" e 853 na "C5" para a "A2" sobrepondo os valores 1200001 na"B2"; 600001 na "C2" e 851 na "D2". AF-1 AF-2 PCI 1/1/2009 1200001 600001 851 2/1/2009 1200001 600001 851 3/1/2009 1200002 600002 852 4/1/2009 1200003 600003 853 5/1/2009 1200004 600004 854 O que eu gostaria é que permanecesse na mesma linha da data selecionada. abraços,
  11. Olá pessoal! Peço ajuda para solucionar a seguinte dúvida: Tenho uma planilha com todas as datas do ano 1/1/20009 a 31/12/2009 ("A2:A366"), e inseri as datas na ComboBox1 com a seguinte rotina na inicialização do formulário: Private Sub UserForm_Initialize() Dim i As Range For Each i In ThisWorkbook.Worksheets("Plan1").Range("A2:A366").Rows Me.ComboBox1.AddItem Format(i.Cells(1, 1), "") Next i End Sub Muito bem, até ai sem problemas. Para cada linha da coluna "A" com suas datas tenho também nas colunas "B,C,D..." valores inseridos por meio de TextBox, que são registrados na planilha, vejam exemplo: 1/1/2009 2000 120 25 125 2/1/2009 1200 100 74 142 3/1/2009 3000 80 123 159 4/1/2009 4000 60 172 176 5/1/2009 5000 120 221 193 6/1/2009 6000 180 270 210 7/1/2009 7000 240 319 227 Criei uma rotina para selecionar na ComboBox1 uma data cujos valores retornam novamente para as TextBox para serem alterados, vejam a rotina: Private Sub ComboBox1_Change() Dim i As Integer i = ComboBox1.ListIndex + 2 Select Case i Case i TextBox1.Value = ActiveSheet.Cells(i, 2).Value TextBox2.Value = ActiveSheet.Cells(i, 3).Value TextBox3.Value = ActiveSheet.Cells(i, 4).Value TextBox4.Value = ActiveSheet.Cells(i, 5).Value TextBox5.Value = ActiveSheet.Cells(i, 6).Value TextBox6.Value = ActiveSheet.Cells(i, 7).Value TextBox7.Value = ActiveSheet.Cells(i, 8).Value End Select End Sub O problema é que ao selecionar a data os valores correspondentes são inseridos na linha 2, sendo que deveriam estar na mesma linha da data selecionada para alteração. i = ComboBox1.ListIndex + 2 ????? Agradeço ajuda!
×
×
  • Criar Novo...