Cómo CREAR una función para obtener TODA la información de un CFDI o XML de Nómina

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 พ.ย. 2024

ความคิดเห็น • 43

  • @javierdelgado-strc8712
    @javierdelgado-strc8712 4 หลายเดือนก่อน

    Es excelente tu demostración y explicación, agradezco y valoro mucho tu esfuerzo por apoyar y mostrarnos tus conocimientos. Te deseo lo mejor y Dios te bendiga.

  • @heracliogarcialopez6704
    @heracliogarcialopez6704 7 ปีที่แล้ว +12

    El público que busca este tipo de temas es muy reducido gracias por tu esfuerzo soy fan del Exel.

    • @Mar10Bravo
      @Mar10Bravo 4 ปีที่แล้ว

      En temas de programación y curiosamente en funciones de Excel poca gente le interesa pero saber le da un plus a nuestro perfil.

  • @LIRIMAR7
    @LIRIMAR7 7 ปีที่แล้ว

    BUENAS NOCHES, GRACIAS POR COMPARTIR, ESTOY APRENDIENDO COSAS MUY ÚTILES, GRACIAS A SU DEDICACIÓN, TRABAJO Y ESFUERZO. AUN NO ENTIENDO MUCHOS TERMINOS, PERO SEGUIRE VIENDO SUS VIDEOS, DE VERDAD MUCHAS GRACIAS.

  • @albarrason
    @albarrason 3 ปีที่แล้ว

    Muy bueno! Bien explicado y muy útil ahora que las facturas electrónicas nos inundan! Gracias!

  • @gerardoortizgonzalez5904
    @gerardoortizgonzalez5904 ปีที่แล้ว

    Excelente video curso y tutorial de programación.
    Gracias

  • @xzanatozx
    @xzanatozx 6 ปีที่แล้ว

    Muchas gracias!. Hacia rato que buscaba como obtener la información del los CFDI formato XML. Este video es una super ayuda!!

  • @zurisadaialvarezhernandez5676
    @zurisadaialvarezhernandez5676 2 ปีที่แล้ว

    muchas gracias!!! super excelente video!!

  • @solistapacori7117
    @solistapacori7117 3 ปีที่แล้ว

    Brillante , gracias por la paciencia en explicar

  • @celiahernandezcervantes6974
    @celiahernandezcervantes6974 5 ปีที่แล้ว

    Hola! Yo tenía mucho tiempo buscando un video tutorial así. Tus dos fonciones para sacar los atributos y los nodos repetidos me funcionó muy bien. Ya solo estoy adaptando tu código al mio. Muchas gracias, ya tienes un seguidor más.

  • @Dfloresu86
    @Dfloresu86 3 ปีที่แล้ว

    Agradezco mucho el aporte, demasiado valioso, te felicito, muchas gracias por compartir, felicidades!!

  • @JMAnguiano
    @JMAnguiano 7 ปีที่แล้ว

    Buen día 1000 gracias por tu ayuda y tus consejos, seguiré practicando y te enviaré mi archivo para compartirlo
    ¡¡¡ Conocimiento que no se comparte, se estanca y se pudre !!!
    Gracias por tus videos y apoyo

  • @juanantonioramirezescobedo1520
    @juanantonioramirezescobedo1520 5 ปีที่แล้ว +1

    Muchisimas sgacias por tu aporte está genial, lo voy a modificar para un cfdi de ingreso

  • @micronegocioygestionperson5426
    @micronegocioygestionperson5426 3 ปีที่แล้ว

    gracias por tu aporte; pregunta ¿como extraigo los nodos y sus datos en base al numero de cada nodo (0,1, 2, 3 etc ) por las veces que se repite en algunas ocaciones y eso ocasiona que se agreguen en columnas que no les corresponda, debido que no siempre los xml del cfdi traiga la misma cantidad de nodos; se me ocurre usar la funcion indice coincidr mas contar.so

  • @excelexcel1012
    @excelexcel1012 7 ปีที่แล้ว +1

    Amigo tus videos son muy buenos, para aprender a programar en vba.
    Pero por ejemplo a un usuario final no le sirve de mucho.
    ya que una macro se supone que es para facilitarle el trabajo a dicho usuario, pero con ese tipo de macro yo creo que le es mas dificil, el manejo de los datos. Saludos soy un suscriptor que no se pierde tus vídeos.

  • @facundo2312ify
    @facundo2312ify 6 ปีที่แล้ว

    Disculpa muy buenos todos tus videos solo tengo una duda que pasa si tengo en el xml varios atributos con diferente valor, solo lo diferencia el atributo el id del nodo

  • @johndragonrider88
    @johndragonrider88 4 ปีที่แล้ว

    Excelentes videos. Me han ayudado a entender más sobre el tema. Una consulta. Un xml qué trabajo no tiene atributos. En lugar de eso, la información está directamente en los nodos. Esto es, tiene una estructura similar a esta:
    valor
    Cómo puedo leer el "valor"?

    • @joascha20
      @joascha20 2 ปีที่แล้ว

      Hola supiste como poder leer el valor ?

    • @johndragonrider88
      @johndragonrider88 2 ปีที่แล้ว

      @@joascha20 la verdad no recuerdo

  • @LuisAntonio-cd4ck
    @LuisAntonio-cd4ck 7 ปีที่แล้ว +1

    Gracias por el buen material, hace tiempo buscaba un código igual de comprensible. ¿¿Donde se pone 5 estrellas??...

  • @ernestoportillo3350
    @ernestoportillo3350 6 ปีที่แล้ว

    mil gracias por este excelente tema , a sido gran utilidad para mi trabajo

    •  5 ปีที่แล้ว

      Mucho gusto.

  • @rodribezul
    @rodribezul 6 ปีที่แล้ว

    Excelente ... Lo estoy aplicando acá en Colombia.

    •  6 ปีที่แล้ว

      Hola, ¿me podría pasar su correo por favor? Es para darle unos tips que le pueden servir de ayuda.

  • @gilbertogarcia2832
    @gilbertogarcia2832 7 ปีที่แล้ว

    Gracias por tus contribuciones amigo excelente trabajo y sobre todo por compartir el conocimiento saludos.

  • @pablochiriboga388
    @pablochiriboga388 2 ปีที่แล้ว

    necesito una macro que elimine varias etiquetas mi archivo xml ya que no consigo que excel pueda leer los nodos que hay depsues de las etiquetas de encabezado

  • @alejandromurillo6783
    @alejandromurillo6783 4 หลายเดือนก่อน

    Perfecto!

  • @luzadrianaurias881
    @luzadrianaurias881 2 ปีที่แล้ว

    como le puedo hacer para de forma automática me inserte tantas filas sean necesarias, para poder leer todos los indices y poder hacer una tabla donde por XML me devuelva el contenido de los nodos de casa uno de los indices

  • @alonsoelcraa8119
    @alonsoelcraa8119 4 ปีที่แล้ว

    Gracias amigo, DIOS te lo pague

  • @The13Bruja
    @The13Bruja 6 ปีที่แล้ว

    Un millón de gracias!!!! Excelente tutorial

  • @fillipbuscador
    @fillipbuscador 5 ปีที่แล้ว

    Hola, necesito si pudieras ayudarme con tu código.
    Mira yo no se desarrollar pero si leo un codigo VBA lo medio entiendo y por mi falta de conocimiento, intentaré explicarme a ver si me doy a entender lo que necesito.
    Mira, Esta es tu función:
    Private documentoxml As MSXML2.DOMDocument
    Private listanodos As MSXML2.IXMLDOMNodeList
    Private nodo As MSXML2.IXMLDOMNode
    Function OBTENER_ATRIBUTOS(ruta As String, nombrenodo As String, estenodo As Integer, atributo As String) As String
    Set documentoxml = New DOMDocument
    documentoxml.Load (ruta)
    Set listanodos = documentoxml.getElementsByTagName(nombrenodo)
    OBTENER_ATRIBUTOS = listanodos.Item(estenodo).Attributes.getNamedItem(atributo).Text
    End Function
    Tu función es super útil cuando el nombre de un nodo se repite varias veces en diferentes renglones pero tengo un problema.
    tengo el nombre de nodo "cfdi:Retencion" algunos están integrados en el nombre de nodo ("/cfdi:Comprobante/cfdi:Conceptos")
    Ejemplo 1:
    cfdi:Comprobante
    -cfdi:Conceptos
    -cfdi:Concepto (Venta Item 1)
    -cfdi:Impuestos
    -cfdi:Retenciones
    cfdi:Retencion Impuesto="003"/> {Nodo 0}
    -cfdi:Concepto (Venta Item 2)
    -cfdi:Impuestos
    -cfdi:Retenciones
    cfdi:Retencion Impuesto="003"/> {Nodo 1}
    y el nombre de nodo "cfdi:Retencion" también están integrados en la ruta nodo ("/cfdi:comrpobante/cfdi:Impuestos/cfdi:Retenciones")
    Ejemplo 2:
    cfdi:Comprobante
    -cfdi:Impuestos
    -cfdi:Retenciones
    cfdi:Retencion Impuesto="002"/> {Nodo 2}
    cfdi:Retencion Impuesto="003"/> {Nodo 3}
    En el Ejemplo 1 se encuentran los datos: "Importe" e "Impuestos" entre otros mas
    En el Ejemplo 2 se encuentran También los Mismos datos, pero en el Ejemplo 1 se calculan para cada venta o Item y el el Ejemplo 2 se calculan de manera Total.
    Imaginemos que en el "cfdi:Conceptos" tengo 2 "item" vendidos (pero pueden ser mas, depende del XML).
    Y en el cfdi:Retencion tengo dos, uno para Impuesto 002 y otro para impuesto 003
    Por lo que cuando hago la función de contar nodos, me da un total de 4 nodos
    por lo cual los nodos que están en el ejemplo 2 toman los números de nodos 2 para el Atributo "002" y 3 para el atributo 003
    Pero si cambio a otro archivo .XML que tiene solo un Item de venta, los nodos en el ejemplo 2 Ya no son 3 y 4, si no 1 y 2
    Y eso hace que tenga que estar recalculando la cantidad de nodos para un mismo nombre de nodo.
    La pregunta aquí es: Cómo hago para que al correr tu función, haga lo siguiente:
    Paso 1 Tome la celda "F1" que es donde se encuentra la ruta del archivo XML, es decir, siempre estará la ruta en esa celda en específico.
    Paso 2 que tome esta ruta de nodo ("/cfdi:comrpobante/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion")
    Paso 3 Especificarle que se refiere al primer nodo en esa ruta, es decir como nodo 0 (o si no se puede porque existen otros iguales en la ruta del ejemplo 1, entonces darle a ese nodo específico un nombre alfanumérico, se me ocurre "reten1".
    Paso 4 que tome al atributo "Impuesto" dentro de ese valor de nodo y me arroje el dato "002"
    Hacer los mismos pasos para el siguiente "cfdi:Retencion"
    Paso 1 Igual que el anterior.
    Paso 2 Igual que el anterior
    Paso 3 Especificarle que se refiere al segundo nodo en esta ruta, es decir, como nodo 1, o si no se puede por el motivo anterior, entonces darle a ese nodo específico un nombre alfanumérico, "reten2".
    Paso 4 que tome el atributo "impuesto" dentro de ese valor de nodo y me arroje el dato "003"
    Cabe mencionar que esto mismo me serviría para los nodos ubicados en cfdi:Conceptos
    En resumen debería quedar en una celda de excel algo asi:
    =OBTENER_ATRIBUTOS(F1,"cfdi:Retencion",0,"Impuesto")
    En otra celda algo asi:
    =OBTENER_ATRIBUTOS(F1,"cfdi:Retencion",1,"Impuesto")
    O quedaría algo asi:
    =OBTENER_ATRIBUTOS(F1,"cfdi:Retencion","reten1,"Impuesto")
    =OBTENER_ATRIBUTOS(F1,"cfdi:Retencion","reten2,"Impuesto")
    En el caso de "cfdi:Conceptos" Como no sabemos si el XML va a tener 1 Item o más, sería útil que se ejecutara la instrucción para el ejemplo 1 y haciendo un bucle para cada "cfdi:Retencion", para esto se me ocurre algo así como tu otra función "CONTAR_NODOS" y decirle que solo cuente los nodos especificados en la ruta =cfdi:Conceptos= y nada mas
    Analicé varios archivos XML y es el único problema que se presenta con esos nombres de nodos, en el caso de facturas de ventas, pero esto mismo serviría para el caso de nominas.
    Mira, estoy utilizando esta otra función:
    Private documentoxml As MSXML2.DOMDocument
    Private listanodos As MSXML2.IXMLDOMNodeList
    Private nodo As MSXML2.IXMLDOMNode
    _____________________________
    Function carga(ruta)
    Set documentomxl = New DOMDocument
    documentoxml.load (ruta)
    End Function
    _____________________________
    Function cfdi_emisor(ruta, dato)
    carga (ruta)
    Set listanodos = documentoxml.selectNodes("/cfdi:comrpobante/cfdi:Emisor")
    For each nodo In listanodos
    cfdi_emisor = nodo.attibutes.getNamedItem(dato).Text
    En la celda de excel me queda algo asi: =cfdi_emisor(F1,"Rfc")
    Esta última función para mi es muy útil porque especifico exactamente de que ruta de nodo necesito los atributos de un determinado dato (Ejemplo "Rfc")
    Pero no me funciona para del nodo "cfdi:Retencion" porque se repite dos veces para cfdi:Retencion y n numero de veces para cfdi:Concepto
    Esto solo me sirve para los otros nodos como cfdi:Comprobantes, o cfdi:Emisor, cfdi:Receptor, es decir, para los nodos que sabemos no se van a repetir.
    Para los nodos que se repiten me serviría algo como lo que de favor necesito me ayudes.
    Tu como eres sabio para esto, seguro conforme vas leyendo en tu cabeza se está desarrollando codigos y codigos. ¿Podrías ayudarme con esto por favor?
    Mira igual y te envío el archivo de excel en el que tengo estos códigos y otros mas que utilizo para importar datos de un XML. Chance y así si no me supe explicar, comprenderías mejor viendo el código.
    Saludos.

  • @fernandoalexismooluna7635
    @fernandoalexismooluna7635 3 ปีที่แล้ว

    CALIDAD DE TRABAJO

  • @luismontano5360
    @luismontano5360 3 ปีที่แล้ว

    No me aparece la función CONTAR_NODOS en el libro de Excel =( he seguido todos los pasos al pie de la letra...

  • @aurigonzalez2152
    @aurigonzalez2152 6 ปีที่แล้ว

    Buenas tardes una pregunta a la hora de obtener las funciones de obtener atributos no me da la fórmula de hecho me ds un error de NOMBRE será mi versión de Excel?! Tengo el xml gracias!!

    • @danielaguilera6035
      @danielaguilera6035 5 ปีที่แล้ว

      Dentro del ambiente VBA selecciona:
      Herramientas ---> Referencias ---> Microsoft XML, vx.0

  • @albaficaespindola2198
    @albaficaespindola2198 7 ปีที่แล้ว

    una pregunta estoy generando la macro no me aparece ni un error,abre correcto el buscador de archivos pero al querer ver algun archivo no me muestra nada para cargar
    ni xml y tampoco algun otro

    • @danielaguilera6035
      @danielaguilera6035 5 ปีที่แล้ว

      Dentro del ambiente VBA selecciona:
      Herramientas ---> Referencias ---> Microsoft XML, vx.0

  • @juragoza44
    @juragoza44 5 ปีที่แล้ว

    GRACIAS

  • @johnnybarron8716
    @johnnybarron8716 6 ปีที่แล้ว

    Oye amigo me puedes ayudar a crear una macro para buscar un archivo xml el cual tengo el nombre en una celda y bucarlo en el explorador de Windows y hacer una carpeta que contenga ese archivo y ponerle el nombre que esté en una celda

    • @danielaguilera6035
      @danielaguilera6035 5 ปีที่แล้ว

      Dentro del ambiente VBA selecciona:
      Herramientas ---> Referencias ---> Microsoft XML, vx.0

  • @netoo6007
    @netoo6007 7 ปีที่แล้ว

    muchisimas gracias

  • @anamo65
    @anamo65 6 ปีที่แล้ว

    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Gracias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!