Archivo del Autor: Segu

calcular-dias-meses-y-anos-entre-dos-fechas-y-diferentes-periodos2

CALCULAR DÍAS, MESES Y AÑOS ENTRE DOS FECHAS Y DIFERENTES PERIODOS

Hola a todos!!

Hace unos días recibí una consulta sobre el cálculo de días, meses y años entre dos fechas, pero aplicado a varios periodos, es decir, el obtener los días, los meses y los años entre dos fechas es sencillo cuando aplicamos la función SIFECHA(), podéis profundizar un poco más en este post: CALCULAR AÑOS ENTRE DOS FECHAS EN EXCEL.

Es aplicar la función sifecha() para obtener los días, los meses y los años entre las dos fechas, y donde los elementos se relacionan entre sí, es decir, no son datos absolutos, sino que los meses van acumulando los días y los años van acumulando los meses, este sería un ejemplo:

calcular-dias-meses-y-anos-entre-dos-fechas-y-diferentes-periodos

Las fórmulas usadas para obtener este resultado con:

Años: =SIFECHA(A2;B2; "Y")
Meses: =SIFECHA(A2;B2; "YM")
Días:=SIFECHA(A2;B2; "MD")
Antigüedad General: =SIFECHA(A2;B2; "y")& " años  " & SIFECHA(A2;B2; "ym")& " meses  " &SIFECHA(A2;B2; "md")& " dias "

Hasta ahora esto es sencillo, pero ¿cómo hacemos para calcular el sumatorio de los años, los meses y los días? teniendo muy en cuenta que no podemos sumar simplemente, dado que los días no pueden ser más que los días que tiene un mes.

Lo que estamos buscando sería esto (siguiendo nuestro ejemplo):

calcular-dias-meses-y-anos-entre-dos-fechas-y-diferentes-periodos2

Como podéis observar, el resultado no es la simple suma de conceptos por columna, sino que existe una relación entre días, meses y años, de forma que los días sobrantes se van trasladando a los meses y los meses sobrantes se van trasladando a los años (en este la suma de los periodos no llegan a un año).

Para conseguir este resultado vamos a introducir la siguiente fórmula:

Para los días:
=SI(SUMA($E$2:E5)>30,5;SUMA($E$2:E5)-(ENTERO(SUMA($E$2:E5)/30,5)) *(30,5);SUMA($E$2:E5))

Para los meses:
=SI(SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5)>11;((SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5))-(ENTERO((SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5))/12))*12);SUMA($D$2:D5)+((SUMA($E$2:E5)-E6)/30,5))

Para los años:
=SUMA($C$2:C5) +ENTERO((SUMA($D$2:D5) +((SUMA($E$2:E5)-E6)/12)-D6)/12)

Esta fórmula es bastante conocida en manuales, foros, etc… y me ha parecido interesante dejarla en la web. He realizado algún ajuste que creía interesante para reducir el contenido de la fórmula.

Descarga el archivo pulsando en: CALCULAR DÍAS, MESES Y AÑOS ENTRE DOS FECHAS Y DIFERENTES PERIODOS

Anuncios
extraer-informacion-especifica-de-una-cadena-de-datos2

EXTRAER INFORMACIÓN ESPECÍFICA DE UNA CADENA DE DATOS

Hace un par de días recibí una consulta sobre un tema que había tratado en un post anterior: EXTRAER NÚMEROS Y TEXTO DE UNA CADENA DE DATOS ALFANUMÉRICA en el que realizaba un pequeño proceso para extraer todos los elementos numéricos y alfabéticos contenidos en una cadena alfanumérica.

Pues bien, un lector me envío la siguiente consulta que reproduzco literalmente:

“Esta macro funciona perfecto, pero quisiera saber si se puede adecuar para que extraiga los datos numéricos de estén definidos con el símbolo $
Ejemplo: tengo un texto de la siguiente forma ADFR45FGF$4510ASD3 Solo se necesita que la formula extraiga el valor de $4510 y que no tenga en cuenta los demás datos numéricos ni alfabéticos.”

Así pues, lo que necesitamos es una macro que sea capaz de extraer determinada información dentro de una cadena de texto:  en este caso el símbolo “$” y los siguientes caracteres numéricos consecutivos, y en caso de ser una letra (u otro caracter no numérico), simplemente no extraer nada.

