Quantcast
Channel: EXCELeINFO
Viewing all 466 articles
Browse latest View live

Curso Macros en Excel – Cap. 80 – Agenda telefónica desde cero PARTE 3

$
0
0

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica desde cero usando macros y VBA en Excel. En esta tercera parte veremos cómo implementar el Calendario de Andrés Rojas Moncada en nuestro propio Formulario de Alta, así como usar funciones VBA para restringir el ingreso de texto o número en ciertos controles de texto.

Ver video Capítulo 80 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el tercer video del Proyecto de nuestra agenda telefónica, pero el número 80 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Calendario en UserForm

Para poder insertar la fecha de nacimiento haremos uso del Calendario de Andrés Rojas Moncada, del cual ya hicimos una revisión en este mismo sitio.

Como vimos anteriormente, para usar el control de calendario de Office lo debemos instalar, pero si tenemos Excel de 64 bits entonces no hay manera de poder usarlo. Ante este inconveniente, mi amigo Andrés Rojas Moncada del canal Excel hecho fácil desarrolló un genial control de calendario que fácilmente podemos adecuar a nuestros desarrollos, sin necesidad e instalar nada.

  • En este video Andrés nos explica el funcionamiento de su calendario.

  • Descarga el control de calendario desde esta página: http://www.excelhechofacil.com/p/calendario.html.

  • Abrimos el archivo cCalendario.xlsm.

  • Ejecutar el editor de macros vba con [Alt] + [F11].

  • Ahora vamos a mover el módulo llamado ModuloCalendario y el formulario llamado frmCalendario a nuestro archivo donde queremos utilizar el calendario de Andrés.

Figura 1. Movemos los archivos frmCalendario y ModuloCalendario de un proyecto a otro.

Ahora podemos cerrar el archivo cCalendario.xlsm. Los elementos que hemos movido a nuestro archivo debemos de hacerles unas pocas modificaciones para que podamos mandar llamar al calendario.

Damos doble clic en el botón que insertamos, el que se ve en la Figura 1 con la imagen del calendario, y pegamos el siguiente código:

Private Sub CommandButton3_Click()
frmCalendario.Show
End Sub
  • Ahora nos vamos al editor de macros vba y damos doble clic sobre el Módulo ModuloCalendario.

  • Ubica una macro que se llama RecibeLaFecha y reemplaza la macro con el siguiente código:

Public Sub RecibeLaFecha(Dia As Long, Mes As Long, Ano As Long)
    Dim FechaRecibida As Date
    FechaRecibida = VBA.DateSerial((VBA.CInt(Ano)), (VBA.CInt(Mes)), (VBA.CInt(Dia)))
    
    'DIRECCIONE LA FECHA AL CONTROL O CELDA QUE REQUIERA
    'MsgBox FechaRecibida
    UserForm1.TextBox5.Value = FechaRecibida
End Sub

Con los cambios anteriores, al dar clic en el botón, se mostrará el Calendario. Damos doble clic sobre cualquier número y la fecha se insertará en el TexBox5, de la fecha de nacimiento.

Figura 2. Calendario de Andrés Rojas Moncada del canal Excel Hecho Fácil.

Permitir sólo número o texto en Cuadros de texto

Ahora toca usar un par de funciones que tenemos en este mismo sitio, las cuales son SoloNumero y SoloTexto, que como sus nombres lo indican, van a restringir TextBoxes para que acepten o sólo número o sólo texto.

En este link, vamos a copiar las dos funciones y las pegamos en el Módulo1 de nuestro proyecto.

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo
Function SoloTexto(Texto As Variant)
'
    Dim Caracter As Variant
    Dim Largo As String
    Dim i As Integer
    On Error Resume Next
    Largo = Len(Texto)
    '
    For i = 1 To Largo
        Caracter = CInt(Mid(Texto, i, 1))
        '
        If Caracter <> "" Then
            If Not Application.WorksheetFunction.IsText(Caracter) Then
                Texto = Replace(Texto, Caracter, "")
                SoloTexto = Texto
            Else
            End If
        End If
        '
    Next i
    '
    SoloTexto = Texto
    On Error GoTo 0
    '
End Function
'
Function SoloNumero(Texto As Variant)
'
    Dim Caracter As Variant
    Dim Largo As Integer
    Dim i As Integer
    On Error Resume Next
    Largo = Len(Texto)
    '
    For i = 1 To Largo
        Caracter = Mid(CStr(Texto), i, 1)
        '
        If Caracter <> "" Then
            If Caracter < Chr(48) Or Caracter > Chr(57) Then
                Texto = Replace(Texto, Caracter, "")
                SoloNumero = Texto
            Else
            End If

        End If
        '
    Next i
    '
    SoloNumero = Texto
    On Error GoTo 0
    '
End Function

La ventaja de usar funciones en Excel y VBA, es que las podemos reutilizar las veces que deseemos sin necesidad de repetir todo el código cada vez que necesitemos usarlas en algún Cuadro de texto.

Usamos el siguiente código para mandar llamar las funciones y permitir sólo texto en los campos de nombre, y sólo número en los campos de teléfono y CP.

Private Sub TextBox1_Change()
Me.TextBox1.Value = SoloTexto(Me.TextBox1.Value)
End Sub

Private Sub TextBox6_Change()
Me.TextBox6.Value = SoloNumero(Me.TextBox6.Value)
End Sub

Descarga el archivo de ejemplo

080 – Proyecto Agenda 03 -Insertar calendario, validar texto y números – EXCELeINFO.xlsm

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.


Nuevos iconos, imágenes, personas recortadas y stickers en Office 365 (Microsoft 365)

$
0
0

Microsoft ha liberado nuevos elementos gráficos para la suite de Office 365, la cual pronto cambiará de nombre de a Microsoft 365. Estos nuevos elementos gráficos están disponibles para las aplicaciones más usadas en oficina, las cuales son Excel, Word y PowerPoint.

Los elementos que se ha liberado, los podemos encontrar en la sección Insertar > Ilustraciones > Iconos. Vamos a encontrar Imágenes de archivo, Personas recortadas, Iconos y Adhesivos o stickers.

Ver Video Nuevos elementos gráficos en Office 365

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Imágenes de archivo

Regularmente usamos el buscador de Google para encontrar imágenes o servicios como Unsplash o Pixabay para tener imágenes libres de copyright o Derechos de autor. Ahora, en Office 365 tendremos la opción de descargar muchas imágenes que podemos descargar directamente desde tus aplicaciones favoritas. Al entrar al nuevo panel, veremos que tenemos imágenes por tipo, además de poder buscar por palabras clave.

image

Figura 1. Descargar imágenes dese el stock de Office.

Personas recortadas

Para ser sinceros, me sorprendió al ver esta sección de imágenes PNG. Cuando Microsoft quiere saber qué características puede agregar a sus aplicaciones tiene la plataforma Uservoice para aceptar sugerencias. No sé si esta característica fue sugerida, pero es bienvenida. Tal cual, tenemos imágenes PNG para añadir a nuestros informes o presentaciones.

