Blog – Os top 20 posts de 2011

Top 20 do Blog

Virou mania. Gostei tanto do ter feito isso ano passado que vou repetir e claro, comentar a quantas foram as visitas do site neste ano de 2011.

De imediato, fico feliz em dizer que, saber que a Home Page passou a ser a página mais acessada me deixa muito feliz, pois siginifica que a fidelidade dos usuários só aumentou. De resto, só boas notícias. Os acessos em relação ao ano anterior aumentaram! Para conferir como foi no ano passado, basta conferir este post:

https://www.tomasvasquez.com.br/blog/tecnologia/blog-os-top-20-posts-de-2010

De resto, poucas mudanças no ranking. O foco do pessoal tem sido Excel, VBA e as planilhas prontas que colocamos aqui. A intenção é diversificar o conteúdo, mas sem perder a identidade que tem mantido este blog.

Abaixo você confere a lista do 20 posts mais acessados do ano de 2011.

Acessos de 19/12/2010 até 19/12/2011

Post Visualizações
Home page More stats 122.907
Planilhas de Controle Financeiro no Excel More stats 107.711
Modelos Prontos More stats 67.012
Excel – Modelos de Folha de Pagamento More stats 63.355
Modelos – Planilha de Banco de Dados no Excel More stats 50.679
Excel – Crie uma planilha de gastos mensais personalizada More stats 46.052
Segurança – Quebrando senhas de projetos VBA do Microsoft Office More stats 15.647
Controle de Estoque no Excel More stats 15.045
VBA – Emitindo mensagens personalizadas com MsgBox More stats 14.944
Excel – Modelo de Agenda de Telefones em VBA More stats 10.296
VBA – Auto executando macros ao abrir arquivos do Office More stats 9.281
Criando um formulário no Word More stats 9.256
Unindo dados de duas ou mais planilhas no Excel More stats 9.216
Excel VBA – Escrevendo números por extenso More stats 9.150
Excel – Planilhas interativas More stats 9.051
Excel – Planilha ajuda em compras no mercado More stats 9.014
Excel – Somando Meses com a função DATA() More stats 8.659
Excel – Planilha de acompanhamento de perda de peso More stats 8.219
Controle de Horas no Excel More stats 7.618
Excel – Controle Financeiro 2010 More stats 7.432

Não vou me despedir ainda pois pretendo colocar novidades até o fim do ano. No mais, um muito obrigado a todos por este e que as coisas só melhorem em 2012.

Um grande abraço!

VBA – Fomatar TextBox (Data, Telefone, CPF) nos Eventos KeyPress e Change

Publicado por Mauro Coutinho

 

Colegas, conforme solicitação em outro Forum, referente a alguns tipos de formatação em TextBox, segue as rotinas utilizando-se os Eventos KeyPress e Change :

Formata DATA : Supondo que o TextBox esteja com o nome “txtData”, a formatação ocorrerá quando da digitação :

Private Sub txtData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
	'Limita a Qde de caracteres
	txtData.MaxLength = 8
 
	'para permitir que apenas números sejam digitados
	If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
		KeyAscii = 0
	End If
 
End Sub
 
Private Sub txtData_Change()
	'Formata : dd/mm/aa
	If Len(txtData) = 2 Or Len(txtData) = 5 Then
		txtData.Text = txtData.Text & "/"
		SendKeys "{End}", True
	End If
End Sub

Formata CPF:

Private Sub Txt_CPF_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
	'Limita a Qde de caracteres
	Txt_CPF.MaxLength = 14
 
	 Select Case KeyAscii
		Case 8, 48 To 57 ' BackSpace e numericos
		  If Len(Txt_CPF) = 3 Or Len(Txt_CPF) = 12 Then
			Txt_CPF.Text = Txt_CPF.Text & "."
			SendKeys "{End}", False
 
		ElseIf Len(Txt_CPF) = 7 Then
			Txt_CPF.Text = Txt_CPF.Text & "."
 
		ElseIf Len(Txt_CPF) = 11 Then
			Txt_CPF.Text = Txt_CPF.Text & "-"
			SendKeys "{End}", False
		  End If
 
		Case Else ' o resto é travado
			KeyAscii = 0
	  End Select
End Sub

Veja um exemplo utilizando CPF com verificação de Digito :
http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=2780&p=12637&hilit=cpf#p12637

Foramata Numeros de Fones : TextBox Fone para dois numeros formato : 2222-3344 / 3333-4567 :

Private Sub txtFone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
		'Limita a Qde de caracteres
		txtFone.MaxLength = 21     
 
		 Select Case KeyAscii
		Case 8, 48 To 57 ' BackSpace e numericos
		  If Len(txtFone) = 4 Or Len(txtFone) = 10 Then
			txtFone.Text = txtFone.Text & "-"
			SendKeys "{End}", False
 
		ElseIf Len(txtFone) = 9 Then
			txtFone.Text = txtFone.Text & " / "
 
		ElseIf Len(txtFone) = 16 Then 'Or Len(txtFone) = 20 Then
			txtFone.Text = txtFone.Text & "-"
			SendKeys "{End}", False
		  End If
 
		Case Else ' o resto é travado
			KeyAscii = 0
	  End Select
 
End Sub

Formato Horas, com validação se a Hora é valida, não tenho a fonte, ja faz um tempo que usei esta rotina :

