junio 2019

27 jun 2019

Función Inputbox vba Excel


En nuestra publicación pasada vimos como ejecutar una macro. ahora veremos el uso de la función Inputbox.
Para hacer uso de la función Inputbox necesitamos hacer uso de las variables.
Una variable es un dato o valor que VBA guarda en memoria.
Entonces nuestra variable se llamara "MiNombre" para usar nuestra función.
Hay varios tipos de Inputbox y se pueden aplicar varios parámetros. en este momento veremos solo lo básico.
(cabe aclarar que más adelante les explicaré como declarar las variables)
entonces nuestra macro anterior quedará de la siguiente manera:
Funcion Inputbox vba Excel

Sub MiPrimeraMacro()
Minombre = InputBox ("¿Cuál es tu nombre?")
Range("A1").Value = MiNombre
End Sub

26 jun 2019

Ejecutar Macros en Excel.


El día de ayer creamos nuestra primera macro, que fue algo sencilla, el día de hoy vamos a ejecutar esa macro.
Tienes 3 formas de hacer esto:
A. Ejecutar la macro desde el mismo Editor
Si te posicionas en cualquiera de las líneas de código de la macro y luego presionas la tecla F5 la macro se ejecutará (para ver el resultado puedes volver a la hoja Excel con ALT+F11).
B. Ejecutar la macro desde Excel
Otra forma de ejecutar la macro es desde el mismo Excel. Puedes hacerlo desde el ficha programador -> macros
C. Ejecutar la macro desde Excel con ALT+F8


25 jun 2019

Crear Macros en Excel


Para comenzar a trabajar con las macros, necesitamos entender 3 conceptos importantes: Objetos, Propiedades y Métodos.
Los objetos: es todo aquello que ves en Excel, un libro, una hoja, una celda, un rango, etc. (más adelante conoceremos los objetos)
Las propiedades: son las características de los objetos, como por ejemplo el alto de las celdas.
Los Métodos: son la acciones que vamos a realizar. 
Las Macros se trabajan en el lenguaje Visual Basic for Applications (VBA). 
Para realizar una macro se puede ser lo podemos hacer de forma manual y con la grabadora 
Así que vamos a comenzar con nuestra primera macro. 
Crear Macros en Excel

Primero lo vamos hacer manera manual, para este ejercicio vamos a colocar nuestro nombre la celda A1 de nuestra hoja activa: 
- Crea un nuevo libro Excel y guárdalo con el nombre Libro 1.
- Abre el editor de Visual Basic con las teclas ALT+F11.
- Al iniciar nuestra macro de llevar "Sub", nombre y parentesis ()
- Finalizar "End Sub"

Sub MiPrimeraMacro()
Range("A1").Value = "Luis Reyes"
End Sub



24 jun 2019

Extraer Información de CFDI 3.3 en Excel con fórmulas.



En publicaciones pasadas les he explicado cómo obtener información de un XML (CFDI 3.3) con macros, ahora llego el momento de explicarles cómo realizar esa tarea con una función, la función es llama: XMLFILTRO, cabe mencionar que esta función está disponible para las versiones de Excel 2013 en adelante.
Sintaxis:
XMLFILTRO(xml, xpath)
La sintaxis de la función XMLFILTRO tiene los siguientes argumentos:
Lenguaje:    Obligatorio. Es una cadena con formato XML válido.
Instrucción    Obligatorio. Es una cadena con formato XPath estándar.
EJEMPLO:
Para este ejemplo: solo tomamos un XML, la información de este elemento la colocamos en la celda A1, con la fórmula  XMLFILTRO, vamos a obtener el nodo de Total.





=XMLFILTRO($A$1,"//cfdi:Comprobante/@Total")

hay que recordar que cuando se trata de leer nodos se deben escribir tal y como están en el XML. si colocamos total, nos va marcar error, porque para la versión 3.3 el nodo se llama Total

17 jun 2019

Mostrar u Ocultar Hojas de Excel de manera segura (xlVeryHidden)


Cuando realizamos trabajos en Excel, necesitamos ocultar hojas a los demás usuarios, y Excel nos da muchas opciones para realizar esta labor, aquí te voy a describir algunas:
la opción una y la mas común es:
Ocultar hojas Excel

  • Clic derecho sobre la pestaña que queremos ocultar, damos clic en la opción ocultar.
Ocultar hojas Excel
  • Para mostrar clic derecho sobre cualquier pestaña, damos clic en la opción mostrar.
Esto también lo podemos realizar con una macro:

Sub Ocultar()
Hoja1.Visible = xlSheetHidden 'ocultamos la hoja Luis Reyes, en lugar de xlSheetHidden podemos utilizar FALSE
End Sub

