0% encontró este documento útil (0 votos)
4 vistas14 páginas

Cómo Grabar y Usar Macros en Excel

Cargado por

jatziry
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas14 páginas

Cómo Grabar y Usar Macros en Excel

Cargado por

jatziry
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Pasos para grabar una macro

1. Primero se graba una macro

2. Seleccionar el libro de macros personal

3. Dar click en aceptar y después seleccionamos una celda cualquiera y finalmente le


damos en detener grabación.
4. Abrir Visual basic

5. Después seleccionamos la hoja de VBA personal

6. Pegar el código en el recuadro lanco y cerrar el editor de vba

7. Para probarlo le damos click en macros y elegimos la macros personales, y elegimos


el nombre que le pusimos a la macro
8. Después agregar la macro al centro de confianza.

9. Dejar con la siguiente configuración.


10. Para añadirlo a la arra de Excel

- Ir a la pestaña Archivo

- Después opciones
- Posteriormente en la cinta de opciones, elegimos macros.

- Una vez seleccionado la opción macros, elegir la macro que nosotros hicimos y
seleccionar la pestaña donde queremos que aparezca. (Las casillas que están en
verde darles click, no desmarcar, solo darles click a lado)
 Por ejemplo, elegimos el grupo datos, le damos en nuevo grupo, después ese nuevo
grupo le damos en cambiar nombre.
- Le asignamos un nuevo nombre y elegimos un icono con el que queremos que
aparezca.

- Una vez creado el grupo seleccionamos nuestra macro y le damos en agregar y


se agregara al grupo que hicimos.
 Por ejemplo, si elegimos la ruta Datos>ejemplo, ahí debe aparecer a la altura que la
colocamos, en este caso al final.

- Por último, cerramos y guardamos la configuración (Antes de eso aparecerá una


pestaña para guardar el libro, ese lo puedes si o no guardar, es opcional y no
influye, pero donde indique guardar la macros si importa).

CODIGO IMPORTAR FACTURAS

Sub Importarxml()

Dim xmlDoc As Object

Dim xmlNode As Object

Dim ws As Worksheet

Dim filePaths As Variant

Dim i As Long

Dim row As Long

Dim objetoImp01Monto As String

Dim objetoImp02Monto As String

Dim factorTipo As String

Dim factorMonto As String


Dim baseTasa0 As String, baseTasa16 As String

' Mostrar cuadro de diálogo para seleccionar múltiples archivos XML

filePaths = [Link]("Archivos XML (*.xml), *.xml", ,


"Selecciona archivos XML", , True)

' Verificar si se seleccionaron archivos

If IsArray(filePaths) = False Then

MsgBox "No se seleccionó ningún archivo."

Exit Sub

End If

' Usar la hoja activa

Set ws = ActiveSheet

' Limpiar la hoja

[Link]

' Encabezados de columnas

[Link](1, 1).Value = "Archivo XML"

[Link](1, 2).Value = "RFC Emisor"

[Link](1, 3).Value = "Nombre Emisor"

[Link](1, 4).Value = "Monto Objeto Imp 01"

[Link](1, 5).Value = "Monto Objeto Imp 02"

[Link](1, 6).Value = "Tipo de Factor"

[Link](1, 7).Value = "Monto Factor"

[Link](1, 8).Value = "Base Tasa 0"

[Link](1, 9).Value = "Base Tasa 16"

[Link](1, 10).Value = "IVA"

[Link](1, 11).Value = "Ret Impuesto 01"

[Link](1, 12).Value = "Ret Impuesto 02"


[Link](1, 13).Value = "Total"

[Link]("A1:M1").[Link] = True

[Link]("A1:M1").[Link] = RGB(200, 200, 200)

' Inicializar fila para los datos

row = 2

' Iterar sobre los archivos seleccionados

For i = LBound(filePaths) To UBound(filePaths)

' Crear el objeto XML

Set xmlDoc = CreateObject("[Link]")

[Link] = False

[Link] (filePaths(i))

' Verificar si el XML se cargó correctamente

If [Link] <> 0 Then

MsgBox "Error al cargar el archivo XML: " & [Link]