Para realizar este trabajo debemos pensar y echar mano de funciones como “hallar” para determinar en el lugar de la cadena en el que se encuentra “$”, o lo que es lo mismo, en VBA la función “Search”. Una vez que tenemos este dato, resulta sencillo generar un código que permita extraer los datos hasta llegar al dólar y condicionando a que lo que extraemos sea numérico.

El último paso es invertir los datos extraídos, y ya tenemos la información.

Os dejo aquí la función ya comentada en cada uno de los pasos:

Function extrae_cadena(Micelda As String)
Dim numeros As String, i As Integer, j As Integer
Dim largo As String
'contamos hasta el $
dolar = Application.WorksheetFunction.Search("$", Micelda)
'extraemos los datos desde el dolar en adelante
largo = Trim(Mid(Micelda, dolar, 1000))
'iniciamos bucle para extraer los caracteres de la cadena anterior
fin = Len(largo)
For i = fin To 1 Step -1
'si es $ o número lo extraemos, pero si es letra no extraemos
If (Mid(largo, i, 1)) = "$" Or IsNumeric((Mid(largo, i, 1))) Then
numeros = numeros & Mid(largo, i, 1)
Else
numeros = ""
End If
Next
'invertimos el orden de los datos con otro bucle secundario
sCadena = Len(numeros)
For j = 1 To sCadena
Resultado = Mid(numeros, j, 1) & Resultado
Next j
'y ya tenemos la información
extrae_cadena = Resultado
End Function

Con esta función ya podemos extraer los datos de forma directa, tecleando en una celada la función “extrae_cadena()” y seleccionando la celda que contiene los datos.

extraer-informacion-especifica-de-una-cadena-de-datos1

También lo podéis automatizar con una macro, para darle al botón y que se extraigan los datos en la columna “B”:

Sub extrae_num()
'Ejecutamos proceso que recorre todos los datos
Dim c As Integer
With Sheets(1)
fin = Application.CountA(.Range("A:A"))
For c = 2 To fin
'Aplicamos formato texto a las celdas de la columna 2
.Cells(c, 2).NumberFormat = "@"
'aplicamos funcion extrae_cadena e insertamos resultado
.Cells(c, 2) = extrae_cadena(.Cells(c, 1))
Next
End With
End Sub

En ambos casos el resultado será el mismo, es decir extraeremos la información según los datos que nos han solicitado:

extraer-informacion-especifica-de-una-cadena-de-datos2

Y he dejado la primera celda con los datos de la consulta del lector. El resultado es el solicitado: $4510

Es un pequeño ejemplo, pero os puede ser de utilidad, dado que aquí aunque usamos el $, se puede usar cualquier otro símbolo, numero o parámetro.

Os dejo como siempre el ejemplo:

Descarga el archivo pulsando en: EXTRAER INFORMACIÓN ESPECÍFICA DE UNA CADENA DE DATOS

 

segmentar-el-contenido-de-una-celda1

SEGMENTAR EL CONTENIDO DE UNA CELDA

Hola a todos 🙂

Qué tal estáis?, espero que bien!. Esta semana he tenido varias consultas, algunas han sido bastante complejas y otras interesante por lo extraño de lo que me pedían. Una de ellas es el motivo de este post.

Y como digo en el título, lo que me pedían era poder segmentar una serie de contenidos (numéricos) de varias celdas e ir colocando cada uno de los números en la siguiente celda, por ejemplo imaginad que tenéis en una celda la siguiente cifra:
“10000” y se pide segmentar este número (incluidos los ceros) en las siguientes celdas a la derecha, es decir:

segmentar-el-contenido-de-una-celda

Aunque desconozco la finalidad de este trabajo y no logro identificar su utilidad, está claro que para ese lector sí era importante. Así que desarrollé un pequeño proceso para automatizarlo. Esta es la macro:

Sub SEGMENTAR()
'Definimos variables
Dim i As Integer, j As Integer, n As Integer
Dim sDat As String, fin As Double
With Sheets("SEGMENTAR")
'contamos el rango de los contenidos a segmentar
fin = Application.CountA(.Range("A:A"))
'iniciamos el primer bucle para seleccionar cada contenido
For n = 2 To fin
'iniciamos un segundo bucle que cuente y extraiga cada parte del contenido de la celda
For i = Len(.Cells(n, 1)) To 1 Step -1
sDat = Mid(.Cells(n, 1), i, 1)
'iniciamos un tercer bucle para colocar el segmento extraido en la celda a la derecha
For j = 1 To i
.Cells(n, j + 1) = sDat
Next j
Next i
Next n
End With
End Sub

