Muito obrigado! Existem muitos tutoriais bons no youtube, mas poucos que explicam assuntos complexos de uma maneira que as pessoas consigam entender. Parabéns!!! Ganhou mais um seguidor!!!
@@Macrofaz Somente uma dúvida, depois de chamar a data, não é possivel enviar os dados para uma célula nao? Criei um formulario de cadastro todos os textbox são gravados na planilha exceto o campo da data.. O meu Formulario de cadastro faz um loop pra ver qual a próxima linha vazia e preenche-la. Obrigado !
Olá Lucas Moreira, muito obrigado por participar e pelo elogio! São feedbacks assim que fazem valer toda a dedicação para trazer conteúdo útil e interessante. Grande abraço!
Amigo, primeiramente obrigado pela excelente explicação. Gostaria de saber se esse controle datetimepicker, funciona em qualquer versão do Office, 32, 64, e 2010, 2013, 365?
Olá Luis DRM, obrigado pela participação e pelo feedback. Olha, já usei de Office de 2010 até 365, mas todas em 64 e foi normalmente! Grande abraço, Ademir Martins
Boa tarde! Excelente conteúdo 👏🏽👏🏽 Uma dúvida: tem como eu deixar o calendário dentro da célula? Facilmente visível pra quem for preencher o formulário?
Olá Gabrieli, obrigado pela participação e feedback no canal! Olha, infelizmente, não daria pra colocar o calendário numa célula porque ele é todo feito em vba (macro) ok? Grande abraço, Ademir Martins
Bom dia professor, meu nome é Jeovah Jr. Percebi que você realmente fera. Será que você pode me ajudar ? Vou tentar te explicar. Sou vendedor, tem como fazermos uma agenda inteligente de planejamento, tenho um formulário que utilizo a muito tempo mas o que realmente preciso é o seguinte. Tenho que agendar 10 clientes por dia certo ? Vamos supor que na segunda feira dia 25/03 tenho 10 cientes agendados. Então vamos lá. No calendário do Execel eu clicaria no dia 25 e então teria a relação dos 10 clientes agendados. Continuando, depois que eu entrar nos dados do cliente, farei a visita ou ligação, ai o cliente me disse para eu votar daqui a 15 dias, então terei que reagendar certo ? Teria como criar um botão de visita para que quando eu clicar no botão do execel esta visita seria reagendada automaticamente ? Se ficou muito complicado tem como eu entrar em contato com você para te explicar melhor ? Fico no aguardo, um ótimo domingo.
Eu usei o código na minha planilha e deu super certo. Mas estou tendo dificuldade no seguinte: O calendário esta "instalado" na combobox1. Como eu faço para que no evento change ou exit da combobox 1 o valor da data ser mostrado numa label
Olá, olha, infelizmente, da maneira que a classe foi criada, não é possível usar as propriedades da Combobox, ela só serve como recipiente do calendário, ok? Grande abraço, Ademir que
boa noite, tenho uma duvida. consegui utilizar o calendário em minha planilha, só que após isso eu preciso copiar a informação desta data para uma célula que fiz isso a partir de um comando de um botão "ok" no userform. só que quando informo que celula EX: Cells(linha, 8) = ComboBox2.Value a informação da data não é replicada. Falo isso pois já tinha uma planilha , mas que eu precisa colocar a data manualmente e ela funcionava normalmente essa questão de replicar a informação da combobox e achei estranho quando não consegui copiar a informação da data logo desta combobox nova, já que as outras estão funcionando normalmente . será que podes me ajudar?
Olá Igor, o calendário utiliza a combobox para montar o calendário, porém não usamos a propriedade .Value da combobox para enviar a data, mas sim da seguinte forma: Cells(Linha, 8) = dpFrom.Value(0). Grande abraço, Ademir Martins
Boa noite! Show de bola, quebrei um pouco a cabeça mais consegui fazer umas edições que eu queria. Queri saber que forma eu uso pra inserir em um botão para fechar a combobox após selecionar a data.
Olá Janilson Rodrigues, obrigado pela participação. Infelizmente, não compreendi sua questão. Se preferir, pode enviar um exemplo daquilo que precisa, me enviando um e-mail. Grande abraço.
Bom dia. Muito obrigada pelo vídeo! Estou com uma dúvida. Já utilizo seu calendário em um projeto para gestão de estoque em VBA (em dois formulários diferentes). Entretanto, em um deles a data é salva corretamente na planilha. Já no segundo, a data apresentada na planilha é sempre 12:00 AM. Já revisei o código, mas não encontrei o problema. Você poderia me ajudar? Obrigada.
Olá Beatriz Summer, obrigado pela participação no canal. Olha, se você estiver usando o DateTimePicker, o problema está na formatação da célula no Excel, pois essa classe não usa horas, ok? Portanto, formate a célula para DD/MM/AA que irá funcionar. Grande abraço.
Boa noite Ademir, estou utilizando o seu calendário em um projeto, porém preciso manipular os calendários criados no form1 através do form2, é possível? Estou tentando há bastante tempo sem sucesso. Veja, criei um cadastro com duas datas no meu form1 onde utilizei o calendário, a alteração dos dados ficou a cargo do form2 que possui uma listbox que manipula os campos do form1 de acordo com os dados carregados nela, porém não consigo manipular o calendário através deste formulário, estou usando a seguinte estrutura no form2: For i = 0 To Me.ListBox1.ListCount - 1 If Me.ListBox1.Selected(i) Then .......... DateTimePicker.Value(1) = Me.ListBox1.List(i, 4) Tem alguma sugestão? Estou pensando em abandonar o uso do calendário e voltar ao método de input tradicional =( Obrigado de qualquer forma, o calendário ficou muito bom.
Ola Lucas Souza, obrigado pela participação. Pra poder lhe ajudar melhor, envie por e-mail uma amostra do seu projeto, ok? Grande abraço, Ademir Martins
Como eu faço pra usar o evento "change" do Combobox1 neste caso? Private Sub Combobox1_Change() MsgBox "Teste" End Sub Tentei usar o evento change do combobox1, mas não funciona. Não estou sabendo implementar esta solução. No meu form há dois combos (Um de entrada, e outro de saída). O que eu preciso é: No no evento "change" do combobox1, pegar a data selecionada, acrescer + 1 dia, e atribuir no combobox2. No "initialize" do form funciona, mas no "chance" do combobox1 não. Segue o código inserido no "initialize" do form. Private Sub UserForm_Initialize() Set dpFrom = New DateTimePicker With dpFrom .Add CheckIn .Add CheckOut .Create Me, "dd/mmm/yyyy", _ BackColor:=&H125FFFF, _ TitleBack:=&H808000, _ Trailing:=&H8000000C, _ TitleFore:=&HFFFFFF .Value(2) = Date + 1 End With End Sub
A classe usa a combobox apenas para exibir o calendário, os eventos como Change, por exemplo, não são ativados quando a data muda. Você terá que usar outro controle, como um botão por exemplo, para checar a mudança de data e aí sim usar uma função “Change”. Grande abraço, Ademir Martins
@@Macrofaz Bom dia. Obrigado pela resposta, mas infelizmente, um botão não resolve o problema em questão. Eu precisava validar isso no "change", além de melhorar a usabilidade, iria prever alguns erros dos usuários. Será que o desenvolvedor da classe consegue atribuir esta "propriedade change"?
Olá Ademir, muito boa a sua explicação do calendário... to tentando integrar esse formulário no meu projeto mas não sei como fazer a chamada dessa tela.... tenho uma tela que tem o botão ENTRAR e no código desse botão preciso de chamar a tela do calendário e não sei como fazer! pode me ajudar, please....
Olá Eliane Ito, obrigado por participar do canal. Me envie uma amostra do que você quer que eu lhe envio um exemplo, ok? Meu e-mail: contato@macrofaz.com.br. Grande abraço, Ademir Martins.
Show de bola, excelente vídeo. Gostaria de uma ajuda, adaptei seu calendário em uma planilha de busca onde seleciono a data e através de um botão buscar realizo um filtro na listbox por data, gostaria que ao selecionar a data no calendário já executasse o filtro na listbox, tentei de varias maneiras mas não consegui. Parabéns!!! Ganhou mais um seguidor!!!
Olá Marcelo Alves, obrigado pela participação e feedback! Me mande uma amostra do que quer fazer por e-mail que eu lhe respondo com o exemplo, ok? Grande abraço, Ademir Martins.
Olá! Duvida rápida, quando coloco o dpfrom.value(1) como "change" no ComboBox1 ele não altera nenhum comando. Gostaria de ao alterar a data executar alguma ações sem um comando manual para tal. É possível? Obrigado
Olá Izabela Bonomo, obrigado por participar do canal. Olha, se eu entendi bem, para fazer isso você terá que usar um Textbox para receber a data e trabalhar no change dele, pois o Combobox só tem a propriedade de atribuir o calendário, e portanto seu change não funciona, ok? Grande abraço, Ademir Martins.
@@Macrofaz Olá, professor! Quando a gente muda a data no calendário faz se necessário um evento adicional para enviar o valor de dpfrom para algum lugar. Existe uma maneira de usar o evento afterupdate do calendário para enviar o valor dpfrom pra uma text ou variável?
Show de bola, excelente vídeo. Gostaria de uma ajuda. Estou querendo colocar seu código em um VBA que tenho, porém acusa : "variável não declarada". Poderia me dar essa ajuda ? Obrigado !
Olá Alan David, obrigado pela participação e feedback. Talvez você não tenha declarado a variável "dpfrom" como pública no form. Dê um duplo clique no form e verifique se na primeira linha tem a seguinte instrução: "Public dpfrom as DateTimePicker", lembrando que deve estar acima do evento Initialize, lá no topo do código, acima do traço da sub, ok? Grande abraço.
Olá Marcelinho Ferreira, obrigado pela participação deixando seu feedback! Para enviar para a planilha, basta usar a expressão dpFrom.Value(0) com a célula, da seguinte forma: Range("A1") = dpFrom.Value(0). Grande abraço, Ademir Martins.
@@Macrofaz opa meu querido. Muito obrigado mesmo. Ganhou mais um inscrito. Mais uma vez obrigado pela atenção e disponibilidade para ajudar. Grande abraço.
Boa noite Professor, sou um usuário básico de Excel e estou tentando fazer uma formula para ocultar linhas com datas indesejadas em minha planilha mas estou com dificuldade em montá-las. Tenho 66 anos e não estou com a memoria muito boa para esta atividade e se você quiser e puder, ficarei muito grato em cerebela. Seria assim: quando o mês tem 31 dias, tudo bem com a minha planilha. Mas quando o mês tem 30 dias a célula seguinte vem com a data do 1 dia do mês seguinte. Quero ocultar as linhas que vem com datas do mês seguinte ou seja, só quero as linhas do mês corrente. Espero ter sido claro com minha ignorância no assunto e espero seu parecer se for possível. Grato Eduardo
Olá Eduardo Amaral, obrigado pela participação. Me mande um exemplo de sua questão, que assim fica mais fácil de lhe ajudar. Grande abraço, Ademir Martins.
Olá ótimo projeto ia me ajudar um monte no meu, mais eu já tenho um formulário montado então ao agregar esse códigos no initialize a parte do público dpFrom As Datetimepicker se mistura com os outros códigos q já estão no meu formulário e não vai ..tem como me ajudar desde já muito obg
Olá Patricio, obrigado pela participação no canal. Olha, precisaria ver o que exatamente está conflitando, pois tenho outros projetos com vários códigos nesse evento initialize e sem problemas, ok? Grande abraço, Ademir Martins
Boa noite professor. Fiz do jeitinho que está no vídeo, porém a minha combobox está em cima de um quadro. Aparece a data na combobox, mas não permite que eu altere a data e nem o calendário aparece. A Combobox fica como se estivesse desabilitada. Mas se eu colocar a combobox diteto no meu Userform o calendário funciona corretamente. Como posso corrigir isso?
Olá Allyson Rodrigues, obrigado pela participação. Olha, o calendário não funciona dentro de frames ou multpages. Se o seu form possuir esses objetos, sugiro chamar um form pequeno só para selecionar a data com o calendário, ok? Grande abraço, Ademir Martins.
Olá Sérgio, da maneira que a classe foi criada, acredito que não seja possível mudar a fonte para negrito, apenas a cor que está em hexadecimal, ok? Grande abraço Ademir Martins.
Olá Marcio Ozorio, obrigado pela participação! Quando a classe é criada, ela automaticamente já se atribui ao ComboBox, portanto, deixar em branco não daria. O que você pode fazer é deixar uma sugestão de dada mais apropriada para o usuário, manipulando a data que irá se apresentar com a exibição do form, ok? Isso é uma prática comum. Grande abraço.
Marcio, substitua o UserForm_Inicializate por Userform_MouseUp. Vai ficar assim: Private Sub txtData_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Set dpFrom = New DateTimePicker With dpFrom .Add txtData .Create Me, "dd/mmm/yyyy", _ BackColor:=&H125FFFF, _ TitleBack:=&H262626, _ Trailing:=&H99FFFF, _ TitleFore:=&HFFFFFF End With End Sub Não é 100% mas ja disfarça bem.. kk Abç
Olá Kledson Gomes, obrigado por participar e deixar seu feedback no canal. Então, depois que o calendário é criado pela classe, não tem como deixar a data em branco. Uma opção seria criar um botão para chamar um form com o calendário, assim você poderá deixar um Textbox em branco, ok? Grande abraço, Ademir Martins.
Olá Rodrigo, obrigado pela participação e feedback! Me desculpe, mas não entendi sua pergunta. Se preferir, pode me enviar uma explicação mais detalhada por e-mail, ok? Grande abraço, Ademir Martins
Ola, Obrigado pelo vídeo. Na minha planilha eu coloco os dados em um formulario e ele envia eles para uma tabela, nesse formulario tem um campo data, estou tentando trocar, em vez de eu digitar a data manualmente vou usar esse calendario. Mas mesmo selecionando a data no calendario ele nao vai para a planilha. tentei usar o dpfrom.value mas devo ter feito algo errado, poderia me dar alguma dica para resolver isso ?
Olá Jonas Carvalho, tanto para capturar, quanto para enviar data para o calendário, você deve usar a propriedade .Value seguida do índice do calendário. Por exemplo, se vc possui apenas um calendário, para enviar ou capturar a data, use: dpFrom.Value(0) Ok? Grande abraço
Olá caro Professor! Bela explicação e parabéns por compartilhar conhecimentos, porém quando eu coloco a combox em um frame ele não funciona ele adiciona uma outra combox automaticamente em um lugar fora do frame, poderia me ajudar nessa questão. Grato.
Olá Jeverson Bitazzi, obrigado pela participação. A classe que monta o calendário foi criada para se dimensionar com o X,Y do form. Quando o calendário está num frame ou tab ele se perde. Ainda não consegui estudar o código pra ver se há como alterar isso, mas se conseguir faço um vídeo com certeza, ok? Às vezes vale a pena chamar um form pequeno só pra mostrar o calendário fora do frame. Grande abraço, Ademir Martins.
Olá João obrigado pela participação e feedback. Você pode usar a função Replace (data, "/", ".") antes de jogar no destino, ok? Grande abraço, Ademir Martins
Achei muito bom o arquivo e atende ao que preciso no momento, todavia não consegui baixar o arquivo no site. Não encontrei o mesmo. Achei até outros vídeos interessantes para estudar, mas precisava deste arquivo. Poderia me encaminhar um link direto do arquivo?
Parabéns, estou acompanhando o seu trabalho e estou gostando muito! Tenho uma dúvida, como faço para que uma macro seja chamada através de um Link DDE, quando o valor dela for mudado?
Olá Nei Cezar, obrigado por participar do canal e deixar seu feedback! Para entender corretamente sua dúvida, me anvie um exemplo por e-mail, ok? Grande abraço, Ademir Martins.
Opa, mestre! Parabéns pelo trabalho! Está me ajudando bastante... Só estou com um problema... Não consegui fazer funcionar quando os ComboBox estão dentro de um quadro ou de uma MultiPage. Não encontrei nenhum evento para estes controles que permitisse a ativação do calendário, já que dentro do evento Initialize do Formulário também não funcionou. Você pode me ajudar?
Olá Silvanio P. Silva, obrigado pela participação e pelo feedback. Infelizmente a classe DataTimePicker não foi desenhada para trabalhar com MultiPages. Ela só funciona dentro de apenas um nível de instância, que no caso é o formulário. O mesmo acontece se colocarmos dentro de um frame, ok? Grande abraço.
boa tarde amigo,estou com uma duvida estou usando o datetimepicker no meu formulario excel vb e ao clicar no botão pra salvar da erro,vc poderia me dar uma dica qual o codigo colocar no btn salvar!!!!!
Olá Anderson Silva, mande um e-mail com a tela do erro para o e-mail de contato, assim fica mais fácil pra lhe ajudar, ok? O endereço é: contato@macrofaz.com.br
Olá Jorge García, obrigado por participar do canal! Para enviar a data para uma célula basta usar a expressão: Range("A1").Value = dpFrom.Value(0). Grande abraço. Ademir Martins.
Ola, muito legal esse calendário mas gostaria de uma ajuda, se eu colocar o combobox do userform dentro de um Frame ele não funciona corretamente, poderia verificar e ver se teria alguma alternativa para funcionar o combobox dentro do frame. Obrigado
Olá Moisés Moreira, obrigado pela participação. A classe que monta o calendário foi criada para se dimensionar com o X,Y do form. Quando o calendário está num frame ou tab ele se perde. Vou dar uma olhada na classe e ver se consigo alterar isso. Caso consiga eu respondo seu comentário, ok? Grande abraço. Ademir Martins.
6 років тому
Excelente video, Ademir! Parabéns! Tive o mesmo problema que o Moises. Fico aguardando o comentário caso tenha encontrado uma alternativa.
@@Macrofaz Também estou tentando colocar o calendário dentro de uma Frame, porém sem sucesso até o momento. Se conseguir alterar a classe eu agradeceria muito. Parabéns pelo excelente trabalho! Abraço!
Parabéns pela explanação e conteúdo. Gostaria de saber como executar operações aritméticas entre essas datas (subtrair uma data final da inicial, por exemplo, extraindo o número de dias entre elas). Tentei usar o datediff mas não deu certo. Agradeço de antemão. Abs
Olá MSD, obrigado pela participação e feedback! Para fazer cálculo com a data do calendários, você deve fazer assim - se quiser fazer diferença em dias da data atual e a data do calendário: DateDiff("d", Date, dpFrom.Value(0)). Se quiser adicionar um dia na data do calendário seria assim: DateAdd("d", 1, dpFrom.Value(0)). Ok? Grande abraço, Ademir Martins
@@Macrofaz . Olá Ademir. Primeiramente grato por seu pronto retorno e atenção. Entretanto não está funcionando. Tenho 2 calendários no userform. Inseri uma textboxDias para receber o resultado (em dias) da diferença entre as datas que escolher no calendários. Atribuí ao evento change desta textbox o seguinte: textboxDias.value=datediff("d", dpfrom.value(1), dpfrom.value(2)). E nada.... Pode me ajudar? Grato
Buenos días, quería saber si me podrías ayudar. Verás, estoy haciendo un pequeño programa de inventario y me gustaría enviar el dato de la fecha a una tabla en Access. Obviamente para esto, debo extraer el valor de la misma userform, pero al momento de registrar el valor en la tabla de Access me arroja el siguiente error: "El objeto no admite esta propiedad o método". Yo estoy extrayendo el dato de la siguiente forma Userform1.dpFrom(0).Value. Cuál sería la manera correcta? Muchas gracias por tu tiempo y disposición de antemano.
Hola amigo Victor Araya, gracias por la participación. Es difícil saber el motivo del error sin ver el programa. Me envía una muestra de su proyecto, así que voy a analizar y responder a su correo electrónico. Mi correo electrónico es contato@macrofaz.com.br. Me alegro de poder ayudar. El gran abrazo, Ademir Martins.
Olá Magno Diego, obrigado pela participação. Você tem as opções de BackColor, TitleBack, etc., mas acredito que vc só consiga mudar a cor da fonte do mês anterior que aparece no calendário. As cores estão em hexadecimal, para trocar uma cor, use uma paleta de cor no formulário (BorderColor ou ForeColor), copie e cole na propriedade. Grande abraço, Ademir Martins.
Ola, muito bom, mas com um problema comigo....fiz tudo seguindo sua orientação, mas a janela do msg box, onde aparece a data para seleçao no meu formulario ficou no alto a esquerda atrapalhando o visual...como arrumo isso?
Olá Jose, obrigado pela participação e feedback! Me mande um print por e-mail da sua tela pra eu entender direitinho o que precisa ok? Grande abraço, Ademir Martins
Boa noite, é só colocar essa palavra "PtrSafe" antes do "Function", sem as aspas! No caso, ficaria assim: Private Declare PtrSafe Function. Espero ter ajudado.
Olá Lucas Nunes , obrigado pela a participação. Para baixar o projeto com o formulário, basta você clicar no menu Videoaulas no site, depois no rodapé da página clicar no número 5, lá você encontrará o vídeo, e logo abaixo o link: “Baixar o Projeto (planilha) deste vídeo” Grande abraço!
Hola amigo, gracias por la participación. No puede dejar la fecha en blanco o N/A en el calendario, pero para ello debe utilizar un control "CheckBox" para ocultar o enviar en blanco, ¿comprende. Gran abrazo, Ademir Martins.
Olá Marcelo N Souza, quando a classe é criada, ela automaticamente já se atribui ao ComboBox, portanto, deixar em branco não daria. O que você pode fazer é deixar uma sugestão de dada mais apropriada para o usuário. A função principal do Datepicker é exatamente não deixar a data em branco, e também não precisar validar o campo, ok? Grande abraço.
Bom dia, Como eu faço pra vincular a data selecionada a uma célula? Exemplo, escolhi a data 05/10/2019, E essa data vai automaticamente para uma célula desejada
Boa tarde pessoal. Voces conseguiram vincular o código à célula desejada? Pois não estou conseguindo. Alguém poderia me ajudar? Não estou entendendo quando e onde imputar **Range("A1") = dpfrom.Value(0)** ...
Olá! Muito bom o calendário. Eu só precisava que o valor inicial da combo box do calendário fosse vazio ("") e não uma data qualquer, pois em alguns casos na minha planilha, o valor de data vazio significa que aquilo não ocorreu. Estou tentando mas não consigo. Poderia me ajudar?
Olá Thiago, obrigado pela participação! Quando a classe é criada, ela automaticamente já se atribui ao ComboBox, portanto, deixar em branco não daria. O que você pode fazer é deixar o textbox em branco com um botão que chama um form só com o calendário - opcionalmente, ok? Grande abraço, Ademir Martins
@@Macrofaz uma alternativa seria mudar a cor da fonte que aparece no combobox (a data) para branco. Isso daria a impressão de que o campo está vazio. Depois é só definir que a data só será válida para usar se for maior que 01/01/1900 por exemplo. Nesse caso iriamos definir o initialize para começar com essa data.
Olá Huberth, conforme explicado no vídeo, basta usar a expressão dpFrom.Value(0) com a célula, da seguinte forma: Range("A1") = dpFrom.Value(0). Ademir Martins
Boa tarde pessoal. Voces conseguiram vincular o código à célula desejada? Pois não estou conseguindo. Alguém poderia me ajudar? Não estou entendendo quando e onde imputar **Range("A1") = dpfrom.Value(0)** ...
@@lucas_fonseca , quando e onde depende daquilo que você quer fazer. Se vc quiser enviar a data pra sua planilha como teste, crie um botão e dentro dele coloque o código conforme informado anteriormente.
@@Macrofaz então eu criei um ícone de calendário quando eu clico ele aparece, eu seleciono a data e aparece no meu textbox... Então preciso fazer com q a data do textbox apareça na célula... O q não estou conseguindo, pois aparece apenas a data atual.. Qnd seleciono outra a célula não atualiza...
Olá Igor, obrigado por participar, mas não entendi o que está acontecendo exatamente. Se preferir, me mande um e-mail colocando a tela, etc. Grande abraço, Ademir Martins
Olá LUIZ CARLOS Henriques, todos os projetos estão disponíveis para download no site Macrofaz.com.br. Clique no menu Videoaulas, esse projeto está na página 5. Para baixá-lo, basta clicar em "Baixar o Projeto...deste vídeo", ok? Grande abraço.
Olá Cicero Lobo, conforme explicado no vídeo, não devemos usar a propriedade Value da Combobox, portanto se for por esse motivo que a sua data não está sendo enviada, você deve usar a propriedade ".Value" da classe e não da combobox, ok? Para enviar a data pra outra planilha, você deve escrever da seguinte forma: Sheets("Plan1").Range("A1").Value = dpFrom.Value(1). Grande Abraço.
Ademir muito bom, mas quando a combobox está vinculado a uma pagina da multipage não funciona, pode me ajudar? tentei o código abaixo mas parece que estou errando em algo basico... Set dpFrom = New DateTimePicker With dpFrom .Add UserForm1.MultiPage1.ComboBox9 .Create Me, "dd/mmm/yyyy", _ BackColor:=&H125FFFF, _ TitleBack:=&H808000, _ Trailing:=&H99FFFF, _ TitleFore:=&HFFFFFF End With
Olá dat norma, obrigado pela participação e por seu feedback no canal. Infelizmente, o calendário não funciona em multpages ou frames, ok? Grande abraço, Ademir Martins.
Olá Eduardo Silva, caso o calendário esteja em um frame ou multpages ele não funcionará e acontecerá isso que você comentou. Veja se é o seu caso, ok? Grande abraço, Ademir Martins.
@@Macrofaz Minha duvida era se existe uma forma de iniciar o combobox em branco... Vi outros com a mesma duvida, e aparentemente não existe essa opção, correto? Pois então, o projeto que estou trabalhando, as datas vem de uma planilha, porém, algumas vezes essa data vem em branco. Será que existe alguma forma de bloquear o combobox quando estiver sem data, e ativa-lo quando for colocar a data?
Olá Eduardo Marotta, o calendário é criado assim que o formulário que ele está é exibido, e o ComboBox é o repositório do calendário já formado, portanto não há como criá-lo com uma data em branco. Eu sugiro que seja feito isso com um botão, por exemplo, que chama um outro form que possui o calendário, assim você pode ‘desabilitar’ o botão ao invés do calendário, ok? Grande abraço, Ademir Martins.
@@Macrofaz Entendi... Obrigado pela solução. Consegui uma solução para o meu problema manipulando a propriedade "Enabled". Quando inicia o form, se a célula estiver "Vazia", ele coloca a data de Hoje mas deixa o Combobox desabilitado. Ai eu coloquei um checkbox, caso o usuário queira colocar uma data, é so marcar que ele habilita o Combobox.
Olá Gabriel Silva, para podermos lhe ajudar, você precisa passar mais detalhes. Deu alguma mensagem de erro, o que você tentou fazer exatamente? Grande abraço, Ademir Martins.
Muito obrigado! Existem muitos tutoriais bons no youtube, mas poucos que explicam assuntos complexos de uma maneira que as pessoas consigam entender. Parabéns!!! Ganhou mais um seguidor!!!
Olá Alexandre Fragoso, agradeço muito pelo belo feedback e por sua estimada presença no canal! Grande abraço, Ademir Martins.
Cara.... Parabéns !!! Explicações claras e objetivas. Melhor projeto de calendário que achei até hoje. Vc é o cara viu....
Olá Evaldo Soares, obrigado pelo comentário aqui no canal deixando seu feedback! Que bom que o projeto lhe serviu! Grande abraço, Ademir Martins
@@Macrofaz Somente uma dúvida, depois de chamar a data, não é possivel enviar os dados para uma célula nao? Criei um formulario de cadastro todos os textbox são gravados na planilha exceto o campo da data.. O meu Formulario de cadastro faz um loop pra ver qual a próxima linha vazia e preenche-la. Obrigado !
Excelente! Parabéns e obrigado por compartilhar o conhecimento. Conhecimento é o maior tesouro que existe!
Olá Júlio, é isso aí, conhecimento é fundamental! Grande abraço e obrigado por participar deixando seu feedback! Ademir Martins.
Valeu! Dica super interessante e prática. Parabéns! virei fã!
Olá Pr Ronaldo Lança, obrigado pela participação e pelo feedback, agradeço muito! Grande abraço, Ademir Martins
Sempre com excelente conteúdo, parabéns e obrigado!
Olá Tiago, obrigado pela participação e pelo feedback aqui no canal! Grande, abraço Ademir Martins
Seu canal é um dos melhores de VBA! Merecia ter mais inscritos...
Olá Lucas Moreira, muito obrigado por participar e pelo elogio!
São feedbacks assim que fazem valer toda a dedicação para trazer conteúdo útil e interessante.
Grande abraço!
Parabéns, ficou muito bom essa função. Ajudou bastante.
Olá Jeison, obrigado pela participação no canal, deixando seu feedback. Grande abraço, Ademir Martins
O q estava procurando a muito tempo. obg
Olá, que bom que lhe serviu! Obrigado pela participação com seu comentário. Grande abraço, Ademir Martins
Top demais. Parabens mestre. Estava precisando disso.
Olá obrigado pela participação e feedback! Grande abraço, Ademir Martins
Muito bom! Se o Professor Ademir vendesse cursos na Udemy eu compraria todos.
Muito obrigado pelo apoio Danilo Dutra. Grande abraço, Ademir Martins
Amigo, primeiramente obrigado pela excelente explicação. Gostaria de saber se esse controle datetimepicker, funciona em qualquer versão do Office, 32, 64, e 2010, 2013, 365?
Olá Luis DRM, obrigado pela participação e pelo feedback. Olha, já usei de Office de 2010 até 365, mas todas em 64 e foi normalmente! Grande abraço, Ademir Martins
Excelente, me ajudo muito! Parabens pelo canal
Olá Bruno, obrigado pela participação deixando seu feedback! Grande abraço, Ademir Martins
Obrigado pela aula! Gostei bastante!
Olá Alexandre Silva, que bom que tenha gostado! Fique ligado ao canal que veremos muita coisa ainda. Grande abraço e obrigado por participar!
Olá, muito obrigado pelo seu conteúdo. Gostaria de deixar o ComboBox do calendário sempre visível. É possível?
Olá, não entendi, o calendário fica sempre disponível... Grande abraço, Ademir Martins
Boa tarde! Excelente conteúdo 👏🏽👏🏽
Uma dúvida: tem como eu deixar o calendário dentro da célula? Facilmente visível pra quem for preencher o formulário?
Olá Gabrieli, obrigado pela participação e feedback no canal! Olha, infelizmente, não daria pra colocar o calendário numa célula porque ele é todo feito em vba (macro) ok? Grande abraço, Ademir Martins
Bom dia professor, meu nome é Jeovah Jr. Percebi que você realmente fera. Será que você pode me ajudar ? Vou tentar te explicar. Sou vendedor, tem como fazermos uma agenda inteligente de planejamento, tenho um formulário que utilizo a muito tempo mas o que realmente preciso é o seguinte. Tenho que agendar 10 clientes por dia certo ? Vamos supor que na segunda feira dia 25/03 tenho 10 cientes agendados. Então vamos lá. No calendário do Execel eu clicaria no dia 25 e então teria a relação dos 10 clientes agendados. Continuando, depois que eu entrar nos dados do cliente, farei a visita ou ligação, ai o cliente me disse para eu votar daqui a 15 dias, então terei que reagendar certo ? Teria como criar um botão de visita para que quando eu clicar no botão do execel esta visita seria reagendada automaticamente ? Se ficou muito complicado tem como eu entrar em contato com você para te explicar melhor ? Fico no aguardo, um ótimo domingo.
Olá Jeovah Reis, obrigado pela participação. Mande um "modelo" de seu projeto no e-mail: contato@macrofaz.com.br. Grande abraço, Ademir Martins.
Valeu! Me salvou! Parabéns agradeço!
Obrigado Marcos, fico feliz em ter lhe ajudado. Obrigado também por deixar seu feedback/comentário no canal. 👍 Grande abraço, Ademir Martins
Eu usei o código na minha planilha e deu super certo.
Mas estou tendo dificuldade no seguinte: O calendário esta "instalado" na combobox1. Como eu faço para que no evento change ou exit da combobox 1 o valor da data ser mostrado numa label
Olá, olha, infelizmente, da maneira que a classe foi criada, não é possível usar as propriedades da Combobox, ela só serve como recipiente do calendário, ok? Grande abraço, Ademir que
@@Macrofaz Obrigado pelo retorno meu caro. Abraço
boa noite, tenho uma duvida. consegui utilizar o calendário em minha planilha, só que após isso eu preciso copiar a informação desta data para uma célula que fiz isso a partir de um comando de um botão "ok" no userform. só que quando informo que celula EX: Cells(linha, 8) = ComboBox2.Value a informação da data não é replicada. Falo isso pois já tinha uma planilha , mas que eu precisa colocar a data manualmente e ela funcionava normalmente essa questão de replicar a informação da combobox e achei estranho quando não consegui copiar a informação da data logo desta combobox nova, já que as outras estão funcionando normalmente . será que podes me ajudar?
Olá Igor, o calendário utiliza a combobox para montar o calendário, porém não usamos a propriedade .Value da combobox para enviar a data, mas sim da seguinte forma: Cells(Linha, 8) = dpFrom.Value(0). Grande abraço, Ademir Martins
Boa noite! Show de bola, quebrei um pouco a cabeça mais consegui fazer umas edições que eu queria. Queri saber que forma eu uso pra inserir em um botão para fechar a combobox após selecionar a data.
Olá Janilson Rodrigues, obrigado pela participação. Infelizmente, não compreendi sua questão. Se preferir, pode enviar um exemplo daquilo que precisa, me enviando um e-mail. Grande abraço.
Muito bom, mas não tem onde baixar, poderia me enviar por email?
Olá Raquel, obrigado pelo feedback!👍Me envie um e-mail para contato@macrofaz.com.br. Grande abraço Ademir Martins
Não teria como manter os eventos da combo box funcionais????
Olá Ricardo, infelizmente não, a classe usa a combobox apenas para exibir o calendário, e seus eventos não tem efeito. Grande abraço, Ademir Martins
Mano, OBRIGADO!. Você me salvou kkkk
Olá Renato, obrigado pela participação no canal. Grande abraço, Ademir Martins
O arquivo ainda está disponível?
Opa, sim no site da Macrofaz.com.br
Bom dia. Muito obrigada pelo vídeo! Estou com uma dúvida. Já utilizo seu calendário em um projeto para gestão de estoque em VBA (em dois formulários diferentes). Entretanto, em um deles a data é salva corretamente na planilha. Já no segundo, a data apresentada na planilha é sempre 12:00 AM. Já revisei o código, mas não encontrei o problema. Você poderia me ajudar? Obrigada.
Olá Beatriz Summer, obrigado pela participação no canal. Olha, se você estiver usando o DateTimePicker, o problema está na formatação da célula no Excel, pois essa classe não usa horas, ok? Portanto, formate a célula para DD/MM/AA que irá funcionar. Grande abraço.
Muito didáticos teus vídeos!! Parabéns!!! Muito bom, mais um inscrito!!
Olá Fábio Bello, agradeço muito por sua participação no canal, deixando seu feedback! Grande abraço, Ademir Martins.
Boa noite Ademir, estou utilizando o seu calendário em um projeto, porém preciso manipular os calendários criados no form1 através do form2, é possível? Estou tentando há bastante tempo sem sucesso.
Veja, criei um cadastro com duas datas no meu form1 onde utilizei o calendário, a alteração dos dados ficou a cargo do form2 que possui uma listbox que manipula os campos do form1 de acordo com os dados carregados nela, porém não consigo manipular o calendário através deste formulário, estou usando a seguinte estrutura no form2:
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) Then
..........
DateTimePicker.Value(1) = Me.ListBox1.List(i, 4)
Tem alguma sugestão? Estou pensando em abandonar o uso do calendário e voltar ao método de input tradicional =(
Obrigado de qualquer forma, o calendário ficou muito bom.
Ola Lucas Souza, obrigado pela participação. Pra poder lhe ajudar melhor, envie por e-mail uma amostra do seu projeto, ok? Grande abraço, Ademir Martins
Teria como editar a classe dpFrom? Alterar a fonte , o fundo?
Não o calendário e sim o dpFrom onde é exibido a data.
Olá, a cor da fonte e do fundo sim, o restante não.
Top cara. Gostei. Valeu.
Obrigado Cláudio! Grande abraço, Ademir Martins
Como eu faço pra usar o evento "change" do Combobox1 neste caso?
Private Sub Combobox1_Change()
MsgBox "Teste"
End Sub
Tentei usar o evento change do combobox1, mas não funciona.
Não estou sabendo implementar esta solução.
No meu form há dois combos (Um de entrada, e outro de saída).
O que eu preciso é:
No no evento "change" do combobox1, pegar a data selecionada, acrescer + 1 dia, e atribuir no combobox2.
No "initialize" do form funciona, mas no "chance" do combobox1 não.
Segue o código inserido no "initialize" do form.
Private Sub UserForm_Initialize()
Set dpFrom = New DateTimePicker
With dpFrom
.Add CheckIn
.Add CheckOut
.Create Me, "dd/mmm/yyyy", _
BackColor:=&H125FFFF, _
TitleBack:=&H808000, _
Trailing:=&H8000000C, _
TitleFore:=&HFFFFFF
.Value(2) = Date + 1
End With
End Sub
A classe usa a combobox apenas para exibir o calendário, os eventos como Change, por exemplo, não são ativados quando a data muda. Você terá que usar outro controle, como um botão por exemplo, para checar a mudança de data e aí sim usar uma função “Change”. Grande abraço, Ademir Martins
@@Macrofaz Bom dia.
Obrigado pela resposta, mas infelizmente, um botão não resolve o problema em questão.
Eu precisava validar isso no "change", além de melhorar a usabilidade, iria prever alguns erros dos usuários.
Será que o desenvolvedor da classe consegue atribuir esta "propriedade change"?
Olá Ademir, muito boa a sua explicação do calendário... to tentando integrar esse formulário no meu projeto mas não sei como fazer a chamada dessa tela.... tenho uma tela que tem o botão ENTRAR e no código desse botão preciso de chamar a tela do calendário e não sei como fazer! pode me ajudar, please....
Olá Eliane Ito, obrigado por participar do canal. Me envie uma amostra do que você quer que eu lhe envio um exemplo, ok? Meu e-mail: contato@macrofaz.com.br. Grande abraço, Ademir Martins.
Olá...como faço para trocar o combobox por um botão no código do Módulo de Classe ? É possível ?
Olá Wilson, infelizmente não, a classe foi criada com as propriedades do combobox, ok? Grande abraço, Ademir Martins
Show de bola, excelente vídeo. Gostaria de uma ajuda, adaptei seu calendário em uma planilha de busca onde seleciono a data e através de um botão buscar realizo um filtro na listbox por data, gostaria que ao selecionar a data no calendário já executasse o filtro na listbox, tentei de varias maneiras mas não consegui. Parabéns!!! Ganhou mais um seguidor!!!
Olá Marcelo Alves, obrigado pela participação e feedback! Me mande uma amostra do que quer fazer por e-mail que eu lhe respondo com o exemplo, ok? Grande abraço, Ademir Martins.
Olá! Duvida rápida, quando coloco o dpfrom.value(1) como "change" no ComboBox1 ele não altera nenhum comando. Gostaria de ao alterar a data executar alguma ações sem um comando manual para tal. É possível? Obrigado
Olá Izabela Bonomo, obrigado por participar do canal. Olha, se eu entendi bem, para fazer isso você terá que usar um Textbox para receber a data e trabalhar no change dele, pois o Combobox só tem a propriedade de atribuir o calendário, e portanto seu change não funciona, ok? Grande abraço, Ademir Martins.
@@Macrofaz Olá, professor! Quando a gente muda a data no calendário faz se necessário um evento adicional para enviar o valor de dpfrom para algum lugar. Existe uma maneira de usar o evento afterupdate do calendário para enviar o valor dpfrom pra uma text ou variável?
Show de bola, excelente vídeo. Gostaria de uma ajuda. Estou querendo colocar seu código em um VBA que tenho, porém acusa : "variável não declarada". Poderia me dar essa ajuda ? Obrigado !
Olá Alan David, obrigado pela participação e feedback. Talvez você não tenha declarado a variável "dpfrom" como pública no form. Dê um duplo clique no form e verifique se na primeira linha tem a seguinte instrução:
"Public dpfrom as DateTimePicker", lembrando que deve estar acima do evento Initialize, lá no topo do código, acima do traço da sub, ok? Grande abraço.
Show de bola, como faço para jogar o valor da data diretamente em uma célula na planilha? Grande abraço.
Olá Marcelinho Ferreira, obrigado pela participação deixando seu feedback! Para enviar para a planilha, basta usar a expressão dpFrom.Value(0) com a célula, da seguinte forma: Range("A1") = dpFrom.Value(0). Grande abraço, Ademir Martins.
@@Macrofaz opa meu querido. Muito obrigado mesmo. Ganhou mais um inscrito. Mais uma vez obrigado pela atenção e disponibilidade para ajudar. Grande abraço.
Boa noite Professor, sou um usuário básico de Excel e estou tentando fazer uma formula para ocultar linhas com datas indesejadas em minha planilha mas estou com dificuldade em montá-las. Tenho 66 anos e não estou com a memoria muito boa para esta atividade e se você quiser e puder, ficarei muito grato em cerebela.
Seria assim: quando o mês tem 31 dias, tudo bem com a minha planilha. Mas quando o mês tem 30 dias a célula seguinte vem com a data do 1 dia do mês seguinte. Quero ocultar as linhas que vem com datas do mês seguinte ou seja, só quero as linhas do mês corrente. Espero ter sido claro com minha ignorância no assunto e espero seu parecer se for possível.
Grato Eduardo
Olá Eduardo Amaral, obrigado pela participação. Me mande um exemplo de sua questão, que assim fica mais fácil de lhe ajudar. Grande abraço, Ademir Martins.
Olá ótimo projeto ia me ajudar um monte no meu, mais eu já tenho um formulário montado então ao agregar esse códigos no initialize a parte do público dpFrom As Datetimepicker se mistura com os outros códigos q já estão no meu formulário e não vai ..tem como me ajudar desde já muito obg
Olá Patricio, obrigado pela participação no canal. Olha, precisaria ver o que exatamente está conflitando, pois tenho outros projetos com vários códigos nesse evento initialize e sem problemas, ok? Grande abraço, Ademir Martins
Me has ayudado demasiado amigo.
Gracias amigo, siga acompañando el canal. Ademir Martins.
Boa noite professor. Fiz do jeitinho que está no vídeo, porém a minha combobox está em cima de um quadro. Aparece a data na combobox, mas não permite que eu altere a data e nem o calendário aparece. A Combobox fica como se estivesse desabilitada. Mas se eu colocar a combobox diteto no meu Userform o calendário funciona corretamente. Como posso corrigir isso?
Olá Allyson Rodrigues, obrigado pela participação. Olha, o calendário não funciona dentro de frames ou multpages. Se o seu form possuir esses objetos, sugiro chamar um form pequeno só para selecionar a data com o calendário, ok? Grande abraço, Ademir Martins.
@@Macrofaz Obrigado. Vou tentar isso
Ademir por favor, como mudar a fonte no combobox para negrito?
Olá Sérgio, da maneira que a classe foi criada, acredito que não seja possível mudar a fonte para negrito, apenas a cor que está em hexadecimal, ok? Grande abraço Ademir Martins.
Consegue upar no mega ou algo do tipo?
Olá Luiz, me envie um e-mail para contato@macrofaz.com.br que eu lhe envio ok? Grande abraço, Ademir Martins
Onde eu consigo o datapack
Olá Marion, entre no site macrofaz e procure por: "Form Calendário". Aí é só clicar e baixar, ok?
ótimo calendário, excelente explicação. Parabéns.
Só gostaria de saber como faço para o combox ficar limpo até a escolha da data.
Olá Marcio Ozorio, obrigado pela participação! Quando a classe é criada, ela automaticamente já se atribui ao ComboBox, portanto, deixar em branco não daria. O que você pode fazer é deixar uma sugestão de dada mais apropriada para o usuário, manipulando a data que irá se apresentar com a exibição do form, ok? Isso é uma prática comum. Grande abraço.
Marcio, substitua o UserForm_Inicializate por Userform_MouseUp. Vai ficar assim:
Private Sub txtData_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Set dpFrom = New DateTimePicker
With dpFrom
.Add txtData
.Create Me, "dd/mmm/yyyy", _
BackColor:=&H125FFFF, _
TitleBack:=&H262626, _
Trailing:=&H99FFFF, _
TitleFore:=&HFFFFFF
End With
End Sub
Não é 100% mas ja disfarça bem.. kk
Abç
Ótimos videos. agora fiquei com uma duvida. Como faço para abrir um formulários com as datas em branco?
Olá Kledson Gomes, obrigado por participar e deixar seu feedback no canal. Então, depois que o calendário é criado pela classe, não tem como deixar a data em branco. Uma opção seria criar um botão para chamar um form com o calendário, assim você poderá deixar um Textbox em branco, ok?
Grande abraço, Ademir Martins.
Muito massa cara deu certo aqui mas gostaria de saber quanto pedir para salvar ele salvar na planilha tem como vc explicar
Olá Rodrigo, obrigado pela participação e feedback! Me desculpe, mas não entendi sua pergunta. Se preferir, pode me enviar uma explicação mais detalhada por e-mail, ok? Grande abraço, Ademir Martins
@@Macrofaz ola obrigado pelo feedback eu gostaria que a data que aparece fosse salva na planilha como fazer
Olá Rodrigo, para enviar a data para uma célula, basta usar a expressão: Range("A1").Value = dpFrom.Value(0)
@@Macrofaz bacana mas e se eu tiver bastante informações a data vai gravar uma debaixo da outra?
Adorei!
Ola, Obrigado pelo vídeo. Na minha planilha eu coloco os dados em um formulario e ele envia eles para uma tabela, nesse formulario tem um campo data, estou tentando trocar, em vez de eu digitar a data manualmente vou usar esse calendario. Mas mesmo selecionando a data no calendario ele nao vai para a planilha. tentei usar o dpfrom.value mas devo ter feito algo errado, poderia me dar alguma dica para resolver isso ?
Olá Jonas Carvalho, tanto para capturar, quanto para enviar data para o calendário, você deve usar a propriedade .Value seguida do índice do calendário. Por exemplo, se vc possui apenas um calendário, para enviar ou capturar a data, use: dpFrom.Value(0)
Ok? Grande abraço
Olá caro Professor!
Bela explicação e parabéns por compartilhar conhecimentos, porém quando eu coloco a combox em um frame ele não funciona ele adiciona uma outra combox automaticamente em um lugar fora do frame, poderia me ajudar nessa questão.
Grato.
Olá Jeverson Bitazzi, obrigado pela participação. A classe que monta o calendário foi criada para se dimensionar com o X,Y do form. Quando o calendário está num frame ou tab ele se perde. Ainda não consegui estudar o código pra ver se há como alterar isso, mas se conseguir faço um vídeo com certeza, ok? Às vezes vale a pena chamar um form pequeno só pra mostrar o calendário fora do frame. Grande abraço, Ademir Martins.
Sou novo aqui no canal, qual o procedimento para conseuir esse arquivo de classe do calendário?
Olá, está disponível no site de mesmo nome ok? Grande abraço, Ademir Martins
Muito bom o vídeo!! Salvou demais! Me tira uma dúvida. Como alterar o formato da data de "dd/mm/aaaa" para "dd.mm.aaaa"?
Olá João obrigado pela participação e feedback. Você pode usar a função Replace (data, "/", ".") antes de jogar no destino, ok? Grande abraço, Ademir Martins
Achei muito bom o arquivo e atende ao que preciso no momento, todavia não consegui baixar o arquivo no site. Não encontrei o mesmo. Achei até outros vídeos interessantes para estudar, mas precisava deste arquivo. Poderia me encaminhar um link direto do arquivo?
www.macrofaz.com.br/index.php/videoaulas/121-um-calendario-para-forms
Parabéns, estou acompanhando o seu trabalho e estou gostando muito! Tenho uma dúvida, como faço para que uma macro seja chamada através de um Link DDE, quando o valor dela for mudado?
Olá Nei Cezar, obrigado por participar do canal e deixar seu feedback! Para entender corretamente sua dúvida, me anvie um exemplo por e-mail, ok? Grande abraço, Ademir Martins.
Como altero a fonte da combobox, após selecionar a data?
Olá Felipe, essa classe não permite alteração de fonte, apenas a cor padrão. Grande abraço, Ademir Martins
Opa, mestre! Parabéns pelo trabalho! Está me ajudando bastante...
Só estou com um problema... Não consegui fazer funcionar quando os ComboBox estão dentro de um quadro ou de uma MultiPage. Não encontrei nenhum evento para estes controles que permitisse a ativação do calendário, já que dentro do evento Initialize do Formulário também não funcionou. Você pode me ajudar?
Olá Silvanio P. Silva, obrigado pela participação e pelo feedback. Infelizmente a classe DataTimePicker não foi desenhada para trabalhar com MultiPages. Ela só funciona dentro de apenas um nível de instância, que no caso é o formulário. O mesmo acontece se colocarmos dentro de um frame, ok? Grande abraço.
ola problema ao copiar a data da textbook memo que selecione outra data copia sempre a data atual obg
Amigo, não tem como saber o que está errado sem ver seu código. Se você seguir o exemplo que está no projeto, funciona perfeitamente, ok?
Olá, muito obrigado, doutor, o Combobox não quer funcionar quando colocar no multipage
Olá! O calendário não funciona em multipage, nem em frames, infelizmente. 😟 Mas obrigado pela participação no canal! Grande abraço, Ademir Martins
Eu queria trazer a data pra celula da planilha excel
Olá Lucas, para enviar a data para uma célula, basta usar a expressão: Range("A1").Value = dpFrom.Value(0).
boa tarde amigo,estou com uma duvida estou usando o datetimepicker no meu formulario excel vb e ao clicar no botão pra salvar da erro,vc poderia me dar uma dica qual o codigo colocar no btn salvar!!!!!
Olá Anderson Silva, mande um e-mail com a tela do erro para o e-mail de contato, assim fica mais fácil pra lhe ajudar, ok? O endereço é: contato@macrofaz.com.br
Olá. Obrigado por compartilhar.
Tenho uma pergunta. Como faço para que essa data selecionada seja insertada na folha de trabalho?
Olá Jorge García, obrigado por participar do canal! Para enviar a data para uma célula basta usar a expressão: Range("A1").Value = dpFrom.Value(0). Grande abraço. Ademir Martins.
Como faço para aumentar o tamanho da fonte que aparece na Combo box
Olá Edson, obrigado pela participação. Não é possível aumentar as fontes. Grande abraço, Ademir Martins
Ola, muito legal esse calendário mas gostaria de uma ajuda, se eu colocar o combobox do userform dentro de um Frame ele não funciona corretamente, poderia verificar e ver se teria alguma alternativa para funcionar o combobox dentro do frame. Obrigado
Olá Moisés Moreira, obrigado pela participação. A classe que monta o calendário foi criada para se dimensionar com o X,Y do form. Quando o calendário está num frame ou tab ele se perde. Vou dar uma olhada na classe e ver se consigo alterar isso. Caso consiga eu respondo seu comentário, ok? Grande abraço. Ademir Martins.
Excelente video, Ademir! Parabéns! Tive o mesmo problema que o Moises. Fico aguardando o comentário caso tenha encontrado uma alternativa.
@@Macrofaz Também estou tentando colocar o calendário dentro de uma Frame, porém sem sucesso até o momento. Se conseguir alterar a classe eu agradeceria muito. Parabéns pelo excelente trabalho! Abraço!
Parabéns pela explanação e conteúdo. Gostaria de saber como executar operações aritméticas entre essas datas (subtrair uma data final da inicial, por exemplo, extraindo o número de dias entre elas). Tentei usar o datediff mas não deu certo. Agradeço de antemão. Abs
Olá MSD, obrigado pela participação e feedback! Para fazer cálculo com a data do calendários, você deve fazer assim - se quiser fazer diferença em dias da data atual e a data do calendário: DateDiff("d", Date, dpFrom.Value(0)). Se quiser adicionar um dia na data do calendário seria assim: DateAdd("d", 1, dpFrom.Value(0)). Ok? Grande abraço, Ademir Martins
@@Macrofaz . Olá Ademir. Primeiramente grato por seu pronto retorno e atenção.
Entretanto não está funcionando. Tenho 2 calendários no userform. Inseri uma textboxDias para receber o resultado (em dias) da diferença entre as datas que escolher no calendários. Atribuí ao evento change desta textbox o seguinte: textboxDias.value=datediff("d", dpfrom.value(1), dpfrom.value(2)). E nada.... Pode me ajudar? Grato
@@msd3543 me mande por e-mail sua necessidade
Buenos días, quería saber si me podrías ayudar. Verás, estoy haciendo un pequeño programa de inventario y me gustaría enviar el dato de la fecha a una tabla en Access. Obviamente para esto, debo extraer el valor de la misma userform, pero al momento de registrar el valor en la tabla de Access me arroja el siguiente error: "El objeto no admite esta propiedad o método". Yo estoy extrayendo el dato de la siguiente forma Userform1.dpFrom(0).Value. Cuál sería la manera correcta? Muchas gracias por tu tiempo y disposición de antemano.
Hola amigo Victor Araya, gracias por la participación. Es difícil saber el motivo del error sin ver el programa. Me envía una muestra de su proyecto, así que voy a analizar y responder a su correo electrónico. Mi correo electrónico es contato@macrofaz.com.br. Me alegro de poder ayudar. El gran abrazo, Ademir Martins.
Como faço para mudar a cor e a fonte da data que é mostrada no combobox assim que eu carrego o formulario?
Olá Magno Diego, obrigado pela participação. Você tem as opções de BackColor, TitleBack, etc., mas acredito que vc só consiga mudar a cor da fonte do mês anterior que aparece no calendário. As cores estão em hexadecimal, para trocar uma cor, use uma paleta de cor no formulário (BorderColor ou ForeColor), copie e cole na propriedade. Grande abraço, Ademir Martins.
Ola, muito bom, mas com um problema comigo....fiz tudo seguindo sua orientação, mas a janela do msg box, onde aparece a data para seleçao no meu formulario ficou no alto a esquerda atrapalhando o visual...como arrumo isso?
Olá Jose, obrigado pela participação e feedback! Me mande um print por e-mail da sua tela pra eu entender direitinho o que precisa ok? Grande abraço, Ademir Martins
@@Macrofaz ola boa noite mestre. tive o mesmo problema, teria como colocar esses dados dentro de uma combobox ja existente ?
boa tarde, desculpe, mas não encontrei o arquivo de calendario. abraços, suas aulas dão um show
Olá João Luiz, segue o link para baixar: macrofaz.com.br/index.php/videoaulas/121-um-calendario-para-forms .Grande abraço, Ademir Martins.
Olá amigo tem esse arquivo de importação para plataforma 64bits? pois 32 da erro na estrutura. grato!
Olá Reinaldo, só tenho a versão disponibilizada. Grande abraço, Ademir Martins
Boa noite, é só colocar essa palavra "PtrSafe" antes do "Function", sem as aspas! No caso, ficaria assim: Private Declare PtrSafe Function. Espero ter ajudado.
Olá@@dotaYURNERO, obrigado pela participação e contribuição com o canal! Grande abraço, Ademir Martins
@@Macrofaz De nada, gostei muito de sua explicação, me ajudou com esse calendário. Abraço!!
Parabens pelo vídeo!
Não achei o arquivo para download no seu site...
Poderia, por favor, disponibilizar o link para o projeto?
Obrigado e parabens!
Olá Lucas Nunes , obrigado pela a participação. Para baixar o projeto com o formulário, basta você clicar no menu Videoaulas no site, depois no rodapé da página clicar no número 5, lá você encontrará o vídeo, e logo abaixo o link: “Baixar o Projeto (planilha) deste vídeo” Grande abraço!
Muito bom!! Achei o projeto e já testei aqui no trabalho! Vai me ajudar bastante! Já estou seguindo o canal e favoritei o site! Parabens!
Muito obrigado Lucas Nunes, grande abraço!
Buenas Tardes, muy buen código, una pregunta ¿como hago para que sea opcional seleccionar la fechau otro valor, Ejemplo N/A?
Hola amigo, gracias por la participación. No puede dejar la fecha en blanco o N/A en el calendario, pero para ello debe utilizar un control "CheckBox" para ocultar o enviar en blanco, ¿comprende.
Gran abrazo, Ademir Martins.
Excelente!
Obrigado por participar e dar seu feedback JM Moraes. Grande abraço.
Tem alguma forma de inicializar com o combobox em branco?
Olá Marcelo N Souza, quando a classe é criada, ela automaticamente já se atribui ao ComboBox, portanto, deixar em branco não daria. O que você pode fazer é deixar uma sugestão de dada mais apropriada para o usuário. A função principal do Datepicker é exatamente não deixar a data em branco, e também não precisar validar o campo, ok? Grande abraço.
muito top
Obrigado Ednesio, pela participação no canal! Grande abraço, Ademir Martins.
Bom dia, Como eu faço pra vincular a data selecionada a uma célula?
Exemplo, escolhi a data 05/10/2019, E essa data vai automaticamente para uma célula desejada
Olá Johnny Diria, basta colocar: Range("A1") = dpfrom.Value(0).
Grande abraço, Ademir Martins.
@@Macrofaz dígito essa linha a mais no código ?
@@johnnydoria9152 isso, na ação que vai atualizar a planilha.
Boa tarde pessoal. Voces conseguiram vincular o código à célula desejada? Pois não estou conseguindo. Alguém poderia me ajudar? Não estou entendendo quando e onde imputar **Range("A1") = dpfrom.Value(0)** ...
No meu estar dando um problema quando tento usar ele em multpages com frame!
Olá Welisson Silva, a classe não funciona com frame ou multpages.
@@Macrofaz É percebi isso, mas é um ótimo conteúdo. Obrigado pelo retorno amigo!
@@welissonnery Eu agradeço pela participação e pelo seu feedback amigo! Grande abraço, Ademir Martins.
Olá! Muito bom o calendário. Eu só precisava que o valor inicial da combo box do calendário fosse vazio ("") e não uma data qualquer, pois em alguns casos na minha planilha, o valor de data vazio significa que aquilo não ocorreu. Estou tentando mas não consigo. Poderia me ajudar?
Olá Thiago, obrigado pela participação! Quando a classe é criada, ela automaticamente já se atribui ao ComboBox, portanto, deixar em branco não daria. O que você pode fazer é deixar o textbox em branco com um botão que chama um form só com o calendário - opcionalmente, ok? Grande abraço, Ademir Martins
@@Macrofaz uma alternativa seria mudar a cor da fonte que aparece no combobox (a data) para branco. Isso daria a impressão de que o campo está vazio. Depois é só definir que a data só será válida para usar se for maior que 01/01/1900 por exemplo. Nesse caso iriamos definir o initialize para começar com essa data.
Boa@@brennonunes6749, parece interessante, vamos testar! 👏👏Obrigado por participar!👍👊 Grande abraço, Ademir Martins
@@Macrofaz eu só não consegui alterar a cor da data para branco. Se você conseguir pode compartilhar aqui por favor?
Claro@@brennonunes6749, se eu conseguir eu compartilho, vou tentar 👍
Como faço pra ligar esse valor numa célula do excel?
Olá Huberth, conforme explicado no vídeo, basta usar a expressão dpFrom.Value(0) com a célula, da seguinte forma: Range("A1") = dpFrom.Value(0). Ademir Martins
Boa tarde pessoal. Voces conseguiram vincular o código à célula desejada? Pois não estou conseguindo. Alguém poderia me ajudar? Não estou entendendo quando e onde imputar **Range("A1") = dpfrom.Value(0)** ...
@@lucas_fonseca , quando e onde depende daquilo que você quer fazer. Se vc quiser enviar a data pra sua planilha como teste, crie um botão e dentro dele coloque o código conforme informado anteriormente.
@@Macrofaz então eu criei um ícone de calendário quando eu clico ele aparece, eu seleciono a data e aparece no meu textbox... Então preciso fazer com q a data do textbox apareça na célula... O q não estou conseguindo, pois aparece apenas a data atual.. Qnd seleciono outra a célula não atualiza...
@@lucas_fonseca , desculpe, não consigo entender o que precisa. Me envie um exemplo por e-mail.
não deu certo..no meu a opção de marcar a data nao aparece
Olá Igor, obrigado por participar, mas não entendi o que está acontecendo exatamente. Se preferir, me mande um e-mail colocando a tela, etc. Grande abraço, Ademir Martins
Onde eu posso baixar essa classe, não estou conseguindo ou não entendi
Olá LUIZ CARLOS Henriques, todos os projetos estão disponíveis para download no site Macrofaz.com.br. Clique no menu Videoaulas, esse projeto está na página 5. Para baixá-lo, basta clicar em "Baixar o Projeto...deste vídeo", ok? Grande abraço.
Não consegui enviar a data para a planilha. No formulário funciona, mas na hora de enviar prá planilha a dta não aparece.
Olá Cicero Lobo, conforme explicado no vídeo, não devemos usar a propriedade Value da Combobox, portanto se for por esse motivo que a sua data não está sendo enviada, você deve usar a propriedade ".Value" da classe e não da combobox, ok? Para enviar a data pra outra planilha, você deve escrever da seguinte forma: Sheets("Plan1").Range("A1").Value = dpFrom.Value(1). Grande Abraço.
onde faço o download dessa classe?
Olá Agência Pak, obrigado pelo contato. Todos os projetos dos videos estão disponíveis no site: MacroFaz.com.br. grande abraço.
www.macrofaz.com.br/projetos/Videoaulas-yt/macrofaz-form-calendario.xlsm
como faço pra lancar a data exibida no combox numa celula qualquer
Olá Gabriel Silva, basta colocar: Range("A1") = dpfrom.Value(0).
Grande abraço, Ademir Martins.
Ademir muito bom, mas quando a combobox está vinculado a uma pagina da multipage não funciona, pode me ajudar?
tentei o código abaixo mas parece que estou errando em algo basico...
Set dpFrom = New DateTimePicker
With dpFrom
.Add UserForm1.MultiPage1.ComboBox9
.Create Me, "dd/mmm/yyyy", _
BackColor:=&H125FFFF, _
TitleBack:=&H808000, _
Trailing:=&H99FFFF, _
TitleFore:=&HFFFFFF
End With
Olá dat norma, obrigado pela participação e por seu feedback no canal. Infelizmente, o calendário não funciona em multpages ou frames, ok? Grande abraço, Ademir Martins.
Cade o link para download?
Olá Breno Ambrozio, todos os projetos estão disponíveis no site MacroFaz.com.br no menu Videoaulas. Grande abraço.
veio esses caras não prestam atençao em nada! o cara falou no video que esta disponivel no site e o cara pergunta sobre link??? pelamordedeus!
Muito obrigado, eu abri o site depois e vi bastante tópicos que irão me ajudar. Abraço e desculpa pela resposta ao amigo de baixo. Vlw!
não está baixando em arquivo cls... o que faço para transformar em cls???
A classe já está dentro do arquivo xlsm, se você quiser retirá-la, basta exporta-la clicando com botão direito mouse na classe lá no VBA.
boa tarde amigo, teria como vc me passa esses codigos grato desde já
Olá Uilisom, segue o link, basta clicar em "baixar projeto..."
www.macrofaz.com.br/index.php/videoaulas/121-um-calendario-para-forms
vc tem como deixar o link de download do arquivo datetimepicker.cls
Olá André Souza, o projeto está disponível no site MacroFaz, segue o link:
macrofaz.com.br/index.php/videoaulas/121-um-calendario-para-forms
Nos meus forms, o Combobox fica duplicado? Alguem sabe o motivo?
Olá Eduardo Silva, caso o calendário esteja em um frame ou multpages ele não funcionará e acontecerá isso que você comentou. Veja se é o seu caso, ok? Grande abraço, Ademir Martins.
@@Macrofaz Minha duvida era se existe uma forma de iniciar o combobox em branco... Vi outros com a mesma duvida, e aparentemente não existe essa opção, correto? Pois então, o projeto que estou trabalhando, as datas vem de uma planilha, porém, algumas vezes essa data vem em branco. Será que existe alguma forma de bloquear o combobox quando estiver sem data, e ativa-lo quando for colocar a data?
Olá Eduardo Marotta, o calendário é criado assim que o formulário que ele está é exibido, e o ComboBox é o repositório do calendário já formado, portanto não há como criá-lo com uma data em branco. Eu sugiro que seja feito isso com um botão, por exemplo, que chama um outro form que possui o calendário, assim você pode ‘desabilitar’ o botão ao invés do calendário, ok? Grande abraço, Ademir Martins.
@@Macrofaz Entendi... Obrigado pela solução. Consegui uma solução para o meu problema manipulando a propriedade "Enabled". Quando inicia o form, se a célula estiver "Vazia", ele coloca a data de Hoje mas deixa o Combobox desabilitado. Ai eu coloquei um checkbox, caso o usuário queira colocar uma data, é so marcar que ele habilita o Combobox.
@@smiledown10 Show! Parabéns pela solução! Grande abraço, Ademir Martins.
Eu baixei o seu arquivo e fiz exatamente como fez e Não deu certo no meu
Olá Gabriel Silva, para podermos lhe ajudar, você precisa passar mais detalhes. Deu alguma mensagem de erro, o que você tentou fazer exatamente? Grande abraço, Ademir Martins.
não deu erro, apenas não funcionou, o combox ficou sem o calendar
Boa tarde, gostei muito desse calendário, vc pode disponibilizar? (tonnyj30@gmail.com)
Olá Antônio Júnior, você pode baixar o projeto no site Macrofaz. Segue o link:
macrofaz.com.br/index.php/videoaulas/121-um-calendario-para-forms