Imágenes PNG de personas.

Figura 2. Imágenes PNG de personas.

Iconos

Este set de iconos ya estaba disponible en versiones anteriores, solo que el catálogo no estaba tan amplio. A estos iconos les podrás cambiar el color, borde, incluso añadirles efectos de sombra o iluminado.

Set de iconos para usar en Office 365.

Figura 3. Set de iconos para usar en Office 365.

Adhesivos o Stickers

Y claro, Office no podía quedarse atrás con el tema de los stickers. Aunque no se me ocurre un uso profesional a estas imágenes, recordemos que están disponibles para Excel, Word y PowerPoint, por lo que se pueden adecuar al tema que desees.

Stickers en Office 365 (Microsoft 365).

Figura 4. Stickers en Office 365 (Microsoft 365).

Imágenes para un Dashboard en Excel

Para el siguiente ejemplo usamos una imagen de fondo, una imagen PNG de una señorita, además de icono con efectos. Este ejemplo llamativo e innovador lo aplicamos para mostrar un Gráfico dinámico que se modifica mediante la selección de filtros en un Segmentador de datos o Slice. Mira el video para ver cómo lo armamos.

Dashboard en Excel usando elementos gráficos de Office.

Figura 5. Dashboard en Excel usando elementos gráficos de Office.

Descarga el archivo de ejemplo

Iconos, stickers, imágenes, personas recortadas- EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

HABLANDO DE POWER BI ft. Víctor Román Castro de METN

$
0
0

En estos días se habla mucho sobre innovar y salir de la zona de comodidad, es por lo que inauguramos una nueva sección en este sitio y mi canal de Youtube, donde entrevistaremos a expertos en diversos temas relacionados con Excel, Inteligencia de negocios, curos y emprendimiento.

En este video tutorial platicamos con Vìctor Román Castro, dueño del canal Microsoft Excel a todo nivel, acerca de Power BI y su papel en la Inteligencia de negocios.

Ver Video HABLANDO DE POWER BI ft. Víctor Román Castro de METN

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

La entrevista es una plática entre amigos, donde compartimos puntos de vista con respecto a Power BI, su papel en la Inteligencia de negocios, si es un reemplazo de Excel, las diferentes versiones, entre otros temas.

Curso Macros en Excel – Cap. 81 – Agenda telefónica desde cero PARTE 4

$
0
0

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica desde cero usando macros y VBA en Excel. En esta cuarta entrega vamos a programar el botón Guardar para dar de alta los valores en nuestra hoja Base. Además de cambiarle el nombre a todos los controles, con el objetivo de usar un Ciclo FOR NEXT para optimizar el alta de valores.

Ver video Capítulo 81 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el tercer video del Proyecto de nuestra agenda telefónica, pero el número 80 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Etiqueta Ruta imagen

Al elegir una nueva imagen, vamos a reflejar la ruta completa en una nueva Etiqueta (Label), para luego darla de alta en la hoja BASE.

Figura 1. Etiqueta para reflejar la ruta de la imagen elegida.

Cambio de nombre a Controles

Con el fin de optimizar nuestro código VBA, tenemos que cambiarle el nombre a los Controles del Formulario. Haremos el cambio de nombre a los TextBox y Combobox, y todos tendrán el prefijo “Valor”. Tenemos 16 controles que irán de “valor1” a “valor16”.

Al tener todos los controles un prefijo estático, podremos usar el Ciclo For Next para recorrer todos y así sea más óptimo guardar los valores en la hoja BASE.

Figura 2. Cambio de nombre a los Controles para optimizar la carga de valores con FOR NEXT.

Botón GUARDAR

Una vez que hicimos los cambios anteriores, ya estamos listos para programar el botón GUARDAR, el cual nos servirá para dar de alta los valores capturados en la hoja BASE. Fíjate muy bien cómo trabajamos el tema del ID, ya que ese valor los ayudará cuando realicemos el Formulario de BUSCAR. También toma nota de cómo usamos el Ciclo For Next para recorrer todos los controles del Formulario usando la Colección Controls y tomando el prefijo “valor”.

SNAGHTMLe2fb27a

Figura 3. Alta de valores en hoja BASE programando el botón GUARDAR.

Código VBA del botón GUARDAR

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub CommandButton1_Click()
Dim HojaBase As Worksheet
Dim Rango As Range
Dim NuevaFila As Integer
Dim NuevoID As Integer
Dim i As Integer

Set HojaBase = ThisWorkbook.Sheets("Base")
Set Rango = HojaBase.Range("A1").CurrentRegion
NuevaFila = Rango.Rows.Count + 1

If Rango.Rows.Count = 1 Then
    NuevoID = 1
Else
    NuevoID = HojaBase.Cells(NuevaFila - 1, 1) + 1
End If

With HojaBase
    .Cells(NuevaFila, 1).Value = NuevoID
    For i = 1 To 16
        .Cells(NuevaFila, i + 1).Value = Me.Controls("valor" & i).Value
    Next i
    .Cells(NuevaFila, 18).Value = Me.LabelRuta.Caption
End With

End Sub

Descargar el archivo de ejemplo

081 – Proyecto Agenda 04 – Programando botón Alta – Guardar – EXCELeINFO.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

SOLUCIONADO: No puedo ejecutar macros en Excel – Parte quitada: vbaProject.bin

$
0
0

En varias ocasiones me han preguntado sobre un error que sale al momento de ejecutar archivos de Excel con macros. Este error sucede sobre todo si usas Excel 2007, 2010 o 2013, ya que el proceso de instalación en esas versiones te permitía elegir qué características o aplicaciones de Office deseabas instalar. El error es Parte quitada: Parte /xl/vbProject.bin (Visual Basic para Aplicaciones (VBA)).

En Excel 2016, 2019 y Office 365 (Microsoft 365) este proceso mejoró, ya que desde el momento que ejecutas el instalador, se instalan todas las aplicaciones de un solo paso.

Ver Video Errror SOLUCIONADO: no puedo ejecutar macros en Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Cómo solucionarlo

En el video doy una explicación más amplia sobre el error y cómo solucionarlo, pero prácticamente es necesario elegir la característica de Visual Basic para Aplicaciones al momento de instalar Office, que como les digo, sólo es aplicable a Excel 2013 y anteriores.

Instalar VBA para poder ejecutar macros en Excel y Office.

Figura 1. Instalar VBA para poder ejecutar macros en Excel y Office.

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

II Jornada Internacional Excel y Power BI Lovers 2020

$
0
0

Jornada Internacional con excelentes ponencias sobre Excel, Macros, Power Query, Power BI y Tableau. Jornada intensa de 07 horas de duración y lo más importante, con la participación de un impresionante grupo de expositores.