Y una vez que aplicamos el código a las celdas de la columna “A”, segmentaremos cada uno de los contenidos.

Este es un ejemplo:

segmentar-el-contenido-de-una-celda1

Lógicamente funciona tanto con datos numéricos como con datos alfanuméricos. En este ejemplo, he tenido que transformar los datos numéricos en texto a partir de la cifra en “A12”, de lo contrario el dato se mostraría en notación científica (a partir de cifras mayores o iguales a 12 dígitos) y no quedaría muy estético (podéis echar un vistazo a los límites de Excel).

Este ha sido el post de hoy y como me ha parecido interesante lo comparto con todos vosotros 🙂

Descarga el archivo pulsando en: SEGMENTAR EL CONTENIDO DE UNA CELDA

 

descargar-datos-utilizando-una-consulta-web2

DESCARGAR DATOS UTILIZANDO UNA CONSULTA WEB

En esta web existen gran cantidad de ejemplos de cómo podemos importar o descargar información desde Internet utilizando macros. Sin duda es una tarea muy interesante que nos ofrece muchas posibilidades, ya sea de mayor información, facilidad y fiabilidad de datos, etc.

Aunque casi la totalidad de ejemplos usa ADO (aunque con diferentes códigos) hoy quiero proponer otra forma de hacerlo con un método diferente, este es, mediante una consulta web )en lugar de ADO o ODBC). Sobre este tema os dejo aquí material técnico: Método QueryTables

Este método también se puede realizar utilizando la cinta de opciones de Excel, entrando en “Datos” pulsando en “Nueva Consulta” y “Desde otras fuentes” en “Desde una web”, aquí:

descargar-datos-utilizando-una-consulta-web

Pero hoy vamos a realizar este trabajo mediante VBA, que nos ofrece mayor versatilidad y desarrollo en nuestra hoja Excel.

Vamos a realizar una pequeña consulta para ilustrar el ejercicio. Uno de los datos que con más frecuencia se suelen importar de Internet son datos bursátiles, por ejemplo los que nos ofrece Yahoo Finance, y en concreto, esta tabla con las empresas del Ibex35 y sus valores en bolsa: Yahoo Finance. Ibex35:

descargar-datos-utilizando-una-consulta-web

Para poder importar esta tabla a nuestra hoja Excel necesitamos una macro que sea capaz de crear una conexión, descargar los datos y actualizarlos cada cierto tiempo, esto implica por lo tanto que también tendremos que eliminar la conexión anterior y crear una nueva para actualizarla.

Esto lo vamos a hacer utilizando este código:

Sub Actualizar_datos()
'Ejecutamos a la macro Elimina_Datos para eliminar la conexión, la querytable y los datos
Call Elimina_Datos
'Creamos nueva conexión con la web que contiene la tabla o datos que necesitamos
With Sheets("COTIZACIONES").QueryTables.Add(Connection:="URL;https://es.finance.yahoo.com/q/cp?s=%5EIBEX", Destination:=Range("$A$1"))
'indicamos el nombre de la querytable, debemos acabarla con _1 de lo contrario, el sistema otorgará un valor numérico
.Name = "INDICES_BURSATILES_1"
'ajustamos las columnas
.AdjustColumnWidth = True
'actualizamos los datos cada minuto
.RefreshPeriod = 1
'descargamos los datos de la tabla 9
.WebTables = "9"
'actualizamos datos en segundo plano
.Refresh BackgroundQuery:=False
End With
'Renombramos la conexión para tenerla en todo momentos identificada
ThisWorkbook.Connections("Conexión").Name = "DATOS"
End Sub

Sub Elimina_Datos()
Application.ScreenUpdating = False
Dim cnn As Object
'eliminamos la conexión que hemos creado y renombrado
'de esta forma respetamos resto de conexiones, si exiten
For Each cnn In ThisWorkbook.Connections
If cnn.Name = "DATOS" Then cnn.Delete
Next cnn
With Sheets("COTIZACIONES")
filas = Application.CountA(.Range("A:A"))
columnas = Application.CountA(.Range("1:1"))
'eliminamos todos los contenidos de la tabla
'Eliminamos la tabla
If filas And columnas > 0 Then
.Range(Cells(1, 1), Cells(filas, columnas)).Select
Selection.ClearContents
Selection.QueryTable.Delete
.Range("A1").Select
End If
End With
Application.ScreenUpdating = True
End Sub

