Se trata de crear una función definida de usuario en excel vba que obtenga las letras iniciales de cada palabra de un texto ubicado en una celda.
En este videotutorial voy a crear una función udf (Función definida de usuario) mediante programación vba en excel.
Una vez terminada de desarrollar la función tendra la siguiente sintaxis:
=ObtenerIniciales(Celda)
Celda: Es la celda de la cual se va a tomar el texto y mostrar la primera letra de cada palabra.
Ejemplo:
Supongamos que en la celda A1 se encuentra el texto "Esto es una prueba"
Y en A2 colocamos la siguiente formula
=ObtenerIniciales(A1)
Este seria el resultado
"Eeup"
Les comparto el video para que puedan crear la funcion para obtener la primera letra de cada palabra en excel
Sitio web dedicado a la enseñanza y desarrollo de aplicaciones y tutoriales en Microsoft excel con VBA
domingo, 12 de junio de 2016
Los errores mas comunes en excel
Estos son los errores mas comunes en excel que pueden aparecer al intentar realizar algun trabajo
#N/A
Se muestra al no ubicar el valor buscado
que normalmente aparece en la función BUSCARV
#¡DIV/0!
El error se produce al realizar la división
entre cero
Ejemplo:
=140/0
#VALOR
Ocurre al realizar una operación entre
distintos tipos de datos, un ejemplo seria multiplicar un valor numérico con un
texto.
=SUMA(1*”abcd”)
#¿NOMBRE?
Se muestra al escribir cómo primer carácter
el símbolo igual y escribir una función que no es valida
=MOSTRAR
Esta función no existe en Excel por lo
tanto muestra error
#¡REF!
Ocurre cuando se referencia a una celda que
no existe porque se ha eliminado no está dentro del rango de nuestra función.
lunes, 23 de noviembre de 2015
Macro para transformar datos de horizontal a vertical
En este video explico como utilizar la macro que sirve para transformar información que se encuentra de manera horizontal a vertical, esto es util cuando nos pasan los datos en columnas hacia la derecha y nos cuesta mucho darle un formato de base de datos.
Les comparto el link para que puedan descargarlo
Les comparto el link para que puedan descargarlo
jueves, 5 de noviembre de 2015
Macro para crear indice de hojas en excel
Cuando tenemos muchas hojas en nuestro libro de excel a veces necesitamos poner un vinculo a cada hoja desde una hoja principal para poder dirigirnos a cada una de ellas, esto se llama crear indice de hojas de excel, pero hacerlo de forma manual tomaría mucho tiempo si se tratara de varias hojas. Existe una manera mucho más rápida de hacerlo con tan solo un clic, y esto se logra usando programación vba o también llamado macro.
Pasos previos
Debemos tener un libro con 7 hojas la primera sera la hoja "Indice" en la cual se generarán los indices de cada hoja y las 6 restantes tendrán el nombre de cada mes desde enero hasta junio.
En la celda A1 de la hoja Indice pondremos el texto "Lista de hojas" que sera nuestra cabecera, y de allí para abajo se almacenaran los indices de cada hoja.
Crear macro para insertar el código
Nos dirigimos al entorno de programación vba (Visual basic para Aplicaciones) presionando las teclas Alt+F11, luego en el menú le damos clic en Módulo.
Dentro del modulo pegaremos el siguiente código:
Sub Crear_Indice_Hojas() Fila = 1 For Each Hoja In Worksheets ' Agregar vinculo a cada hoja del mes If Hoja.Name <> "Indice" Then With Worksheets("Indice") .Hyperlinks.Add Anchor:=.Cells(Fila, 1), Address:="", _ SubAddress:=Hoja.Name & "!A1", TextToDisplay:=Hoja.Name 'Agregar vinculo de retorno a la hoja indice End With With Worksheets(Hoja.Name) .Hyperlinks.Add Anchor:=.Cells(1, 2), Address:="", _ SubAddress:="Indice!A1", TextToDisplay:="Indice" End With End If Fila = Fila + 1 Next End Sub
Para usar el código que hemos programado simplemente debemos seleccionar la hoja "Indice" y presionamos la combinación de teclas Alt + f8 y ejecutar la macro "Crear_Indice_Hojas".
Una vez ejecutada la macro nos agrega dentro de la hoja "Indice" los nombres de cada hoja del mes en una lista a partir de la celda A2.
También se agrega un vinculo de retorno hacia la hoja "indice" en cada Hoja de mes en la celda B1, si deseamos modificar la posición del vinculo, dentro del código deberíamos modificar esta parte: cells(1,2) donde 1 es la posición de la fila y 2 la posición de la columna por la celda que queramos.
With Worksheets(Hoja.Name)
.Hyperlinks.Add Anchor:=.Cells(1, 2), Address:="", _
SubAddress:="Indice!A1", TextToDisplay:="Indice"
End With
Finalmente guardamos nuestro libro con el tipo "Libro de excel habilitado para macros"
De una manera sencilla nos ahorramos mucho tiempo en crear los indices para nuestras hojas de excel.
Desde aquí puedes descargar el archivo de ejemplo
miércoles, 4 de noviembre de 2015
Funcion para sumar digitos de un numero en excel vba
Vamos a crear una función para sumar dígitos de un numero en excel vba la cual la realizaremos usando vba (Visual basic para aplicaciones)
Para usar la función debemos dirigirnos a cualquier celda de nuestra hoja y escribir la funcion
=SumarDigitos(Numero) donde Numero es un valor numerico o referencia a la celda de la cual se desea sumar sus digitos.
Veamos el ejemplo
Se debe tomar en cuenta lo siguiente:
Muestra cero cuando se quiere sumar valores que no sean numéricos, como caracteres especiales o letras.
Si se ingresa un numero negativo, este no se toma en cuenta.
Ingresaremos a nuestro editor de vba y agregamos un modulo en el cual pegaremos el siguiente código que esta explicado en los comentarios.
Function SumarDigitos(Numero As Double) 'Recorrer lac cantidad de digitos que tiene el numero For i = 1 To Len(Numero) 'Almacenar la suma en la funcion SumarDigitos SumarDigitos = SumarDigitos + Val(Mid(Numero, i, 1)) Next End Function
Para usar la función debemos dirigirnos a cualquier celda de nuestra hoja y escribir la funcion
=SumarDigitos(Numero) donde Numero es un valor numerico o referencia a la celda de la cual se desea sumar sus digitos.
Veamos el ejemplo
![]() |
Función para sumar los dígitos de un número |
Se debe tomar en cuenta lo siguiente:
Muestra cero cuando se quiere sumar valores que no sean numéricos, como caracteres especiales o letras.
Si se ingresa un numero negativo, este no se toma en cuenta.
sábado, 31 de octubre de 2015
Registro de productos desde un formulario vba hacia una hoja de excel
En este tutorial les voy a enseñar como realizar el registro de productos desde un formulario hacia una hoja de excel.
El formulario cuenta con el boton nuevo que nos permite generar un codigo autonumerico para la columna codigo de producto, un boton grabar el cual primero valida que los datos a ingresar sean correctos y luego inserta los valores del formulario hacia la hoja de productos y un boton salir el cual cierra el formulario.
Se ha tratado que los controles utilizados para el ingreso de informacion sean los basicos como el label, textbox y combobox.
Este tutorial consta de dos videos secuenciales.
Video # 1 - Diseñando el formulario de ingreso de productos
Video # 2 - Programando el formulario de ingreso de productos.
El formulario terminado lo pueden descargar desde este link.
El formulario cuenta con el boton nuevo que nos permite generar un codigo autonumerico para la columna codigo de producto, un boton grabar el cual primero valida que los datos a ingresar sean correctos y luego inserta los valores del formulario hacia la hoja de productos y un boton salir el cual cierra el formulario.
Se ha tratado que los controles utilizados para el ingreso de informacion sean los basicos como el label, textbox y combobox.
Este tutorial consta de dos videos secuenciales.
Video # 1 - Diseñando el formulario de ingreso de productos
Video # 2 - Programando el formulario de ingreso de productos.
El formulario terminado lo pueden descargar desde este link.
jueves, 15 de octubre de 2015
Macro en excel para convertir texto a mayúscula, minúscula y nombre propio
Macro en excel para convertir texto a MAYÚSCULA, minúscula y Nombre Propio
Actualmente en excel existen estas funciones, pero la limitación es que si tenemos varias celdas (unas 1000 celdas por ejemplo) deberíamos convertirlas en otras celdas y luego reemplazarlas para que surjan efecto.
Lo que haremos con estas macros sera convertirlas en el mismo lugar donde se encuentran con un solo paso.
Y bien pondremos los códigos vba de cada una.
Convertir a mayúsculas
Convertir a minúsculas
Convertir a Nombre propio
Para utilizarlo, deben seleccionar el rango de celdas que desean convertir y luego ejecutar el código respectivo y verán que da el resultado esperado.
Actualmente en excel existen estas funciones, pero la limitación es que si tenemos varias celdas (unas 1000 celdas por ejemplo) deberíamos convertirlas en otras celdas y luego reemplazarlas para que surjan efecto.
Lo que haremos con estas macros sera convertirlas en el mismo lugar donde se encuentran con un solo paso.
Y bien pondremos los códigos vba de cada una.
Convertir a mayúsculas
Sub Mayusculas()
Application.ScreenUpdating = False
For Each celda In Selection
celda.Value = UCase(celda)
Next
Application.ScreenUpdating = True
End Sub
Convertir a minúsculas
Sub Minusculas()
Application.ScreenUpdating = False
For Each celda In Selection
celda.Value = LCase(celda)
Next
Application.ScreenUpdating = True
End Sub
Convertir a Nombre propio
Sub NombrePropio()
Application.ScreenUpdating = False
For Each celda In Selection
celda.Value = WorksheetFunction.Proper(celda)
Next
Application.ScreenUpdating = True
End Sub
Para utilizarlo, deben seleccionar el rango de celdas que desean convertir y luego ejecutar el código respectivo y verán que da el resultado esperado.
Suscribirse a:
Comentarios (Atom)
Cargar multiples archivos txt en SSIS
Fuentes Archivos planos Descargar AQUÍ los archivos Consulta SQL de creacion de tabla Despacho en SQL Server CREATE TABLE [dbo].[Despacho]...
-
Macro para crear un libro de Excel por cada filtro Puedes decargar la macro desde este link
-
En este video explico como utilizar la macro que sirve para transformar información que se encuentra de manera horizontal a vertical, esto e...
-
Ejemplo en Excel VBA donde se cargara una lista de paises a un listview. Esto se realizara al cargar el formulario. Para eso ncesitam...