Esta jornada fue organizada por Miguel Rojas, CEO de Temixa.

Cómo ver la jornada completa

Para ver el video de la jornada completa, debes entrar a este link. Para no tener que realizar ningún pago, puedes utilizar el bono JO7033 y obtener el 100% de descuento.

Ver Video Presentación de Sergio Alejandro Campos

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

PONENCIAS:

Alfonso Lenis
https://www.linkedin.com/in/alfonsolenis
Tema: Script Lab para desarrollo multiplataforma en Excel
Microsoft MVP
País: Colombia

John Jairo Vergara Dominguez
https://www.linkedin.com/in/johnjairovergarad
Tema: Uso avanzado función BUSCAR
Capacitador / Docente independiente
País: Colombia

Yolanda Cuesta
https://www.linkedin.com/in/yolandacuesta
Tema: Complementos de Office obtenerlos en Excel
Microsoft MVP
País: España

Paul Plascencia
https://www.linkedin.com/in/paul-plasencia-76441494
Tema: Reporte de Covid-19 Perú frente al mundo
Analista de Inteligencia Comercial
País: Perú

Sergio Alejandro Campos
https://www.linkedin.com/in/sergioacamposh
Tema: Enviar emails desde Excel usando macros
Microsoft MVP
País: México

Didier Atehortúa
https://www.linkedin.com/…/didier-atehorúa-morales-83855515b
Tema: Power Query – Transformacion con Inteligencia Artificial
Coautor del Libro Inteligencia de Negocios con Excel y Power BI
País: Colombia

Daniel Senisse Sáenz
https://www.linkedin.com/in/daniel-senisse-a9740478
Tema: Tableau – Construyendo una cultura de autoservicio
Consultor Senior BI
País: Perú

Víctor Román Castro
https://www.linkedin.com/in/victorroman1605
Tema: Modelado de datos con Power Query
Microsoft MVP
País: México

Claudio Trombini
https://www.linkedin.com/in/claudio-trombini-91757b149
Tema: Mapear Datos de Manera Profesional en Power BI
Data Intelligence Senior Consultant @ JAKALA
País: Italia

Miguel Caballero Sierra
https://www.linkedin.com/in/miguel-caballero-sierra-7985608a
Tema: Análisis de Datos efectivo con Power BI
Formador en ExcelFreeBlog.Com y Escuela de Inteligencia de Negocios S.A.S
País: Colombia

Iver Ocanto Balza
https://www.linkedin.com/in/iver-ocanto-balza
Tema: Evalúa tu mejor inversión a través de análisis de hipótesis
Microsoft Office Specialist Excel
País: Venezuela

Julio C. Rendón
https://www.linkedin.com/in/juliocrendón
Tema: Informes con Tablas Dinámicas
Microsoft MVP
País: Colombia

Carlos Barboza
https://www.linkedin.com/in/cabc
Tema: Power BI en tiempos de COVID-19
Desarrollador en Excel & Power BI
País: Perú

Miguel Rojas
https://www.linkedin.com/in/miguelrojasa
Tema: Integración desde Google Drive y One Drive con Power BI – El Modelo
CEO at Temixa & Founder Group Excel Total
País: Perú

Curso Macros en Excel – Cap. 82 – Agenda telefónica desde cero PARTE 5

$
0
0

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica desde cero usando macros y VBA en Excel. En esta quinta entrega haremos algunas modificaciones al código previamente escrito, además de poner una validación a los números telefónicos para que se acepten solo valores a 10 dígitos. Y lo más importante, vamos a escribir una macro para validar los campos vacíos del Formulario Alta, antes de guardar los valores en la hoja BASE.

Ver video Capítulo 81 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el quinto video del Proyecto de nuestra agenda telefónica, pero el número 82 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Números telefónicos a 10 dígitos

En videos anteriores vimos cómo configurar los Cuadros de texto (TextBox) de teléfono celular y teléfono e contacto, para que solo acepten valores numéricos. Ahora lo que haremos es que sólo se acepten números con longitud de 10 dígitos y no permita avanzar hasta que se cumpla con esa condición.

Permitir sólo números a 10 dígitos.

Figura 1. Permitir sólo números a 10 dígitos.

Evento Exit para validar longitud de teléfono

Haremos uso del Evento Exit en los controles de teléfono celular (valor7) teléfono particular (valor8), para que mediante el método LEN, se evalúe si los números cumplen con la longitud de 10. En caso no cumplir esa condición no podremos avanzar, y para eso usamos Cancel = true.

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub valor7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If VBA.Len(Me.valor7.Value) <> 10 Then
    MsgBox "El número debe estar a 10 dígitos", vbExclamation
    Cancel = True
Else
'nada
End If
End Sub

Private Sub valor8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If VBA.Len(Me.valor8.Value) <> 10 Then
    MsgBox "El número debe estar a 10 dígitos", vbExclamation
    Cancel = True
Else
'nada
End If
End Sub

Validar campos vacíos antes de GUARDAR

Recordemos que todos lo controles del Formulario tiene el nombre de “valor1” hasta “valor16”, para que mediante el ciclo FOR NEXT podamos recorrer todos los controles con poco código VBA en Excel. En esta ocasión vamos a escribir un Procedimiento que se llamará ValidarVacios, el cual nos ayudará a recorrer todos los controles del Formulario y cuando encuentre vacíos, les asignará un color naranja al fondo, para identificar que el campo está vacío. Hasta que no hay controles vacíos, ya se podrán guardar los datos.

Validar controles vacíos antes de GUARDAR Formulario de Excel VBA.

Figura 2. Validar controles vacíos antes de GUARDAR Formulario de Excel VBA.

Código VBA para validar controles vacíos

El siguiente Procedimiento debe ir alojado en el Módulo1, para luego ser llamado desde el botón GUADAR.

Option Explicit

Public ControlesVacios

Sub ValidarVacios()
'Validamos controles vacíos
Dim FormActivo As UserForm
'ControlesVacios es Public
Dim i As Integer

Set FormActivo = VBA.UserForms(0)
ControlesVacios = 0

With FormActivo
    For i = 1 To 16
        If .CheckBox1.Value = True And (i = 9 Or i = 10) Then
            'nada
            .Controls("valor" & i).BackColor = VBA.vbWhite
        Else
            If .Controls("valor" & i).Value = "" Then
                .Controls("valor" & i).BackColor = VBA.RGB(237, 125, 49)
                ControlesVacios = ControlesVacios + 1
            Else
                .Controls("valor" & i).BackColor = VBA.vbWhite
            End If
        End If
    Next i
End With

'MsgBox ControlesVacios

End Sub

También el botón GUARDAR recibe una modificación, ya que debe llamar a la macro ValidarVacios.

Private Sub CommandButton1_Click()
Dim HojaBase As Worksheet
Dim Rango As Range
Dim NuevaFila As Integer
Dim NuevoID As Integer
Dim i As Integer

