Extraer valores de varios xml mediante una macro

Esperando te la estés pasando bien mi estimado

Podrías apoyarme necesito sacar unos datos de los xml que genero y de lo que compro y pasarlos a un excel el detalle es que si lo hago mediante el botón datos otras fuentes solo me deja escoger uno por uno y me saca 3 filas del mismo xml seleccionado hay forma de que se puedan seleccionar más de uno

Respuesta
2

Para extraer los datos puedes crear asignaciones o algo así y después vaciar los datos como se indica aquí https://sheepotaku.wordpress.com/2011/02/22/crear-listado-en-excel-a-partir-de-archivos-de-facturas-en-xml/

2 respuestas más de otros expertos

Respuesta
6

Que tal amigo la verdad, si supieras, el trabajo que me costo para encontrar este macro, y un compañero de esta página, me ayudo a modificarlo, te lo pongo a ver que tal creo que es más de lo que pides por extraer xml masivos okey, bueno comparto el macro.

Sub ExtraerFolioFiscal()
Dim MiPc, Carpeta, Archivos, Archivo
Dim y, Fila, FolioFiscal
Application.ScreenUpdating = False
Fila = Range("A" & Rows.Count).End(xlUp).Row + 1
Set MiPc = CreateObject("Scripting.FileSystemObject")
Set Carpeta = MiPc.GetFolder(Range("B1").Value)
Set Archivos = Carpeta.Files
For Each Archivo In Archivos
   If LCase(Right(Archivo.Name, 4)) = ".xml" Then
      Workbooks.OpenXML Filename:=Archivo
      y = 1: FolioFiscal = ""
      Do Until Cells(2, y) = ""
         If Trim(Cells(2, y)) = "/@folio" Then
            FolioFiscal = Cells(3, y)
         End If
         If Trim(Cells(2, y)) = "/cfdi:Emisor/@rfc" Then
            EmisorRfc = Cells(3, y)
         End If
         If Trim(Cells(2, y)) = "/cfdi:Emisor/@nombre" Then
            EmisorNombre = Cells(3, y)
         End If
         If Trim(Cells(2, y)) = "/cfdi:Receptor/@nombre" Then
            ReceptorNombre = Cells(3, y)
         End If
         y = y + 1
      Loop
      '--
      Archivo = ActiveWorkbook.Name
      ActiveWorkbook.Close
      Range("A" & Fila) = Archivo
      Range("B" & Fila) = FolioFiscal
      Range("C" & Fila) = EmisorRfc
      Range("D" & Fila) = EmisorNombre
      Range("E" & Fila) = ReceptorNombre
      Fila = Fila + 1
   End If
Next
End Sub

Buen día mi estimado oye estoy arreglando tu archivo que me mandaste que por cierto esta muy bueno

Solo que sabrás como le puedo hacer para las facturas que tiene más de un concepto

ya que ami no me da

Amigo si gustas ya encontré otra forma de sacar todos los conceptos, de la factura, pero es otro archivo diferente, de hecho lo acabo de hacer hoy mismo.

Amigo hice un archivo para extraer todos los conceptos de un xml, por separado si gustas te digo como seria, claro si aun estas interesado saludos.

Claro que si mi estimado de echo estoy realizando algunos detalles que me gustaría compartir

Si quieres te puedo mandar el arch.

Tu comentame

Saludos

Claro que si amigo mi correo es [email protected] ahi me puedes mandar tu informacion y si gustas podemos seguir compartiendo informacion sobre el tema saludos.

Respuesta
1

Dime que datos tienen los xml, intentaré ayudarte

Buen día mi estimado

Los datos que necesito y que tienen los xml son

rfc="ECA120928RL5"

nombre="EMPRESA PARA EL COMERCIO AGRO-POBLANA S.A DE C.V.">
<cfdi:DomicilioFiscal calle="CALLE 4 ORIENTE"

noExterior="618 A"

colonia="CENTRO"

localidad="PUEBLA"

municipio="SAN ANDRES CHOLULA"

Estos son los que necesito de echo son los que están dentro de las comillas

Obviamente en mi excel pondré los datos en filas una fila es un xml el detalle seria tomar los datos de más de un xml

Espero haberme explicado

daludos

Pero ponme exactamente como es el xml

claro te anexo el contenido del xml