Sub Mostrar()
Hoja1.Visible = xlSheetVisible 'mostramos la hoja Luis Reyes, en lugar de xlSheetVisible podemos utilizar TRUE
End Sub

Con todo lo anterior hemos logrado ocultar las hojas de manera en la que cualquier usuario puede mostrar nuestras hojas de trabajo. para ocultar nuestras hojas de una manera un poco más segura, podemos utilizar el método "xlVeryHidden", con este método, vamos a evitar que la hoja se pueda mostrar desde el menú contextual de las pestañas de las hojas.
Para lograr esto necesitamos:


1. Abrir el editor de Visual Basic para Aplicaciones. (Alt + F11)
Propiedad xlVeryHidden.webpPropiedad xlVeryHidden.webp

2. En Propiedades de la hoja, en la categoría: Visible seleccionamos la opción: "2 - xlVeryHidden".

Esto también lo podemos realizar con una macro:
Sub Ocultar()
Hoja1.Visible = xlSheetVeryHidden 'ocultamos la hoja Luis Reyes, en lugar de xlSheetHidden podemos utilizar FALSE
End Sub

El mostrar las hojas ocultas se puede complicarse cuando muchas hojas. pero para mostrar todas las hojas ocultas, podemos utilizar el siguiente VBA excel:

Sub MostrarTodasHojas()
    Dim Hojas As Worksheet
     For Each Hojas In ActiveWorkbook.Worksheets
        Hojas.Visible = xlSheetVisible
    Next Hojas

End Sub

Para facilitar toda esta labor Jorge L. Dunkelman en su blog: JLD Excel en Castellano - Usar Microsoft Excel eficientemente, nos obsequia un userform para tener un control de nuestras hojas.




11 jun 2019

macro para romper vínculos en Excel


El trabajar con vínculos en Excel nos facilita mucho la vida para actualizar cantidades ya sea interno o externo el vínculo, pero esto se vuelve un problema cuando Excel no encuentra los vínculos externos, no hay ninguna forma automática de encontrar dichas referencias, se tiene que hacer de forma manual, y aquí te explicaré algunas:

Opción uno, y la más práctica: 
Sigue los siguientes pasos.

1. Ir a la ficha: Datos.
2.  en la cinta de opciones ir a: "consultas y conexiones".



3.Editar Vínculos y Romper vínculo.

Opción dos, buscar los vínculos manualmente:
Sigue los siguientes pasos.


1. Presione para Excel en español: Ctrl + B para Excel en inglés: Ctrl + F  para iniciar el cuadro de diálogo Buscar y reemplazar .
2. Haga clic en Opciones.
3. En el cuadro Buscar , escriba "*.XL"
4. En el cuadro dentro de, haga clic en libro.
5. En el cuadro Buscar en , haga clic en fórmulas.
6. Haga clic en buscar todo.
7. En el cuadro de lista que aparece, busque en la columna fórmula las fórmulas que contienen . XL.

Opción 3. con una macro.
Sigue los siguientes pasos.

1. Abrir el editor de Visual Basic para Aplicaciones. (Alt + F11)
2. Insertar un módulo
3. Pegar el siguiente código y ejecutarlo.

Sub Romper_Vinculos()
Dim Rvinculos As Variant
' Definir variable como un tipo de vínculo Excel
Rvinculos = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
' Rompa el primer eslabón en el libro activo.
ActiveWorkbook.BreakLink _
Name:=Rvinculos(1), _
Type:=xlLinkTypeExcelLinks
End Sub


6 jun 2019

Tipos de Cambio


Ya sea por trabajo o solo para estar informados, necesitamos consultar los tipos de cambio en el Diario Oficial de la Federación, es por eso, que les comparto está herramienta en Excel que les va a ayudar a consultar los Tipos de Cambio, sin necesidad de abrir el navegador.
Tipos de Cambio


Tipos de Cambio

Descarga el Archivo

Pros:
Se puede incluir cualquier rango de fechas.
Se puede utilizar para formulas como por ejemplo: BuscarV.

3 jun 2019

Obtener Nombre de la hoja - Excel


En publicaciones les explique cómo obtener el nombre del libro de trabajo con fórmulas o con una macro. en está ocasiones les muestro las formas para obtener el nombre de la hoja que estamos trabajando.


Para lograr esto es muy sencillo, se puede realizar con la siguiente fórmula:

=EXTRAE(CELDA("nombrearchivo"),ENCONTRAR("]",CELDA("nombrearchivo"))+1,LARGO(CELDA("nombrearchivo"))-ENCONTRAR("]",CELDA("nombrearchivo")))

o con una macro:

Sub Nombre()
ActiveCell.Value = ThisWorkbook.Name
End Sub