Set HojaBase = ThisWorkbook.Sheets("Base")
Set Rango = HojaBase.Range("A1").CurrentRegion
NuevaFila = Rango.Rows.Count + 1

''''''''''''''''''''''''
'Validar campos vacíos
Call ValidarVacios

If ControlesVacios > 0 Then
    MsgBox "Hay " & ControlesVacios & " campos vacíos. No se puede continuar", vbExclamation
    Me.valor1.SetFocus
Else
        
    If Rango.Rows.Count = 1 Then
        NuevoID = 1
    Else
        NuevoID = HojaBase.Cells(NuevaFila - 1, 1) + 1
    End If
    
    With HojaBase
        .Cells(NuevaFila, 1).Value = NuevoID
        For i = 1 To 16
            .Cells(NuevaFila, i + 1).Value = Me.Controls("valor" & i).Value
        Next i
        .Cells(NuevaFila, 18).Value = Me.LabelRuta.Caption
    End With

MsgBox "Alta exitosa", vbInformation
Unload Me
End If
End Sub

Descargar el archivo de ejemplo

082 – Proyecto Agenda 05 – Validar campos vacíos antes de guardar – EXCELeINFO

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

Macro para validar campos vacíos de cualquier Formulario en Excel VBA

$
0
0

<<CURSO DE MACROS EN YOUTUBE>>

Durante el desarrollo del CURSO DE MACROS EN EXCEL se me van ocurriendo ideas que no necesariamente son parte del curso, aunque sí las incluyo en la lista de reproducción. Un claro ejemplo es el Procedimiento o Macro que vengo a regalarles.

Al trabajar con Formularios VBA en Excel, se me ocurrió la idea de tener una macro que validara todos los Controles o campos vacíos un Formulario. Pero quise ir más allá. Qué tal si esa macro funcionara para cualquier UserForm. Beneficio? No tener que escribir una macro para cada Formulario, sino que todos manden llamar a un mismo procedimiento que se adecúe a TODOS los CONTROLES y así ahorramos tiempo escribiendo código y SOMOS MÁS PRODUCTIVOS.

Ver Video UNA MACRO para validar campos vacíos de TODOS los Formularios

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Lo que hacemos todos

En la mayoría de los desarrollos en Excel con Formularios, cada uno de ellos tiene código VBA para validar los campos vacíos antes de continuar con el siguiente paso, que regularmente es GUARDAR la información en alguna Tabla.

Hasta hoy, lo que yo hacía es ponerle el mismo nombre a los Controles, comenzando con “valor”, añadiéndoles un consecutivo, para luego trabajar con sus valores mediante un ciclo FOR NEXT.

La desventaja de este método es que tengo que escribir esa macro en cada Formulario, y aunque esta manera de trabajar ya hace el trabajo más ágil, todavía hay maneras de hacerlo mejor.

Validar Controles vacíos en un Formulario (Userform) en Excel.

Figura 1. Validar Controles vacíos en un Formulario (Userform) en Excel.

Siendo más productivo con una macro

La solución a no tener que escribir macros en cada Formulario, es que tengas una sola macro y ésta sea llamada por cualquier Formulario para validar Cuadros de texto (TextBox) o Cuadros combinados (ComboBox) vacíos. A continuación de enlisto los beneficios de éste maravilloso código VBA:

  • Se adecúa a cualquier Formulario, sin importar la cantidad de Controles.
  • No permite continuar hasta que todos los campos estén llenos.
  • Se colorea en Naranja el fondo (BackColor) cada control que esté vacío.
  • Te ahorras tiempo al no escribir una macro por Formulario.

Si después de lo anterior no descargas el archivo de ejemplo y guardas muy bien esa macro para luego usarlas en todos tus Formularios, en serio, no sé si realmente quieras ser más productivo en Excel y macros.

Ahorra tiempo en tus desarrollos usando una macro para todos tus Formularios.

Figura 2. Ahorra tiempo en tus desarrollos usando una macro para todos tus Formularios.

Código VBA fantástico de la macro

El siguiente código deberá ir dentro un Módulo normal. Ten en cuenta que debemos declarar la variable ControlesVacios como Pública.

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh

Option Explicit
Option Private Module
Public ControlesVacios

Sub ValidarVacios()
Dim FormActivo As UserForm
Dim miControl As Control

Set FormActivo = VBA.UserForms(0)
ControlesVacios = Empty

For Each miControl In FormActivo.Controls
    If TypeOf miControl Is MSForms.TextBox Then
        If miControl.Value = "" Then
            ControlesVacios = ControlesVacios + 1
            miControl.BackColor = VBA.RGB(237, 125, 49)
        Else
            miControl.BackColor = VBA.vbWhite
        End If
    Else
        If TypeOf miControl Is MSForms.ComboBox Then
            If miControl.Value = "" Then
                ControlesVacios = ControlesVacios + 1
                miControl.BackColor = VBA.RGB(237, 125, 49)
            Else
                miControl.BackColor = VBA.vbWhite
            End If
        Else
        'Nada
        End If
    End If
Next miControl
End Sub

Cuando ya tengas tu macro guardara, el siguiente código deberá ir en cada Formulario donde quieras que se validen los campos / controles vacíos.

Private Sub CommandButton1_Click()
'Llamamos al Procedimiento para validar campos vacíos
Call ValidarVacios

If ControlesVacios > 0 Then
    MsgBox "Hay " & ControlesVacios & " controles vacíos. No se puede continuar.", vbExclamation
Else
    MsgBox "Continuar...", vbInformation
    'Tu macro
End If

End Sub

Descargar el archivo de ejemplo

MACRO para validar campos vacíos en cualquier Formulario de Excel VBA – EXCELeINFO.zip

<<CURSO DE MACROS EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.


HABLANDO DE CÓMO SER ANALISTA DE DATOS ft. Miguel Rojas de Temixa

Aprende Web Scraping con Excel y VBA

$
0
0

Varias personas me han preguntado sobre el tema de Web Scraping, una técnica usada para extraer información desde páginas Web. Para esta técnica se usan lenguajes de programación como Python, pero en esta ocasión te mostraré cómo puedes aprenderlo usando nuestro lenguaje favorito VBA (Visual Basic para aplicaciones).

Desde la plataforma TuYoYExcel.com tenemos la siguiente oferta para comenzar a capacitarnos y prepararnos para el futuro de la automatización en Office. Un curso fenomenal y el primero sobre esta temática.

OFERTA SUSCRIPTORES DE EXCELeINFO – CURSO WEB SCRAPING CON EXCEL Y VBA

✔ Plataforma online TuYoyExcel.com
✔ Un mes GRATIS: usando el código SAC
✔ Oferta válida hasta el 17-may-2020.
✔ Cancelación en cualquier momento.