<?xml version="1.0" encoding="utf-8"?>
<cfdi:comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd" version="3.2" serie="ira" folio="6" fecha="2015-04-16t13:56:42" sello="cow4z1vajzcks6mg4m9kx0yuab+zzbccx1lqyn6nwwniriirmbyuyhsxktjcxnj7s2jcntg2hneix3cmzqdejj4gxo5imnhxce5hwiji6mblfezwhmlub8cpwwgf5qntmmlx9ribbwibh1o35ompbbss4use9imknyhcq7eghng=" formadepago="pago en una sola exhibicion" nocertificado="00001000000202395845" certificado="miiewzcca6ugawibagiumdawmdewmdawmdaymdizotu4nduwdqyjkozihvcnaqefbqawgggvmtgwngydvqqddc9blkmuigrlbcbtzxj2awnpbybkzsbbzg1pbmlzdhjhy2nds24gvhjpynv0yxjpytevmc0ga1uecgwmu2vydmljaw8gzgugqwrtaw5pc3ryywnpw7nuifryawj1dgfyawexoda2bgnvbasml0fkbwluaxn0cmfjacozbibkzsbtzwd1cmlkywqgzgugbgegsw5mb3jtywnpw7numsewhwyjkozihvcnaqkbfhjhc2lzbmv0qhnhdc5nb2iubxgxjjakbgnvbakmhuf2libiawrhbgdvidc3lcbdb2wuied1zxjyzxjvmq4wdaydvqqrdauwnjmwmdelmakga1uebhmctvgxgtaxbgnvbagmeerpc3ryaxrviezlzgvyywwxfdasbgnvbacmc0n1yxvodmopbw9jmruwewydvqqtewxtqvq5nza3mdfotjmxpja8bgkqhkig9w0bcqiml1jlc3bvbnnhymxloibdzwnpbglhied1awxszxjtaw5hiedhcmpdrwegr3vlcnjhmb4xdteymteymtiymzy1nvoxdte2mteymtiymzy1nvowggedmtcwnqydvqqdey5ftvbsrvnbifbbukegruwgq09nrvjdsu8gqudsty1qt0jmqu5bifnbierfienwmtcwnqydvqqpey5ftvbsrvnbifbbukegruwgq09nrvjdsu8gqudsty1qt0jmqu5bifnbierfienwmtcwnqydvqqkey5ftvbsrvnbifbbukegruwgq09nrvjdsu8gqudsty1qt0jmqu5bifnbierfienwmsuwiwydvqqtexxfq0exmja5mjhstduglybwquxfodgxmdaznti4mr4whaydvqqfexuglybwquxfodgxmdaztvbmulbsmdexdzanbgnvbastblvosurbrdcbnzanbgkqhkig9w0baqefaaobjqawgykcgyeas8flp8vuctxeet81qgm/yv1iznoccyh5hcnyegwlbbkgqegb0yjmyqkcwjweroowr9nbxp66wawcvg6rcgme/vj7pgimzjo2adm8v0uwnqefij163saodilloo+oxp4s4wqdcmeilnd0h9fvqkzazmilgyl96f2dl3i1qvmakyucaweaaamdmbswdaydvr0taqh/baiwadalbgnvhq8ebamcbsawdqyjkozihvcnaqefbqadggebabfklkolyflxa5lnnsoreeegyaluzaezb+dju7i5kse1gbttktwsz3uylb9d86226zd2qkvr22kehnryso3gt0dhvdivn4v/xf+iuktlgsd/egaszqh4hixi5hcuvrkdsf/ci71l5fpku1ec6u+wmhya7fyzkwwpss2wcss7fdh2yd/dd409gewfinspdxg62qnjzmbsxv9gfudb8txtqgzkyrulz6rd6a1mpthzeduqxgfyz/ng3cy/udrcbazcbd2sowoghfkrdtyaif+6cyhfjr65jwbfpfjb+8jhdhsyz8lzefvimsbvwcenso2jonnt2xmlzx7lstzlz32h3re=" subtotal="21200.00" tipocambio="1.00" moneda="peso mexicano" total="24592.00" tipodecomprobante="ingreso" metododepago="no identificado" lugarexpedicion="puebla, puebla" numctapago="no identificado">
<cfdi:emisor rfc="xxxx11587951dk" nombre="la gran empresa.">
<cfdi:domiciliofiscal calle="calle 4 oriente" noexterior="618 a" colonia="centro" localidad="puebla" municipio="san andres cholula" estado="puebla" pais="mexico" codigopostal="72810"/><cfdi:regimenfiscal regimen="general de ley personas morales"/></cfdi:emisor>
<cfdi:receptor rfc="ame1008972s6" nombre="empresa patito sa de cv.">
<cfdi:domicilio calle="avenida enrique colunga" noexterior="1361" colonia="fraccionamiento colón&#xa;" localidad="irapuato" estado="guanajuato" pais="méxico" codigopostal="36597"/></cfdi:receptor>
<cfdi:conceptos>
<cfdi:concepto cantidad="1.00" unidad="servicio" noidentificacion="642" descripcion="anticipo de pago de la promoción&#xa;de equipos y accesorios para invernaderos hiidropónicos correspondiente al mes de abril. &#xa;&#xa;" valorunitario="21200.00" importe="21200.00"/></cfdi:conceptos><cfdi:impuestos totalimpuestostrasladados="3392.00">
<cfdi:traslados><cfdi:traslado impuesto="iva" tasa="16.00" importe="3392.00"/></cfdi:traslados></cfdi:impuestos><cfdi:complemento><tfd:timbrefiscaldigital xmlns:tfd="http://www.sat.gob.mx/timbrefiscaldigital" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.sat.gob.mx/timbrefiscaldigital http://www.sat.gob.mx/timbrefiscaldigital/timbrefiscaldigital.xsd" sellocfd="cow4z1vajzcks6mg4m9kx0yuab+zzbccx1lqyn6nwwniriirmbyuyhsxktjcxnj7s2jcntg2hneix3cmzqdejj4gxo5imnhxce5hwiji6mblfezwhmlub8cpwwgf5qntmmlx9ribbwibh1o35ompbbss4use9imknyhcq7eghng=" fechatimbrado="2015-04-16t13:56:45" uuid="ba96e05a-1ce7-48e8-b1c9-a5c1f9cc3135" nocertificadosat="00001000000202864883" version="1.0" sellosat="e5i1jyvru/jcsi3wgrs3mv0m8bu2834nb/jah94f0zmblkbp0cqdy/0u8savcizoxxlr8iernk+iikvvfmc52cqirti3jg7dba9ajjl5n3n0cqtilnlkfqg373a12+ls1kim7pipvaaoe1gsmvsu5mg4nmflhe/cvdtecwwv6wu="/></cfdi:complemento></cfdi:comprobante>

saludos 

Lo siento, no he podido sacar nada

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas