| Formato Data em Formulario | |
|
|
Autor | Mensagem |
---|
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: Formato Data em Formulario Sex maio 03, 2013 2:27 pm | |
| Bom dia
Mais uma vez recorro à vossa ajuda. Tenho um formulário de cadastro de jovens. Porem ao colocar a data de admissão (Formato dia-mês-ano) e clico em gravar, a data aparece correta no Excel mas quando consulto através do formulário o vba devolve-me trocado. Troca-me os (-) por (/) e coloca aparece com o formato (mês-dia-ano).
Como posso fazer com que mantenha sempre o formato (dia-mês-ano) na textbox e na folha de Excel?
Agradeço a vossa ajuda | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Sáb maio 04, 2013 2:44 am | |
| Boa noite!! sem olhar a rotina ou o arquivo, eu não saberei dizer Como está formatando as datas, qual função está usando Cdate???? sem olhar fica complicado adivinhar exemplo - Código:
-
Dim arDate As Variant arDate = Split(Me.TextBox1.Value,"/") Range("D4").Value = DateSerial(arDate(2),arDate(1),arDate(0)) - Código:
-
cboCDate.AddItem Format(.Range("D" & x).Value, "dd/mm/yyyy") etc... | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: FORMATO DATA RESPOSTA Dom maio 05, 2013 2:33 am | |
| Não consegui chegar lá. Vamos ver consigo explicar: -Tenho uma panilha em que as colunas são Nº Processo Nª SEG SOCIAL NOME DATA DE ADMISSÃO
Crie um um userform onde tenho o botão inserir e o botão consultar.Tenho tambem a tb1, tb2, tb3..tb6(onde coloco a data). Ao colocar a data se for inferior a dia 15 do mes aparece na coluna D do excell a data separada por ("/") se for superior aparece ("-"). Alem disso se eu colocar por exemplo na tb6 (caixa de texto onde ponho a data) 02-08-2012, na folha excell 08-02-2012. Gostava ter sempre o formato em excell e na tb6 mesmo quando puxo os dados em "dd/mm/yyyy")
Coloco aqui o exemplo do botão inserir ate a tb6: Private Sub cd1_Click() Range("A3").Select 'Procurar a primeira célula vazia Do If Not (IsEmpty(ActiveCell)) Then ActiveCell.Offset(1, 0).Select End If Loop Until IsEmpty(ActiveCell) = True 'Carregar os dados digitados nas caixas de texto para a planilha ActiveCell.Value = tb1.Value ActiveCell.Offset(0, 1).Value = tb2.Value ActiveCell.Offset(0, 2).Value = tb3.Value ActiveCell.Offset(0, 3).Value = tb6.Value
O botao puxar dados: BOTÂO PUXAR (CONSULTA DE DADOS PROCURANDO PELO Nº DE IDENTIFICAÇÂO) Dim c As Range Dim LINHA Dim ws As Worksheet On Error Resume Next ComboBox1.Value = "" 'Verificar se foi digitado um nome na primeira caixa de texto If tb2.Text = "" Then MsgBox "Digite o NISS" tb2.SetFocus GoTo Linha1 End If For Each ws In Worksheets
Set c = ws.Range("B:B").Find(tb2.Value, LookIn:=xlValues, _ LookAt:=xlWhole, SearchDirection:=xlNext)
If Not c Is Nothing Then c.Activate tb2.Value = c.Value tb1.Value = c.Offset(0, -1).Value tb3.Value = c.Offset(0, 1).Value If c.Offset(0, 57).Value = "S" Then op1.Value = True Else op1.Value = False End If tb6.Value = c.Offset(0, 2).Value
SERÀ QUE ME PODEM AJUDAR?
| |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Dom maio 05, 2013 2:56 am | |
| Boa noite!
Poste seu arquivo em site gratuito e nos mande o link! Att | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: FORMATO DATA RESPOSTA Dom maio 05, 2013 12:39 pm | |
| Aqui vai
https://cloudpt.pt/link/98f6f7f3-5cf2-4c33-b1bb-b8208c01e6b8/DEP%20DE%20FA...xlsm
obrigado | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Dom maio 05, 2013 3:35 pm | |
| Bom dia!! Eu não estou entendendo, você programou para manter sempre o caractere ( - ) traço sempre que for digitado. - Código:
-
Private Sub tb6_Change()
If Len(tb6) = 2 Or Len(tb6) = 5 Then tb6.Text = tb6.Text & "/" '<- Altere, porém ficará só com esse caractere como padrão SendKeys "{End}", True End If End Sub | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: FORMATO DATA RESPOSTA Seg maio 06, 2013 1:00 am | |
| Sim , configurei com o caracter "-", mas o que acontece é que a data que eu insiro for menor que dia 15 ela aparece na folha de excell com o caracter "/" e troca a ordem. Em vez de ser 02-08-2013 (dd-mm-yyyy) fica 08-02-2013 (mm-dd-yyyy) e depois ao puxar os dados eu fico sem saber a data correcta de admissão. NO EXCELL ESTA UMA DATA E NA TB6 ESTA OUTRA. Queria que ficasse tanto num sitio como noutro o dd/mm/yyyy | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Seg maio 06, 2013 1:21 am | |
| Boa noite!!
Eu acho que eu não estou sabendo usar sua planilha com o UserForm.
Eu não tive problema ao digitar uma data e pesquisa-la no UserForm.
Att | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: FORMATO DATA RESPOSTA Seg maio 06, 2013 1:30 am | |
| Para ver o que acontece teste o seguinte.
escreva um nome na text box respectiva e ponha a data de admissão 02/08/2013 (dd-mm-yyyy) e clique no botão gravar.(1º botão do lado esquerdo no menu. Agora feche o userform e va ao registo em excell ao ultimo . O que esta lá? 08/02/2013 (mm/dd/yyyy).
Claro que antes de tudo tem que escolher a CT na combobox de cima que representa a Folha de excell onde inserir.
Desculpe todo o trabalho que estou a dar! Obrigado | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Qua maio 08, 2013 2:12 am | |
| Boa noite!! Fiz como recomendado, e realmente eu percebi seu problema, portante eu não poderei ajuda-lo visto que, para ajustar deveria alterar a maior parte de seu desenvolvimento. Infelizmente eu não poderei ajuda-lo, sinto muito Att | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: Formato data Qua maio 08, 2013 4:43 pm | |
| Compreendo. Mas será que me pode indicar que alterações eu tenho que fazer? Nem que seja o início e depois eu desenvolvo!
Obrigado!
| |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: Resolvido Qua maio 15, 2013 5:25 pm | |
| Obrigado pela ajuda e já consegui resolver a situação, mas tenho outra pergunta para colocar. Como evitar registos duplicados?
Agradecia a sua ajuda!!! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Qua maio 15, 2013 6:36 pm | |
| Boa tarde!! Me desculpe não ter te ajudado. Você pode colocar uma instrução com condicional (no caso de inserir dados com Userform). - Código:
-
Select Case Target.Address Case "$A$1": If Target.Value > 0 Then With Sheets("Sheet2") LastRow = .Cells(Rows.Count, "B").End(xlUp).Row Set EnteredValues = .Range("B1", .Range("B" & LastRow)) If EnteredValues.Count > 0 Then Match = WorksheetFunction.Match(Target.Value, EnteredValues) If WorksheetFunction.Index(EnteredValues, Match) = Target.Value Then MsgBox ("Esse valor já contém na planilha.") Exit Sub Else If Match <> EnteredValues.Count Then .Range("B" & Match + 1).Insert End If .Range("B" & Match + 1) = Target End If Else EnteredValues = Target End If End With End If End Select Ou você pode eliminar os dados depois de inseridos na planilha. - Código:
-
'Elimina as duplicidades 'Verifica os dados repetidos na coluna A, e elimina as linhas nas colunas A:E With Sheets("Dest") LastRow = Range("A65536").End(xlUp).Row For x = LastRow To 1 Step -1 If Application.WorksheetFunction.CountIf(Range("A2:E" & x), Range("A" & x).Text) > 1 Then Range("A" & x).EntireRow.Delete End If Next x | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Qua maio 15, 2013 6:37 pm | |
| Boa tarde!! Me desculpe não ter te ajudado. Você pode colocar uma instrução com condicional (no caso de inserir dados com Userform). - Código:
-
Select Case Target.Address Case "$A$1": If Target.Value > 0 Then With Sheets("Sheet2") LastRow = .Cells(Rows.Count, "B").End(xlUp).Row Set EnteredValues = .Range("B1", .Range("B" & LastRow)) If EnteredValues.Count > 0 Then Match = WorksheetFunction.Match(Target.Value, EnteredValues) If WorksheetFunction.Index(EnteredValues, Match) = Target.Value Then MsgBox ("Esse valor já contém na planilha.") Exit Sub Else If Match <> EnteredValues.Count Then .Range("B" & Match + 1).Insert End If .Range("B" & Match + 1) = Target End If Else EnteredValues = Target End If End With End If End Select Ou você pode eliminar os dados depois de inseridos na planilha. - Código:
-
'Elimina as duplicidades 'Verifica os dados repetidos na coluna A, e elimina as linhas nas colunas A:E With Sheets("Dest") LastRow = Range("A65536").End(xlUp).Row For x = LastRow To 1 Step -1 If Application.WorksheetFunction.CountIf(Range("A2:E" & x), Range("A" & x).Text) > 1 Then Range("A" & x).EntireRow.Delete End If Next x | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: Evitar duplicaçoes Qua maio 15, 2013 7:22 pm | |
| Obrigado pela ajuda.
Eliminar a linha consigo pondo esse comando no Userform initialize, mas o outro de formatação condicional não consigo. Coloco esse comando no botao de inserir? e que tipo de variáveis tenho que declarar e como? | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Sex maio 17, 2013 3:17 am | |
| Boa noite!!
Ambos tem a mesma ideia!
Caso um dos dois te servir, fique com o que conseguir adaptar!
Att | |
|
| |
nuno
Mensagens : 62 Data de inscrição : 27/02/2013
| Assunto: Resolvido Sex maio 17, 2013 6:05 pm | |
| Está a funcionar. Obrigado pela sua pronta disponibilidade! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Formato Data em Formulario Sáb maio 18, 2013 2:10 am | |
| Boa noite!! obrigado pelo retorno, até a próxima | |
|
| |
Conteúdo patrocinado
| Assunto: Re: Formato Data em Formulario | |
| |
|
| |
| Formato Data em Formulario | |
|