Ver Video Introducción a Web Scraping desde Excel y VBA

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Qué es web scraping

  • Web Scraping es la técnica utilizada para extraer datos de una Web.
  • Se puede extraer tanto texto, emails o links como descargar ficheros o imágenes.
  • También se puede extraer información adicional que no está visible en la Web.
  • Esta técnica no solo nos permite extraer información de una web, sino que también nos permite subir información a una web… subir ficheros, publicar Tweets, crear carpetas en OneDrive o subir archivos a OneDrive sin tenerlo sincronizado en el equipo.
  • También se puede interactuar (a través de solicitudes HTTP) con las API´s que nos dicen como acceder a información de grandes empresas como Facebook, Twitter, YouTube, Google, etc. También se puede programar una autenticación OAuth 2.0, etc.

QUÉ PODEMOS HACER CON WEB SCRAPING

  • Los emails de YellowPages (páginas amarillas) que no aparecen en la Web.
  • Cotizaciones Intradía de Yahoo Finance que no aparecen en la Web.
  • Interactuar con OneDrive sin estar sincronizado en tu equipo, poderlo hacer desde cualquier laptop.
  • Acceder a datos de YouTube (likes, suscriptores, comentarios), Google Maps, Publicar Tweets… todo con VBA.
  • Descargar con VBA ficheros e imágenes de Webs.
  • Acceder a ficheros internos de consulta que generan las webs (JSON-XML).

Con VBA hay varias formas de hacer Web Scraping:

  • La mayoría de los usuarios empiezan a practicar Web Scraping con el objeto IE Explorer que lo que hace es simular una navegación por una web en concreto. Este método es demasiado lento y poco fiable, no recomendable en el 95% de los casos.
  • El objeto que nosotros utilizamos accede directamente al servidor donde está alojada la web y de ahí extraemos la información, lo cual multiplica la rapidez y eficacia por 100.

VEAMOS UNA PRÁCTICA

  • Extrae datos de negocios de YellowPages.com.
  • Criterios NEGOCIO y CIUDAD.
  • La macro se va recorriendo las distintas paginaciones que han devuelto todos los resultados de la búsqueda (para no hacer el proceso muy largo solo saca los datos de las 3 primeras páginas de resultados).
  • Va entrando en cada negocio y extrae varios datos, entre ellos los emails que no están visibles en la Web.

Tenemos un archivo de Excel donde haremos la búsqueda por palabra o negocio y por ciudad o ubicación, usando una macro con VBA.

Web Scraping desde Excel y VBA.

Figura 1. Web Scraping desde Excel y VBA.

La macro hará la búsqueda y nos devolverá la información a la hoja resultado. Ahora veamos cómo sería la búsqueda manual desde la página yellowpages.com. La ventana de hacer la consulta desde una macro usando Web Scraping es que podemos extraer información de una página, incluso información que no está visible.

Haciendo búsqueda manual desde una página Web.

Figura 2. Haciendo búsqueda manual desde una página Web.

Al hacer la consulta con una macro, se devolverá el resultado de la Figura 3.

Devolver datos de páginas Web a Excel usando Web Scraping con VBA.

Figura 3. Devolver datos de páginas Web a Excel usando Web Scraping con VBA.

OFERTA SUSCRIPTORES DE EXCELeINFO – CURSO WEB SCRAPING CON EXCEL Y VBA

✔ Plataforma online TuYoyExcel.com
✔ Un mes GRATIS: usando el código SAC
✔ Oferta válida hasta el 17-may-2020.
✔ Cancelación en cualquier momento.

Descarga el archivo de ejemplo

Web Scraping – 40- Extrayendo Información YellowPages.com.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

Vista tarjetas (cards view) en la app de Excel para iPhone y teléfonos Android

$
0
0

Trabajar con Tablas en Excel es muy cómodo, ya que te permiten elegir varios diseño, se autoincrementan, además de que insertar una fórmula, formato condicional o validación de datos y cada vez que añades un valor, las anteriores características se aplican al los nuevos valores.

Las tablas son muy útiles, pero cuando éstas se usan en un teléfono celular (smartphone), se vuelve una tarea un tanto tediosa. Es aquí donde Microsoft ha metido un golazo con la Vista Tarjetas o Smart Cards.

La Vista tarjetas, te permite un mini sistema para administrar los datos de tus tablas en una vista de tipo responsiva o Web responsive, podemos hacer lo siguiente:

  • Ver la lista elementos.
  • Editar.
  • Eliminar.
  • Buscar.
  • Fórmulas, Validación de datos y Formato condicionales se aplican se integran de manera maravillosa.

Ver Video Vista tarjetas en app de Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Cómo uso la Vista tarjetas (cards view)

El primer requisito es tener la App de Excel o de Office actualizadas. Puedes descargar la app en la App store de iOS o en la Google play de Android. Además de estar sincronizada con una cuenta de Outlook, Hotmail o Live. Además de asegurarte de lo siguiente:

  • Tus datos deben estar en formato Tabla.
  • Los archivos deben estar almacenados en OneDrive.
  • Opcionalmente puedes tener la aplicación de OneDrive en tu PC o laptop.

Usar la Vista tarjetas en la app de Excel para tu celular es tan sencillo como entrar a tu celular, abrir la aplicación de Excel o de Office, abrir tu archivo con Tablas y presionar el nuevo ícono de Cards view.

Cards view en la App de Excel para iOS y Android

Figura 1. Cards view en la App de Excel para iOS y Android.

En la Vista tarjetas tenemos dos vistas, tarjetas y vista detalladas. La primera vista nos permite ver los elementos con 4 filas. Al elegir un elemento, veremos la vista detallada con todos lo campos del elemento.

Descarga el archivo de ejemplo

Vista tarjetas en Excel mobile – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

HABLANDO DE INFORMES GERENCIALES ft. Julio C Rendón de Excel Aprende

Curso Macros en Excel – Cap. 83 – Agenda telefónica desde cero PARTE 6

$
0
0

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica desde cero usando macros y VBA en Excel. En esta sexta entrega vamos a diseñar el Formulario de Búsqueda. Decidiremos qué Control ActiveX vamos a utilizar para mostrar los elementos que coincidan con el texto de búsqueda. Ya hemos visto en este curso los controles ListBox y ListView. ¿Cuál elegirías?

Ver video Capítulo 83 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el sexto video del Proyecto de nuestra agenda telefónica, pero el número 83 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

ListBox o ListView

Como les comenté anteriormente, ya hemos tratado en este curso ambos controles, por lo que cualquiera de los dos nos trae beneficios para mostrar los valores coincidentes. No me detendré en ver las características de ambos controles, porque quisiera que vieras los video correspondientes y tú decidas cuál usar.

Formulario de búsqueda en Excel con VBA y macros

Para desarrollar el Formulario de búsqueda en nuestro Proyecto Agenda en Microsoft Excel decidí usar el Control ListBox, y usar controles TextBox (cuadros de texto) para mostrar los encabezados de los elementos que coincidan con la búsqueda.