Exit Sub

End If

' Guardar la ruta del archivo XML

[Link](row, 1).Value = filePaths(i)

' Obtener RFC del Emisor

Set xmlNode = [Link]("//cfdi:Emisor/@Rfc")

If Not xmlNode Is Nothing Then

[Link](row, 2).Value = [Link]

Else

[Link](row, 2).Value = ""

End If
' Obtener Nombre del Emisor

Set xmlNode = [Link]("//cfdi:Emisor/@Nombre")

If Not xmlNode Is Nothing Then

[Link](row, 3).Value = [Link]

Else

[Link](row, 3).Value = ""

End If

' Obtener el monto de ObjetoImp="01"

Set xmlNode =
[Link]("//cfdi:Conceptos/cfdi:Concepto[@ObjetoImp='01']/
@Importe")

If Not xmlNode Is Nothing Then

objetoImp01Monto = [Link]

[Link](row, 4).Value = objetoImp01Monto

Else

[Link](row, 4).Value = ""

End If

' Obtener el monto de ObjetoImp="02"

Set xmlNode =
[Link]("//cfdi:Conceptos/cfdi:Concepto[@ObjetoImp='02']/
@Importe")

If Not xmlNode Is Nothing Then

objetoImp02Monto = [Link]

[Link](row, 5).Value = objetoImp02Monto

Else

[Link](row, 5).Value = ""

End If

' Obtener Tipo de Factor


Set xmlNode =
[Link]("//cfdi:Traslados/cfdi:Traslado/@TipoFactor")

If Not xmlNode Is Nothing Then

factorTipo = [Link]

[Link](row, 6).Value = factorTipo

Else

[Link](row, 6).Value = "Exento"

End If

' Obtener Monto del Factor

Set xmlNode =
[Link]("//cfdi:Traslados/cfdi:Traslado/@Importe")

If Not xmlNode Is Nothing Then

factorMonto = [Link]

[Link](row, 7).Value = factorMonto

Else

[Link](row, 7).Value = ""

End If

' Obtener Base Tasa 0

Set xmlNode =
[Link]("//cfdi:Traslados/cfdi:Traslado[@TasaOCuota='0.000000']/
@Base")

If Not xmlNode Is Nothing Then

baseTasa0 = [Link]

[Link](row, 8).Value = baseTasa0

Else

[Link](row, 8).Value = ""

End If

' Obtener Base Tasa 16


Set xmlNode =
[Link]("//cfdi:Traslados/cfdi:Traslado[@TasaOCuota='0.160000']/
@Base")

If Not xmlNode Is Nothing Then

baseTasa16 = [Link]

[Link](row, 9).Value = baseTasa16

Else

[Link](row, 9).Value = ""

End If

' Obtener IVA

Set xmlNode =
[Link]("//cfdi:Traslados/cfdi:Traslado[@TasaOCuota='0.160000']/
@Importe")

If Not xmlNode Is Nothing Then

[Link](row, 10).Value = [Link]

Else

[Link](row, 10).Value = ""

End If

' Obtener Ret Impuesto 01

Set xmlNode =
[Link]("//cfdi:Retenciones/cfdi:Retencion[@Impuesto='001']/
@Importe")

If Not xmlNode Is Nothing Then

[Link](row, 11).Value = [Link]

Else

[Link](row, 11).Value = ""

End If

' Obtener Ret Impuesto 02


Set xmlNode =
[Link]("//cfdi:Retenciones/cfdi:Retencion[@Impuesto='002']/
@Importe")

If Not xmlNode Is Nothing Then

[Link](row, 12).Value = [Link]

Else

[Link](row, 12).Value = ""

End If

' Obtener Total

Set xmlNode = [Link]("//cfdi:Comprobante/@Total")

If Not xmlNode Is Nothing Then

[Link](row, 13).Value = [Link]

Else

[Link](row, 13).Value = ""

End If

' Avanzar a la siguiente fila

row = row + 1

Next i

' Ajustar el ancho de las columnas

[Link]("A:M").AutoFit

MsgBox "Facturas importadas y procesadas correctamente."

End Sub

También podría gustarte