VBA: Limpiar carácteres en texto

Muchas veces nos encontramos que un texto incluye caracteres que no queremos o nos causan un error al tratar con ellos. Por ello hoy os traigo una función que nos permite decir que caracteres son válidos y el resto los ignora para su tratamiento.

Para ver código haga clic aquí

No se ven imágenes de usb en televisión

Recientemente me encontrado con este problema. Tenía un USB con imágenes en formato JPG que al conectarlas a la televisión no había manera de verlas. Sin embargo, si conectaba el USB al ordenador no tenía problemas para verlas.El problema radicaba en el tamaño de las imágenes.

¿Como saber tamaño imagen?

  1. Nos vamos a la carpeta donde tenemos las imágenes
  2. Botón derecho encima de una de ellas y dar a propiedades.
  3. Pestaña detalles
  4. Fijaros en tamaño imagen

captura

Aunque depende de la televisión, fijarse en el ancho de la imagen. Si es mas de 1000 pixeles, seguramente aquí radique el problema.

¿Que podemos hacer?

Hay que redimensionar la imagen. Se puede hacer con programas como el photoshop pero si es par algo puntual y no muchas fotos podemos recurrir a conversores online.

Lista Conversores Online

Iloveimg – Redimensionar Imagenes
Resizer
Icecream – Image Resizer

VBA: Validar número de cuenta IBAN

A continuación os pongo las funciones para validar un IBAN.

A nivel de módulo debéis establecer una constante como la siguiente:

Private Const IbanCountryLengths As String = "AL28AD24AT20AZ28BH22BE16BA20BR29BG22CR21HR21CY28CZ24DK18DO28EE20FO18" & _
"FI18FR27GE22DE22GI23GR27GL18GT28HU28IS26IE22IL23IT27KZ20KW30LV21LB28" & _
"LI21LT20LU20MK19MT31MR27MU30MC27MD24ME22NL18NO15PK24PS29PL28PT25RO24" & _
"SM27SA24RS22SK24SI19ES24SE24CH21TN24TR26AE23GB22VG24QA29"

Función Validate Iban Country Length

Private Function ValidateIbanCountryLength(CountryCode As String, IbanLength As Integer) As Boolean
Dim i As Integer
For i = 0 To Len(IbanCountryLengths) / 4 - 1
If Mid(IbanCountryLengths, i * 4 + 1, 2) = CountryCode And _
CInt(Mid(IbanCountryLengths, i * 4 + 3, 2)) = IbanLength Then
ValidateIbanCountryLength = True
Exit Function
End If
Next i
ValidateIbanCountryLength = False
End Function

Función Mod97

Private Function Mod97(Num As String) As Integer
Dim lngTemp As Long
Dim strTemp As String
 
Do While Val(Num) >= 97
If Len(Num) > 5 Then
strTemp = left(Num, 5)
Num = right(Num, Len(Num) - 5)
Else
strTemp = Num
Num = ""
End If
lngTemp = CLng(strTemp)
lngTemp = lngTemp Mod 97
strTemp = CStr(lngTemp)
Num = strTemp & Num
Loop
Mod97 = CInt(Num)
End Function

Función Validate IBAN

Función que se debe llamar para validar un IBAN.

Public Function ValidateIban(iban As String) As Boolean
Dim strIban As String
Dim i As Integer
' http://en.wikipedia.org/wiki/International_Bank_Account_Number
 
strIban = UCase(iban)
' Remove spaces
strIban = Replace(strIban, " ", "")
 
' Check if IBAN contains only uppercase characters and numbers
For i = 1 To Len(strIban)
If Not ((Asc(Mid(strIban, i, 1)) <= Asc("9") And Asc(Mid(strIban, i, 1)) >= Asc("0")) Or _
(Asc(Mid(strIban, i, 1)) <= Asc("Z") And Asc(Mid(strIban, i, 1)) >= Asc("A"))) Then
ValidateIban = False
Exit Function
End If
Next i
 
' Check if length of IBAN equals expected length for country
If Not ValidateIbanCountryLength(left(strIban, 2), Len(strIban)) Then
ValidateIban = False
Exit Function
End If
 
' Rearrange
strIban = right(strIban, Len(strIban) - 4) & left(strIban, 4)
 
' Replace characters
For i = 0 To 25
strIban = Replace(strIban, Chr(i + Asc("A")), i + 10)
Next i
 
' Check remainder
ValidateIban = Mod97(strIban) = 1
End Function

VBA Access: Validar NIF/CIF/NIE

A continuación os pongo las funciones necesarias para la validación de NIE,NIF y CIF en Access.

Función isNIFCIFNIE

Esta función es a la que se llama desde un botón o evento para validar el contenido. Identifica si es un NIF;NIE o CIF para validarlo de forma correcta.

Microsoft Access: Poner contraseña a la base de datos

A continuación os expongo los pasos a seguir para poner una contraseña de acceso a las base de datos access.

1- Abrimos Microsoft Access
2- Damos a Archivo -> Abrir

access_abrir_bd
3- Buscamos la base de datos a la que queremos poner la contraseña. Antes de darle a abrir, hay que dar al lado del botón a abrir. Elegir Abrir en modo exclusivo.

access_abrir_modo_exclusivo
4- Damos a Archivo y seleccionamos “Cifrar con contraseña”.

access_elegir_poner_contraseña

5- Ponemos la contraseña deseada

access_poner_contraseña

Añadir referencias vba access de forma dinámica

Me he encontrado en la situación que tengo una aplicación de access montada de forma cliente/servidor. Cuando por alguna razón tengo que crear un Access donde vuelva a unir tanto las tablas como los formularios las referencias a las librerias ya no estas puestas y hay que ir añadiendo una a una. A continuación os cuento un módulo que tengo creado para que mediante una función me vuelva a poner todas las referencias.