La razón por la que no usamos el control ListView, es porque varias personas experimentaron problemas a activar este control. Esto se debe a que, por temas de compatibilidad, éste control se sigue conservando y hay que hacer una serie de pasos que ya expliqué en su momento, pero infortunadamente no quedan siempre a la primera.

Formulario para buscar elementos de la agenda en Microsoft Excel usando VBA y macros

Figura 1. Formulario para buscar elementos de la agenda en Microsoft Excel usando VBA y macros.

Descarga el archivo de ejemplo

083 – Proyecto Agenda 06 – Diseñar Formulario de Búsqueda – EXCELeINFO.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

HABLANDO DE PROGRAMACIÓN EN EXCEL ft. Otto J González de Excel y más

Curso Macros en Excel – Cap. 84 – Agenda telefónica desde cero PARTE 7

$
0
0

<<CURSO COMPLETO MACROS EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica en Excel desde cero usando macros y VBA en Excel. En esta séptima entrega vamos a programar el botón BUSCAR para que los elementos que coincidan con la búsqueda, se añadan al control ActiveX ListBox.

Ver video Capítulo 84 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el séptimo video del Proyecto de nuestra agenda telefónica, pero el número 84 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Añadir columnas al ListBox (cuadro de lista) en Excel VBA

Ya decidimos que usaremos 6 columnas en el ListBox para mostrar los elementos que coincidan con el texto buscado. Mediante código deberemos indicarle al ListBox que deseamos 6 columnas, además de indicarle el tamaño o Width a cada una de ellas.

Ingresamos el siguente código VBA en el evento Initialize del UserForm2 (formulario).

Private Sub UserForm_Initialize()

Me.ListBox1.ColumnCount = 6
Me.ListBox1.ColumnWidths = "102;84;84;96;96;120"

End Sub

Búsqueda de elementos por texto

El TextBox1 ahora se llamará txtBuscar y nos servirá para ingresar un texto el cual se validará contra cada una de las filas del rango de la hoja Base, y los elementos coincidentes se añaden a modo de item en el ListBox.

Filtrar por columna Nombre

En este capítulo veremos cómo filtrar por la columna Nombre, que es la columna 2 de la hoja Base. En el código haremos uso de la variable Columna para indicarle que esa será la columna por la que compararemos el valor del txtBuscar.

Figura 1. Formulario para BUSCAR en proyecto Agenda con Excel y VBA

En el siguiente video veremos cómo buscar con comodines sin importar MAYÚSCULAS o minúsculas.

Código VBA del Formulario BUSCAR (Curso de VBA y macros en Excel)

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub CommandButton1_Click()
Dim HojaBase As Worksheet
Dim Rango As Range
Dim Columna As Integer
Dim i As Integer
Dim Filas As Integer

On Error GoTo ManejadorErrores

Set HojaBase = ThisWorkbook.Sheets("Base")
Set Rango = HojaBase.Range("A1").CurrentRegion

If Me.txtBuscar.Value = "" Then Exit Sub
Me.ListBox1.Clear

Columna = 2
Filas = Rango.Rows.Count

For i = 2 To Filas
    If HojaBase.Cells(i, Columna).Value = Me.txtBuscar.Value Then
        Me.ListBox1.AddItem HojaBase.Cells(i, 2).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = HojaBase.Cells(i, 3).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = HojaBase.Cells(i, 4).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = HojaBase.Cells(i, 8).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = HojaBase.Cells(i, 9).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = HojaBase.Cells(i, 6).Value
    Else
    End If
Next i
Exit Sub

ManejadorErrores:
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "EXCELeINFO"
End Sub

Descarga el archivo de ejemplo

084 – Proyecto Agenda 07 – Programando botón BUSCAR – EXCELeINFO.zip

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.


Fórmulas desde VBA vs Ciclos en VBA ¿Cuál es más veloz en Excel?

$
0
0

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

En ocasiones, cuando tenemos que resolver una situación nos vemos en la difícil situación de elegir entre un procedimiento u otro. Es importante estar bien capacitados en Excel VBA y macros para tomar la mejor decisión.

En este video te mostraré dos maneras de correr macros cuando la situación implica aplicar fórmulas a un rango extenso de celdas. La función que debemos usar es BUSCARV, además de tener que aplicarla a un rango de 300 mil filas.

Ver Video Fórmulas vs Ciclos ¿Cuál es más veloz en Excel?

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

1er round. Aplicar la función BUSCARV con Ciclo For Each Next

Como les dije anteriormente, tenemos un rango de 300 mil filas, a los que deseamos aplicar la función BUSCARV para devolver el nombre de la Sucursal con base al ID de la Sucursal. Usamos el ciclo For Each para recorrer todas las celdas, aplicándoles la función VLOOKUP de la clase WorksheetFunction.

La ventaja de usar funciones de hoja de cálculo desde VBA, es que el valor resultante de usar esas funciones, se puede devolver directamente a celdas o guardar los valores en variables.

Seleccionamos el rango D2:D300000 y aplicamos la primera macro. En nuestras pruebas, la ejecución de la macro duró 27 segundos.

Figura 1. Aplicar función BUSCARV en Excel usando ciclo For Each Next.

Código VBA de la macro

La siguiente macro se llama BUSCARV1 y nos sirve para aplicar la función VLOOKUP con ciclos en Excel.

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Sub BUSCARV1()
Dim TiempoInicial As Double
Dim Segundos As Double
Dim Celda As Range

TiempoInicial = VBA.Timer

For Each Celda In Selection

    Celda.Value = Application.WorksheetFunction.VLookup(Celda.Offset(0, -2), Sheets("Hoja2").Range("A2:B101"), 2)

Next Celda

Segundos = Round(VBA.Timer - TiempoInicial, 2)
MsgBox "Segundos: " & Segundos & vbInformation

End Sub

2do round. Aplicar la función BUSCARV usando FormulaLocal

Tenemos el mismo escenario, 300 mil filas para aplicarles la función BUSCARV. Solo que en esta ocasión utilizaremos la propiedad FormulaLocal para insertar la fórmula en las celdas. Con este procedimiento podemos insertar una fórmula directamente en un rango de celdas, tal como lo haríamos de manera manual, para luego copiar y pegar valores para tener solo el resultado sin las fórmulas. Todo con VBA y macros.

La ventaja de insertar fórmulas a un rango, es que se aplica todo de una vez, y por supuesto es más rápido que recorrer celda por celda.

En nuestras pruebas, la ejecución de la macro fue de 0.9 segundos.

Figura 2. Insertar la función BUSCARV en celdas y luego copiar y pegar valores.

Código VBA de la macro

Sub BUSCARV2()
Dim TiempoInicial As Double
Dim Segundos As Double
    
TiempoInicial = VBA.Timer
    
Selection.FormulaLocal = "=BUSCARV(B2,Hoja2!$A$2:$B$101,2,0)"

Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
    
