Notifications
Clear all

Enviar valor do DataTimePicker para célula

4 Posts
2 Usuários
0 Reactions
930 Visualizações
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Pessoal,
Boa tarde!

Estou desenvolvendo uma nova planilha de controle, onde nela são inseridos dados em um UserForm e um destes dados é o período de tempo de consulta, "De:" - "Até:".

Me baseei no código desenvolvido pelo Thomas Vaszquez ( http://www.tomasvasquez.com.br/blog/mic ... -mscal-ocx) para criação do formulário, porém ao clicar "OK" não estou sabendo qual o código adotar para que a info dos ComboBox1 e 2 sejam enviadas para as células da guia "Dados".

Alguém poderia me ajudar nesta?

Obrigado.

Thiago

 
Postado : 28/07/2015 10:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Thiago, acontece que estes combobox não são preenchidos de forma normal, eles agem de acordo com o Modulo de Classe, então não tem como nos referirmos ao nome do Controle "Combobox1", veja que ao iniciar o formulário eles são indicados, mas os valores (datas) são armazenadas na VAriável DTP4 a qual é definida como - Private DTP4 As DateTimePicker, então para fazer o que pretende siga as instruções abaixo :

Veja que criei uma nova Variável de nome DTP5 para podermos diferenciar da primeira, esta será a que preenche o combo2
1º ) No de dois cliques no formulário "formGeofonia" e estará na rotina que inicializa com o formulário - Private Sub UserForm_Initialize(), nesta troque pela rotina abaixo :

Private Sub UserForm_Initialize()
    Set DTP4 = New DateTimePicker 'Combobox1
    Set DTP5 = New DateTimePicker 'Combobox2
    
    With DTP4
        .Add ComboBox1

        .Create Me, "dd/mmm/yyyy", _
                BackColor:=&H125FFFF, _
                TitleBack:=&H808000, _
                Trailing:=&H99FFFF
        .Value = Date
    End With
   
    With DTP5
        .Add ComboBox2

        .Create Me, "dd/mmm/yyyy", _
                BackColor:=&H125FFFF, _
                TitleBack:=&H808000, _
                Trailing:=&H99FFFF
        .Value = Date
    End With
    
End Sub

2º ) Role até a primeira linha no escopo do editor e acrescente a linha :
Private DTP5 As DateTimePicker- percebá que junto teremos a outra referente a DTP4

3º ) Volte ao Formulário e de dois cliques no Botão "OK" e troque a rotina pela a abaixo :
Veja que nas primeiras linhas os valores referentes aos combos datas veem das Variáveis DTP4 e DTP5

Private Sub CommandButton6_Click()

Dim UL As Long ' UL = Última Linha

    With Sheets("Dados")
        UL = .Cells(Rows.Count, "A").End(xlUp).Row + 1
        
        .Cells(UL, "A").Value = CDate(DTP4.Value) 'ComboBox1
        .Cells(UL, "A").Offset(0, 1).Value = CDate(DTP5.Value) 'ComboBox2
        .Cells(UL, "A").Offset(0, 2).Value = TextBox1.Value
        .Cells(UL, "A").Offset(0, 3).Value = TextBox2.Value
        .Cells(UL, "A").Offset(0, 4).Value = TextBox3.Value
        .Cells(UL, "A").Offset(0, 5).Value = TextBox4.Value
        .Cells(UL, "A").Offset(0, 6).Value = TextBox5.Value
        
    End With
    
    Unload Me
    
End Sub

Faça os testes e veja se é isto, qq duvida retorne.

Se a dica ajudou, clique na mãozinha agradecendo.

[]s

 
Postado : 28/07/2015 12:17 pm
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Excelente, Mauro!!!

Mais didático impossível! Muito obrigado mesmo! :D

Aproveitando a oportunidade, queria tirar somente mais uma dúvida. Note no UserForm que há o botão "Detalhar Páginas Anteriores" e que este novo Form tem várias ComboBox e suas respectivas TextBox. A ideia deste Form é detalhar a proporção de acessos por página.

Por exemplo, fazendo uma analogia de mais fácil compreensão, suponhamos que na planilha estivéssemos analisando uma amostra de 100 pessoas e gostaríamos de saber de qual Estado estas pessoas pertenciam. Em cada ComboBox eu selecionaria um Estado dentre as opções e na frente o número correspondente de pessoas deste Estado. Porém no Form tenho o equivalente a 8 ComboBoxes e suponhamos que tivessem pessoas de 10 estados, existe alguma forma de colocar algum botão que acrescente mais um Combobox dentro do Form? Uma espécie de botão de adicionar um novo campo? Ou isso não é possível?
Porque caso contrário, eu teria que ter 27 Combobox, uma correspondente a cada estado brasileiro, pois haveria a possibilidade de que dentro da amostra de 100 pessoas, tivessem pessoas de todos os Estados. :?

Caso queira também sugerir alguma alternativa para este problema, estou aberto a sugestões!

Muito obrigado, Mauro!

Abraços.

 
Postado : 29/07/2015 11:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Thiago, o botão que se referiu que está no form em questão não tem nenhuma instrução, então não sei o que quer fazer ao aciona-lo, porem vi que tem mais dois formularios um Formantes e outro Formdepois, pelo que entendi os combos serão preenchidos com os estados que não encontrei nenhum relação dos mesmos e texbox que como disse será preenchido com uma determinada informação apos selecionar um dado no combo, precisa detalhar melhor como os combos serão preenchidos, se com valores fixos ou de alguma lista na planilha.

Quanto a questão de adicionar controles, existe sim a possibilidade, e tudo dependerá das ações e resultados que queremos, tambem existe a possibilidade de se criar o formulário inteiro atraves do que chamamos de "Em tempo de execução", de uma olhada antes no tópico abaixo e veja o modelo para se interar.
inserir controle em tempo de execução
viewtopic.php?f=10&t=2858

Se pesquisar a qui no forum ou no google pelo termo "controle tempo de execução" ou parecido encontrara varios exemplos sobre o assunto.

Editando : para não ter de reescrever tudo, editei, pois fiz os comentários baseado no modelo anterior, só agora vi este ultimo, mas continua a questão de como serão preenchidos estes combobox.
[]s

 
Postado : 29/07/2015 11:46 am