Hola buenos dias, nuevamente por aqui soliciando su valiosa ayuda. Te comento que he realizado un pequeño formato de factura con codigo bidimensional (CBB), pero para poder llevar un registro y poder consultar folios anteriores agregue una hoja llamada "BD" y me gustaria que los datos de la hoja BD al seleccionar un folio mediante filtro, me copie los datos y los pegue en la hoja llamada factura. El problema viene que por presentacion de la factura combine celdas y al momento de decirle que copie pegue los valores me dice que hay un error, que el formato es distinto, ya iguale el formato, pero aun asi me dice que no se puede pegar solo los valores. Existira alguna forma de realizar esto con una macro y mediante la macro seleccionar el numero de folio a copiar.
De ante mano gracias por su pronta respuesta.
Subo el libro para que sea mas facil su comprension del problema. "Factura CBB"
Pegar valores en celda combinada
Hola! Che
Una cosa es trabajar con celdas combinadas a los efectos de atender cuestiones "estéticas".
Pero otra muy distinta es que las tablas de datos las tengan.
Más específicamente y según mi experiencia: no hay idea más mala que trabajar datos en celdas combinadas ( ¿No estás experimentando problemas, acaso?)...
Un código que trabaje bajo estas condiciones tienes que pensarlo "por columnas". O sea:
Copias el rango B10:B13 (de la hoja BD) y lo pegas (en valores, si quieres) en B13:B16 (de la hoja FACTURA), y así sucesivamente.
¡Suerte!
Cacho R.
Entiendo Cacho, originalmente no estaba asi, pero como me decia que el formato no coincidia, lo cambie igual que el formato original, pero aun asi me seguia dando el mismo mensaje. Por otra parte, mi intencion es crear una macro que copie los datos filtrados del primero al ultimo del mismo folio, el detalle es que como consigo que cuando solo sea 1 solo renglon que no se copien todas las demas celdas en blanco. Es decir si solo ingreso 1 concepto de servicio, solo se lleve ese dato unico, tal como lo hacen las tablas dinamicas que al seleccionar un folio traen los datos unicos a ese folio. Ya lo intente con las tablas dinamicas, pero no pude adecuarlo al formato de la factura.
Podras darme alguna pista por favor.
Esta macho hace lo que te comento, el detalle es que no se en que estoy fallando al momento de aplicarlo a la hoja llamada factura:
Sub filtrar()
Hoja4. Range("A5:E30000"). AutoFilter Action:=AutoFilterCopy, CriteriaRange:= _
Hoja2. Range("O2"), CopyToRange:=Hoja2. Range("b13:p28"), Unique:=False
End Sub
Parece que no fui claro con la idea de pegar por columna. Aquí te muestro como manejar la primera columna:
___
Sub Filtrar()
With Hoja4
. AutoFilterMode = False
. [b5]. CurrentRegion. AutoFilter 1, Hoja2. [o2]
filas =. AutoFilter.Range.Rows. Count - 1
. [b5]. Resize(filas, 1). Copy
Hoja2. [b13]. PasteSpecial -4163
End With
End Sub
___
Saludos, Cacho R.
Hola Cacho, he logrado hacer lo que te habia comentado anteriormente con esta macro:
Sub FILTRO_FACTURA()
' Filtramos los datos a presentar en la factura
Hoja4. Range("A4:G30000"). AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Hoja4. Range("A1:B2"), CopyToRange:=Hoja5. Range("B12:F12"), Unique:=False
' Seleccionamos la factura para su revision
Sheets("FACTURA"). Select
Range("A1"). Select
End Sub
Funciona de maravilla, pero me gustaria que solo se ejecutara hasta la celda "B40:F40", ya que asi como lo tengo ahorita, al ingresar algun dato debajo de ("B12:F12") hasta la ultima celda hacia abajo las borra. Si no es mucha molestia y alguien puede ayudarme se los agradeceria mucho.