Segundos = Round(VBA.Timer - TiempoInicial, 2)
MsgBox "Segundos: " & Segundos & vbInformation
    
End Sub

¿Cuál macro es la ganadora?

Para este caso en particular, la macro ganadora es la segunda, donde insertamos la función BUSCARV en las 300 mil filas. Los ciclos son buenos, pero ahora tienes más herramientas para tomar la decisión correcta.

Descarga el archivo de ejemplo

Formulas en VBA VS ciclos – EXCELeINFO.xlsm

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

TWITTER, YOUTUBE Y ONEDRIVE DESDE EXCEL VBA ft. José Santos de Tú, yo y Excel

$
0
0

En este video platicamos con José Santos, Consultor, desarrollador y formador de Excel y VBA. José es propietario del canal Excel – VBA – Javascript y del sitio tuyoyexcel.com

Ver video Microsoft Graph, REST API’s y OAuth 2.0

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Platicamos sobre Web scraping y cómo usar las API’s de distintos servicios tales como YouTube, Twitter OneDrive, entre otros.

 

OFERTA SUSCRIPTORES DE EXCELeINFO – CURSO Graph, REST API´s y OAuth 2.0 con VBA

✔ Plataforma online TuYoyExcel.com

✔ Un mes GRATIS: usando el código SAC

✔ Oferta válida hasta el 15-jun-2020.

✔ Cancelación en cualquier momento.

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

7 TIPS para ser más productivo en Excel usando sólo el teclado

$
0
0

En este tutorial voy a compartirles varios de mis secretos para ser más productivo en mis tareas en Excel y que me hacen ahorrar tiempo día a día. Les regalará una serie de 7 TIPS que incluyen muchas combinaciones de teclado o atajos de teclado, además de otras maneras de optimizar tiempo en Excel para trabajar con Hojas, Rangos, Filtros, etc.

Spoiler: Varios de estos trucos ameritan que tengas instalado EXCELeINFO add-in.

Ver Video 7 TIPS para que seas más productivo en Excel sin usar el mouse

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Tip 1 – Rellenar valores dummies (aleatorios)

En este truco te mostraré cómo generar valores dummies o inventados, generando números aleatorios. Sigue los siguientes pasos:

  • Selecciona el rango A2:H20.
  • Ingresa la fórmula: =”Valor de la celda ” &ALEATORIO.ENTRE(1,1000).
  • Usa la combinación de teclas Control + Enter.
  • Control  + C para copiar.
  • Usa la tecla Menú para mostrar el menú contextual.
  • Presiona la tecla V para pegar valores.
  • Enter.

Figura 1. Rellenar valores dummies (aleatorios) en Excel.

Figura 2. Tecla Menú para mostrar el menú contextual que sale al dar clic derecho en Excel y Windows.

Tip 2 – Autoajustar tamaño de columnas

En Excel no existe un método abreviado para autoajustar ancho de columnas, por lo que para poder llamar a esta herramienta debemos añadirla a la Barra de herramientas de acceso rápido.

  • Ve a la pestaña Inicio > Formato > Autoajustar ancho de columna.
  • Presiona clic derecho sobre la opción y elije Agregar a la barra de herramientas de acceso rápido.
  • Presiona Alt y verás cómo a los iconos de la barra se les resalta una letra.

Figura 3. Añadir opciones de de Excel a la Barra de herramientas de acceso rápido.

Tip 3 – Seleccionar filas y elegir valor de una lista

Este truco me es muy útil para elegir varias celdas de una vez e introducirles un valor que se encuentre en la misma columna.

  • Elige cualquier celda de la fila F.
  • Tecla de menú (Figura 2).
  • Ingresamos el 100 en filas.
  • Alt + Flecha abajo para elegir un valor.
  • Control + Enter.

Figura 4. Elegir cierta cantidad de filas e ingresar valores en Excel.

Tip 4 – Aplicar filtro a todas las hojas

En otro ejemplo ya vimos el código para Activar o desactivar filtro en toda las hojas, pero en este Tip veremos cómo mandar llamar dicha opción usando sólo el teclado.

Así como en el Tip 2, añadimos esta opción que se encuentra en EXCELeINFO > Aplicar / quitar autofiltros de todas las hojas, a la Barra de herramientas de acceso rápido para mandarla llamarla llamar con la tecla Alt y el número correspondiente que se le asigne.

Figura 5. Aplicar autofiltros a todas las hojas en Excel.

Tip 5 – Aplicar fórmulas en valores filtrados y copiar y pegar valores

En este tutorial ya vimos cómo Copiar y pegar valores en celdas filtradas, pero es tan importante este Tip, que tenía que estar también en este tutorial. Sigue los siguientes pasos:

  • Control + Shift + L para aplicar autofiltros.
  • Alt + flecha abajo para desplegar filtro.
  • Insertar fórmula en celdas filtradas.
  • Control + Enter para que la fórmula se aplique a todas las celdas.
  • Tecla menú > EXCELeINFO > Convertir valor de la celda en su valor calculado.

Tip 6 – Aplicar varias acciones a varias hojas a la vez.

Este Tip nos ayudará a aplicar acciones en todas las hojas seleccionando solo una, es decir, lo que hagamos en una, se replicará en las demás.

  • Elegimos la primer hoja.
  • Presionamos Control + Shift + AvPág para elegir todas las hojas.
  • Eliminamos las dos primeras filas.

Figura 6. Agrupar hojas para replicar acciones en todas a la vez en Excel.

Tip 7 – Moverse a cierta hoja de manera rápida.

Este Tip es muy útil cuando tenemos muchas hojas en un archivo, ya que deseamos que se muestre una lista de hojas y al elegir una de ellas, se active.

Añadiremos la opción de EXCELeINFO > Hojas > Lista de hojas a la Barra de herramientas de acceso rápido y usar la tecla Alt y el número asignado por Excel.

Figura 7. Elegir nombre de hojas de una lista en Excel.

Descarga el archivo de ejemplo

7 tips para ser más productivo en Excel usando el teclado – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

Curso Macros en Excel – Cap. 85 – Agenda telefónica desde cero PARTE 8

$
0
0

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica en Excel desde cero usando macros y VBA en Excel. En esta octava parte vamos a programar de nuevo el botón BUSCAR, pero ahora le vamos a decir que busque valores aproximados, usando el operador LIKE y el comodín asterisco “*”, además de poder búsquedas sin importar si escribimos valores en mayúsculas o minúsculas.

También logramos que vamos a poder buscar en todos los campos de los registros, es decir, cuando ingresemos un valor para buscar, la búsqueda devolverá valores donde el texto coincida con cualquier campo, nombre, domicilio, correo, etc.

Ver video Capítulo 85 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el séptimo video del Proyecto de nuestra agenda telefónica, pero el número 85 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Búsqueda aproximada con el operador LIKE sin distinguir MAYÚSCULAS y minúsculas

