Baboseiras – O iPad virou um Game Boy!

Como é final de semana, essa passa. 😛

Finalmente algo bacana para se fazer com o iPad! Brincadeira….

Não, não é um emulador. Quer andar com um iPad por aí, mas sem passar vergonha diante de seus amigos? Por US$ 34, o site Etsy disponibiliza uma capa para o iPad que “transforma” o aparelho no Game Boy, o clássico videogame portátil da Nintendo, lançado em 1989.

Dá para matar a saudade do visual. Os botões A, B, Select e Start são de feltro, assim como a tela. Saudosistas de plantão e fãs de games portáteis, uni-vos!

Fonte: UOL

Excel – Modelo de Agenda de Telefones em VBA

Contribuição do colega de Fóruns de Excel, Mauro Coutinho. Valeu garoto!

O modelo de Agenda de Telefones disponibiliza algumas funcionalidades de formulários VBA e interação com planilhas do Microsoft Excel. Construído, segundo o próprio autor, a partir dos conhecimentos de muitos colaboradores de alguns dos mais importantes fóruns de Excel e VBA no Brasil. A mesma possui o código aberto, livre para manusearem conforme a necessidade.

Algumas imagens da planilha

Modelo de Agenda de Telefones em VBA

Modelo de Agenda de Telefones em VBA

Download da planilha

http://www.tomasvasquez.com.br/downloads/AgendaFonesMVC.zip

Para tirar dúvidas sobre o modelo, visitem:

http://www.tomasvasquez.com.br/forum/viewtopic.php?f=6&t=243&start=0

Excel – Criando uma função usando Regular Expression

Regex

No mundo da programação, pelo menos nos últimos anos, as Regular Expressions tornaram um utilitário quase indispensável para análise de textos, seja qual for a linguagem. Diante deste cenário, é um pouco estranho o Excel como ferramenta de uso geral para análise não tenha incluído essa funcionalidade.

Fica como sugestão para a versão 2010, se é que ela já não tem. E se a Microsoft não faz, a gente faz, certo?

Para fazer uso do mecanismo de Regular Expressions nas suas planilhas de Excel, crie um novo módulo no VBA e cole o seguinte código:

Public Function RegExp(Text As String, Pattern As String) As Boolean
    Dim oRegEx As Object
    Set oRegEx = CreateObject("VBScript.RegExp")
    With oRegEx
        .Pattern = Pattern
        RegExp = .Test(Text)
    End With
    Set oRegEx = Nothing
End Function

Em detalhes, a função faz uso da biblioteca VBScript.RegExp disponível no Windows. Como ele é acessível somente por VBA, é possível disponibilizar criar uma função personalizada para usufruir desta funcionalidade. Um exemplo de chamada seria como na planilha a seguir:

A
B
1 Email webmaster@tomasvaquez.com.br
2 Expressão ^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$
3 Válido (=RegExp(B1;B2)) VERDADEIRO

No caso acima, a Regular Expression utilizada é para validar se o email é válido ou não, pelo menos seu formato de texto.

Para saber mais sobre Regular Expressions:

http://www.regular-expressions.info/

Referências:

http://www.eggheadcafe.com/software/aspnet/30273396/excel-to-check-for-regula.aspx

VBA – Validação de Domínios

Tudo bem, este código é valido para qualquer linguagem, já que utiliza uma API existente no Windows, a URLMON.dll.

O código abaixo disponibiliza uma função para validar um domínio de Internet ou URI. Em tempo:

Em TI, um Identificador Uniforme de Recursos (URI) (Uniform Resource Identifier (em inglês)) é uma cadeia de caracteres compacta usada para identificar ou denominar um recurso na Internet. O principal propósito desta identificação é permitir a interação com representações do recurso através de uma rede, tipicamente a Rede Mundial, usando protocolos  específicos. URIs são identificadas em grupos definindo uma sintaxe específica e protocolos associados.

(fonte: WikiPedia)

Option Explicit
Private Const S_FALSE = &H1
Private Const S_OK = &H0
Private Declare Function IsValidURL Lib "URLMON.DLL" (ByVal pbc As Long, ByVal szURL As String, ByVal dwReserved As Long) As Long
 
Function IsGoodURL(ByVal sURL As String) As Boolean
    'The IsValidURL always expects a UNICODE string, but whenever
    'VB calls an API function, it converts the strings to ANSI strings.
    'That's why we're going to use a trick here. Before calling the function,
    'We're going to convert the unicode string to unicode so we get a double
    'unicode string.
    'Before VB calls the API function, it converts our double unicode string
    'to a normal unicode string; exactely what IsValidURL is expecting.
    sURL = StrConv(sURL, vbUnicode)
    'Now call the function
    IsGoodURL = (IsValidURL(ByVal 0&, sURL, 0) = S_OK)
End Function

Mantive os comentários do autor para evidenciar a autoria. Para testar o código, basta colocar em uma célula qualquer a chamada da função desta forma:

=IsGoodURL(“http://www.tomasvasquez.com.br”)

O código tem algumas limitações, como exigir a existência do “http://” em todo domínio a ser validado.

Referências

http://msdn.microsoft.com/en-us/library/ms775112%28VS.85%29.aspx
http://www.vbforums.com/showthread.php?t=611648

Bom proveito!