Como podéis observar, en realidad son dos macros, la primera crea la conexión y descarga los datos (Actualizar_datos) y la segunda elimina la conexión, los datos y la tabla de consultas (Elimina_Datos).

Al ejecutar la primera macro, mediante una instrucción Call llamamos a la segunda macro que limpiará los contenidos cada vez que ejecutemos la consulta.

Otro detalle importante es que una vez ejecutada la macro, podemos especificar el tiempo en el que los datos se actualicen, en este ejemplo es 1 minuto.

Siempre debemos dar un nombre a la conexión, de esta forma podremos detectarla para eliminarla sin tener que borrar todas la conexiones del libro.

El resultado de aplicar esta macro es el siguiente:

descargar-datos-utilizando-una-consulta-web2

Y eso es todo, espero que este ejemplo os haya sido de utilidad. Como siempre os dejo el archivo de ejemplo para que lo podáis consultar. En el archivo de descarga he borrado los datos y la conexión, de forma que debéis pulsar el botón para descargar los datos.

* El código ha sido probado correctamente en Excel 2010, 2013 y 2016.

Descarga el archivo de ejemplo pulsando en: DESCARGAR DATOS UTILIZANDO UNA CONSULTA WEB

 

crear-generador-de-procesos1

CREAR UN GENERADOR DE PROCESOS CON SMART ART Y VBA

Una de las tareas más comunes en cualquier organización o institución, sea pública o privada, es detectar y definir cada uno de los procesos que suceden en su seno.

No es una tarea sencilla, de hecho suele ser muy compleja y laboriosa. El objetivo de este post no es explicar cómo se hace esta tarea (que es inevitablemente un proceso teórico y manual), una labor de investigación.

Sin embargo, una vez detectadas las etapas de un proceso debemos detallarlas y pasarlas a un documento, esto lo podemos hacer o bien escribiendo un texto o bien incluir la información en un gráfico o una forma. Lo más habitual es abrir un PowerPoint y comenzar a escribir e insertar gráficos e ir rellenándolos.

Y para esa parte de la presentación de los datos es para la que este post resultará de interés y utilidad 🙂

Voy a utilizar un ejemplo para ilustrar el ejercicio (que no será un proceso organizacional), y he elegido las fases con las que cuenta el proceso de compra de una vivienda, la información la he obtenido de está web: El proceso de compra de una vivienda. Estas son las fases:

crear-generador-de-procesos

Ahora que tenemos cada una de las fases de compra ya podemos trabajar en nuestro código para generar nuestro gráfico de procesos.

Antes de mostrar el resultado, os dejo el código:

Sub GENERA_PROCESO()
Dim Diseño As SmartArtLayout
Dim Shape As Excel.Shape
Dim oNodos As SmartArtNodes
Dim i As Integer, Fin As Integer
Dim Cuenta As Integer
With Sheets("PROCESO1")
.Select
For Each Shape In .Shapes
Shape.Delete
Next
'Insertamos gráfico smartart
Set Diseño = Application.SmartArtLayouts("urn:microsoft.com/office/officeart/2005/8/layout/bProcess3")
Set inserta = .Shapes.AddSmartArt(Diseño)
Set oNodos = inserta.SmartArt.AllNodes
Fin = Application.CountA(Sheets(1).Range("A:A"))
'Generamos los nodos necesarios para mostrar la información
Do While oNodos.Count < Fin
oNodos.Add.AddNode
Loop
'Incluimos la informacion de la hoja1 en cada uno de los nodos
For i = 2 To Fin
With oNodos(i)
.TextFrame2.TextRange.Text = Sheets(1).Range("A" & i) & " " & Sheets(1).Range("B" & i)
.Shapes.Item(1).TextEffect.FontBold = msoTrue
End With
Next
'Aplicamos un color definido
For Each Shape In .Shapes
Shape.SmartArt.Color = Application.SmartArtColors("urn:microsoft.com/office/officeart/2005/8/colors/accent1_1")
'eliminamos el Nodo 1, que se corresponde con la información del cabecero de la hoja1
oNodos(1).Delete
Next
'Ajustamos y eliminamos nodos vacíos
Cuenta = oNodos.Count
If Fin <= Cuenta Then
For i = Cuenta To Fin Step -1
oNodos(i).Delete
Next
End If
'Dimensionamos el gráfico
With .Shapes(1)
.Height = 270 'Alto
.Width = 620 'Ancho
End With
End With
End Sub