Private Sub txtHoras_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
	Dim TimeStr As String
 
	Set TextLength = txtHoras
 
	On Error GoTo EndMacro
	With txtHoras
		If HasFormula = False Then
 
		Select Case Len(TextLength)
 
			Case 1
				TimeStr = "00:0" &amp; TextLength
			Case 2
				TimeStr = "00:" &amp; TextLength
			Case 3
				TimeStr = Left(TextLength, 1) & ":" & Right(TextLength, 2)
			Case 4
				TimeStr = Left(TextLength, 2) & ":" & Right(TextLength, 2)
 
			'Case 5 ' ex: 12345 = 01:23:45
			'        TimeStr = Left(TextLength, 1) & ":" & Mid(TextLength, 2, 2) & ":" & Right(TextLength, 2)
			'Case 6 ' ex: 123456 = 12:34:56
			'        TimeStr = Left(TextLength, 2) & ":" & Mid(TextLength, 3, 2) & ":" & Right(TextLength, 2)
 
			Case Else
			  MsgBox "HORA EM BRANCo !!!"
					  'With TextBox1
					  '    .SetFocus
						  '.SelStart = 0
						  '.SelLength = Len(.Text)
					'  End With
			  Exit Sub
 
		End Select
			Application.EnableEvents = False
			Formula = TimeValue(TimeStr)
			txtHoras = TimeStr
			sCancel = False
		End If
	End With
 
	GoTo Fim
 
EndMacro:
 
	MsgBox "HORA Inválida !!!"
		  With txtHoras
		   .SetFocus
		   .SelStart = 0
		   .SelLength = Len(.Text)
	  End With
	  sCancel = True
 
Fim:
	Application.EnableEvents = True
End Sub
 
Private Sub txtHoras_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
	txtHoras.MaxLength = 4
 
	Select Case KeyAscii
			Case 8, 48 To 57 ' BackSpace e numericos
			  'If Len(txtHoras) = 2 Or Len(txtHoras) = 6 Then
			  '  txtHoras.Text = txtHoras.Text & ":"
				SendKeys "{End}", False
			 ' End If
			Case Else ' o resto é travado
				KeyAscii = 0
		  End Select
End Sub

Formata Textbox somente com um numero de Telefone e (dd), Formato (xx) xxxx-xxxx:

Private Sub txtFone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
	'Limita a Qde de caracteres
	txtFone.MaxLength = 14
 
	'Formato (xx) xxxx-xxxx
	If Len(txtFone) = 0 Then
		txtFone.Text = "("
	End If
 
	If Len(txtFone) = 3 Then
		txtFone.Text = txtFone & ") "
	End If
 
	If Len(txtFone) = 9 Then
		txtFone.Text = txtFone & "-"
	End If
 
End Sub

Textbox com dois numeros de Telefone e (dd), Formato (xx) xxxx-xxxx / xxxx-xxxx:

Private Sub txt2Fone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
		'Limita a Qde de caracteres
		txt2Fone.MaxLength = 26
 
		'Formato (xx) xxxx-xxxx / xxxx-xxxx
		If Len(txt2Fone) = 0 Then
			txt2Fone.Text = "("
		End If
 
		If Len(txt2Fone) = 3 Then
			txt2Fone.Text = txt2Fone & ") "
		End If
 
		Select Case KeyAscii
 
			 Case 8, 48 To 57 ' BackSpace e numericos
			   If Len(txt2Fone) = 9 Or Len(txt2Fone) = 10 Then
				 txt2Fone.Text = txt2Fone.Text & "-"
				 SendKeys "{End}", False
 
			 ElseIf Len(txt2Fone) = 14 Then
				 txt2Fone.Text = txt2Fone.Text & " / "
 
			 ElseIf Len(txt2Fone) = 21 Then
				 txt2Fone.Text = txt2Fone.Text & "-"
				 SendKeys "{End}", False
			   End If
 
			 Case Else ' o resto é travado
			KeyAscii = 0
 
	  End Select
 
End Sub

Façam os testes, só não esqueçam de arrumarem os nomos dos controles Textbox conforme estão nas rotinas.

Quem tiver mais algumas rotinas interessantes e quiser postar fiquem a vontade.

Link para o tópico do Fórum:

http://tomasvasquez.com.br/forum/viewtopic.php?f=17&t=1505&p=7213#p7213

VBA – Icone Personalizado Form e Barra do Windows

Publicado por Mauro Coutinho

Colegas, conforme solicitação do amigo Erikson no tópico abaixo:

Userform com Ícone próprio
Userform com Ícone próprio

Userform com icone próprio
http://www.tomasvasquez.com.br/forum/viewtopic.php?f=6&t=1492

No tópico acima, temos a juda do colega Melo onde o mesmo alem de detalhar postou um exemplo tambem.

Fiz algumas adaptações das rotinas, conforme explicado abaixo, então segue um exemplo onde temos duas formas de utilizar o Formulário :

  1. O Icone Personalizado está definido na Propriedade do Conttrole Image diretamente no Formulário, para altera-lo é só altera-lo na propriedade.
  2. O Icone está definido na propria rotina travez do Caminho e Nome do mesmo, para funcionar corretamente, é só ajustar o caminho e o nome do Icone.

O tópico do fórum para baixar o arquivo e discussões sobre está no link abaixo:

http://www.tomasvasquez.com.br/forum/viewtopic.php?f=17&p=7216#p7216

Façam os testes e qualquer dúvida, retornem.

Abraços