Como lo comentamos en el video pasado, ahora modificaremos el código del botón buscar para realizar búsquedas aproximadas usando el operador LIKE, en lugar del operador IGUAL “=”. Además, usando las funciones LCASE o UCASE vamos a poder convertir los textos que se comparan para que la macro no haga distinciones y encuentre registros sin importar cómo los escribimos.

Figura 1. Búsqueda aproximada en UserForm de Excel VBA. No case sensitive.

Prácticamente sólo modificamos una línea del código del botón BUSCAR, la cual fue:

If VBA.LCase(HojaBase.Cells(i, Columna).Value) Like "*" & VBA.LCase(Me.txtBuscar.Value) & "*" Then

Añadir columna a la BASE que contenga todos lo campos concatenados

También como lo planteamos en el video anterior, decidimos que vamos a incluir una nueva columna en la BASE, donde se contengan los valores de todos los TextBoxes del Formulario de ALTA. Para lograrlo, tuvimos que modificar el BOTÓN GUARDAR del Formulario de Alta, específicamente en la sección donde recorremos los 16 TextBoxes y los agregamos a la BASE.

Figura 2. Columna auxiliar donde se guardan todos los valores concatenados en Userform de Excel.

Haremos uso de dos nueva variables (NombreLargo y NombreLargo1) que nos ayudará a almacenar los valores de los TextBoxes y al final queden separados por un guión y el resultado quede en la nueva columna llamada NOMBRE LARGO.

With HojaBase
    .Cells(NuevaFila, 1).Value = NuevoID
    For i = 1 To 16
        .Cells(NuevaFila, i + 1).Value = Me.Controls("valor" & i).Value
        NombreLargo = Me.Controls("valor" & i).Value
        NombreLargo1 = NombreLargo1 & NombreLargo & "-"
    Next i
    .Cells(NuevaFila, 18).Value = Me.LabelRuta.Caption
    .Cells(NuevaFila, 19).Value = NombreLargo1
End With

Descarga el archivo de ejemplo

085 – Proyecto Agenda 08 – BÚSQUEDA aproximada de registros – EXCELeINFO.zip

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

7 ejemplos con BUSCARX y Funciones de matrices dinámicas en Excel

$
0
0

En este video vamos a repasar dos temas importantes de fórmulas y funciones: La nueva función BUSCARX y el nuevo motor de cálculos en Excel con las funciones de matrices dinámicas o Dynamic arrayas.

Ver Video BUSCARX y funciones de MATRICES DINÁMICAS

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Función BUSCARX

A continuación algunas ventajas que traerá.

  • A diferencia de BUSCARV, aquí solo debemos elegir dos columnas, lo cual hace que la función tenga mejor desempeño.
  • Es posible encontrar el último resultado.
  • La coincidencia por defecto es EXACTA, a diferencia que con BUSCARV que debíamos definirle FALSO o VERDADERO.
  • Podemos usar comodines para búsqueda aproximada.
  • BUSCARX ya viene con la mejora de desempeño que tuvo BUSCARV en el 2018.
  • Por fin nos olvidamos de definir las columnas por número, incluso si movemos las columnas o insertamos nuevas, la búsqueda seguirá funcionando.

Ejemplo 1 – BUSCARX en lugar de BUSCARV

En este ejemplo vamos a hacer una búsqueda sencilla, tal cual lo haríamos con BUSCARV. La fórmula usada es:

=BUSCARX(G9,B9:B18,C9:C18)

 

Figura 1. Usando BUSCARX en lugar de BUSCARV.

Ejemplo 2 – Buscar hacia la izquierda

Con BUSCARX es muy sencillo buscar hacia la derecha o hacia la izquierda, ya que basta con que selecciones la matriz_devuelta, ésta puede estar en cualquier dirección. Usamos la siguiente fórmula:

=BUSCARX($G9,$E$9:$E$18,B$9:B$18)

 

Figura 2. Búsqueda hacia la izquierda con BUSCARX.

Ejemplo 3 – Devolver último valor encontrado

BUSCARX nos permitirá devolver el primer valor encontrado de manera predeterminada, pero también le podemos indicar que nos devuelva el último valor encontrado en caso de que el valor buscado esté repetido en la matriz_buscada. Usamos la siguiente fórmula:

 

Figura 3. Devolver el primer o último valor encontrado con BUSCARX.

Ejemplo 4 – BUSCARX para búsqueda horizontal

La ventaja de BUSCARX es que absorbe tanto la capacidad de búsqueda vertical de BUSCARV, como la búsqueda horizontal de BUSCARH. Usaremos al siguiente fórmula:

=BUSCARX(I9,C8:F8,C10:F10)

 

Figura 4. BUSCARX para búsqueda horizontal en Excel.

Funciones de matrices dinámicas

A continuación una serie de cambios que se han hecho al motor intento de cálculos en Excel.

  1. Todas las fórmulas serán tratadas de la misma manera.
  2. Adiós a la combinación Control + Shift + Enter. Ya no debemos preocupamos por usar la anterior combinación en fórmulas matriciales.
  3. Si una fórmula devuelve un valor se reflejará en una sola celda.
  4. Si la fórmula devuelve más de una respuesta, se usará el Rango de desbordamiento para rellenar todos los resultados.

Ejemplo 5 – Funciones ORDERNAR y ORNENAR POR

Con la función ORDENAR vamos a devolver un rango ordenado con base en otro rango, sin necesidad de modificar el rango original. Usamos la siguiente fórmula:

=BUSCARX(I9,C8:F8,C10:F10)

 

Figura 5. Función ORDENAR en Excel.

Con la función ORDENARPOR vamos a devolver un rango ordenado con base en otro rango, es decir, el rango devuelto será ordenado con base en otro rango que no necesariamente debe ser devuelto. Usamos la siguiente fórmula:

=ORDENARPOR(C9:C18,D9:D18)

 

Figura 6. Función ORDENARPOR en Excel.

Ejemplo 6 – Función FILTRAR

Esta función también nos va a devolver un rango, solo que en este caso, el rango devuelto estará filtrado con base en uno o más criterios. Usamos la fórmula:

=FILTRAR(C9:C18,D9:D18>27)

 

Figura 7. Función FILTRAR en Excel.

Ejemplo 7 – Función FILTRAR con Rango de desbordamiento

Recordemos que si una función devuelve más de una celda, entra en juego el Rango de desbordamiento o Spill rango que nos ayudará a mostrar todos lo valores devueltos. Usamos la siguiente formula:

=FILTRAR(B9:E18,C9:C18=”EDITH”)

 

Figura 8. Función FILTRAR en Excel y el Rango de desbordamiento.

Descarga el archivo de ejemplo

BUSCARX y funciones de matrices dinámicas – EXCELeINFO.zip

 

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

Viewing all 466 articles
Browse latest View live