Una vez que hemos ejecutado el código, este es el resultado:

crear-generador-de-procesos1

Para dar estilos rápidos y colores, os dejo el siguiente post donde explico la forma de obtener los nombres e ID’s de los estilos: OBTENER NOMBRE E ID DE LOS DISEÑOS, COLORES Y ESTILOS RÁPIDOS DE SMARTART PARA VBA

De esta forma tendremos una herramienta muy útil para generar gráficos (y podemos configurarla según nuestras preferencias).

* Válido para excel 2010, 2013 y 2016 (no funciona en versiones anteriores, dado que Smart Art todavía no se había implementado).

Descarga el archivo de ejemplo pulsando en: CREAR UN GENERADOR DE PROCESOS CON SMART ART Y VBA

 

grafico-calibrador

GENERAR UN GRÁFICO CALIBRADOR DE PROCESOS

Hola a todos!. ¿Qué tal estáis?, espero que bien.

Llevo ya tiempo sin subir ninguna actualización a Excel Signum, pero es que estos días he tenido bastante de todo y muy poco de tiempo!!.

La entrada de hoy va a ser sobre gráficos, quizás una temática de Excel que en este blog, orientado básicamente a programación, no he tratado demasiado. En el post de hoy quiero tratar un tipo de gráfico en particular, mejor dicho, la confección de un gráfico para un tipo de dato en particular, esto es, un gráfico al que se suele denominar “Calibrador de Procesos”.

Para resumir de una forma adecuada lo que es, no hay mejor forma que hacerlo mediante un ejemplo:

Imaginad que somos agentes comerciales de una determinada empresa y cada mes tenemos que reportar un informe de ventas a nuestros superiores. Hemos decidido que mostraríamos los resultados en % logrado de un máximo de un 100%. Pero como queremos que nuestro informe sea más visual y profesional, vamos a incluir un gráfico que muestre el avance de nuestros objetivos. Dado que estamos en la primera semana del mes, hemos conseguido un 38% de logro, (vamos muy bien!!) y acompañamos los resultado con este gráfico:

grafico-calibrador

Como podéis ver, el formato es parecido al velocímetro de un coche, donde vamos marcando el avance de los resultado de forma gráfica.

Para realizar este gráfico, debemos trabajar previamente una serie de datos en nuestra hoja Excel:

En una celda, vamos a incluir el % que queremos ver reflejado, en este caso el 38% y la celda será la B1, es dato lo iremos actualizando, bien de forma automática con una fórmula o bien manualmente.

Ahora debemos incluir los tres datos siguientes, que quedarán fijos y que se actualizarán automáticamente y serán la fuente de datos del gráfico:

En una celda (B4) incluiremos la siguiente fórmula: =MIN(B1;100%)/2 
con esta fórmula vamos a determinar el % de logro, lo que llevamos realizado. Por ello de los dos datos incluido en la función, donde 100% es el máximo, mostramos el mínimo, que es el dato en B1, es decir, el 38% y lo dividimos entre 2, dado que estamos trabajando con la mitad de un gráfico circular.

En la siguiente celda (B5) obtendremos lo que nos falta de nuestros objetivos y esto lo haremos restando el resultado de B4 menos el 50% que hemos insertado en la celda B6.

Esto es lo que deberíais tener en la hoja:

grafico-calibrador1

El hecho de tomar solo el 50% es que solo vamos a utilizar la mitad del gráfico circular, la otra mitad la vamos a ocultar. Ahora que tenemos los datos, vamos a por el gráfico:

Seleccionamos B4:B6 e insertamos un gráfico circular:

grafico-calibrador5

Como podéis apreciar, vemos que el gráfico debería estar colocado con la parte verde, que representa el 50% que queremos ocultar en la parte inferior, y sin embargo está en la izquierda.

Para resolver este problema, seleccionamos el gráfico y pulsamos en “Formato de punto de datos”, una vez en la nueva ventana, en opciones de serie, damos 270 puntos de giro y aceptamos.

grafico-calibrador3

Ahora  que ya está correctamente orientado el siguiente paso será ocultar la parte del 50%, para ellos vamos a pulsar sobre el 50% que queremos ocultar y de nuevo “Formato de punto de datos” y en “Relleno” marcamos “Sin relleno“:

grafico-calibrador2

Y ya está, ya tenemos casi acabado nuestro gráfico. Ahora solo queda ponerle un título y utilizando un cuadro de texto que vamos a vincular a la celda B1 mostraremos siempre el % al lado del título, así:

grafico-calibrador

Ha sido un post muy sencillo y donde en la web podréis encontrar multitud de ejemplos. Ahora solo queda que le deis un formato adecuado y realicéis el mismo proceso para el resto de objetivos, os quedará un gran informe.

Y esto ha sido todo, os dejo como siempre el archivo de ejemplo, espero que os sea de utilidad.

Descarga el archivo de ejemplo pulsando en: GENERAR UN GRÁFICO CALIBRADOR DE PROCESOS

 

ENVIAR DATOS DESDE EXCEL A UNA PAGINA WEB – FORMULARIO

Hola a todos:

Hace unos días me enviaban una consulta sobre cómo podían enviar a través de Excel datos para introducir valores en un formulario web. Aunque la respuesta ya la adelanté en esta web me ha parecido interesante publicarla en una entrada.

Para poder realizar el trabajo debemos usar VBA y para ello es necesario que tengamos en cuenta algunos aspectos de la página web en cuestión y los elementos que vamos a necesitar para poder realizar la consulta.

Como ejemplo voy a utilizar mi web, de manera que mediante  código sea capaz de ingresar en su cuadro de búsqueda un valor, por ejemplo: “API” y que realice la búsqueda. Es decir, que sea capaz de enviar datos a una web, la mía,  y a un cuadro de texto (parecido a un formulario) y generar la búsqueda.

Para ello, vamos a utilizar la siguiente macro:

Sub CARGAR_DATOS_WEB()
Dim IE As Object
Application.ScreenUpdating = False
'Creamos objeto internet explorer
Set IE = CreateObject("InternetExplorer.Application")
'abrimos web
IE.navigate "https://excelsignum.com/"
'esperamos a que se carguen todos los elementos
Do Until IE.ReadyState = 4
DoEvents
Loop
'si necesitamos más tiempo lo podemos configurar aquí
Application.Wait (Now + TimeValue("0:00:01"))
'localizamos el ID que hace referencia al cuadro de búsqueda
'esto lo hacemos buscando en el código HTML de la página web
'e igualamos el valor de la celda para realizar la búsqueda
IE.document.getElementById("s").Value = "API" '
'también buscamos ID correspondiente al botón para buscar el valor
IE.document.getElementById("searchsubmit").Click
'hacemos visible la web.
IE.Visible = True
Set IE = Nothing
Application.ScreenUpdating = True
End Sub

Como podéis observar, es de gran importancia que seamos capaces de identificar los ID´s de cada uno de los elementos, es decir, del buscador y del botón para realizar la búsqueda.

Esto lo podemos hacer de varias formas, o bien rastreamos el código HTML de toda la web o bien nos posicionamos encima del buscador y pulsamos botón derecho:

enviar-datos-desde-excel-a-una-pagina-web_formulario1

y se abrirá la ventana de inspección con el ID o Name que necesitamos:

enviar-datos-desde-excel-a-una-pagina-web_formulario

Como podéis ver Para el buscador el ID es “s” y para el botón de búsqueda el procedimiento será idéntico.

Una vez que tenemos los ID´s ya podemos introducirlos en la macro y ejecutarla, el resultado que esperamos es ver una búsqueda de la palabra “API” en Excel Signum, es decir, esto:

enviar-datos-desde-excel-a-una-pagina-web_formulario2

Obviamente si hablamos de un formulario web, tendremos que identificar el elemento adecuado, si se trata de un ID o un Nombre y realizar tantas referencias como sean necesarias.

Esta vez no pondré archivo de descarga, el motivo es que no es necesario, tan solo hay que copiar la macro en un módulo, adaptarla y ejecutarla.

Espero que os sea de utilidad 🙂