Combinar dos hojas en una sola

30/09/2007 - 16:23 por GRIEGO59 | Informe spam
Hola!
Tengo una Hoja FACTURADEVENTAS con los siguientes elementos:

Rango B4:B18, muestra los seriales de los productos vendidos. Es un serial
único para cada producto y pueden venderse desde uno hasta quince productos
en una sola factura de venta, dependiendo del estado de ánimo del cliente.

Rango D4:D18, muestra el precio de venta final de cada serial. Este precio
de venta final es distinto del precio de venta presupuestado, puede ser mayor
o menor según convenga.

Sería genial que al presionar el botón GUARDAR, el precio final de cada
serial se guarde en la hoja COMPRAS en la columna "I" en función del Serial
de ese producto de la columna "A".

El botón GUARDAR está asociado a un código fenomenal que me facilitó Hector
en este foro, que guarda en la hoja COMPRAS otros datos de FACTURADEVENTAS,
como son Nº de factura de ventas y fecha de ventas, en funcíon también del Nº
de serial vendido. La diferencia es que estos dos datos son iguales para todo
el rango de seriales vendidos, mientras que el precio de venta final, es
diferente para cada serial vendido. Adicionalmente, el código borra los datos
de FACTURADEVENTAS después de guardar.

Por las dudas copio el código asociado a el botón guardar:

Sub Macro5()
'
' Macro5 Macro
' Macro grabada el 13/09/2007 por GRIEGO59
'

Dim Fila As Byte: Application.ScreenUpdating = False
With Worksheets("facturadeventas")
For Fila = 4 To Application.CountA(.Range("b4:b18")) + 3
Worksheets("compras").Range("a:a") _
.Cells.Find(.Range("b" & Fila), Range("a1"), xlValues, xlWhole).Offset(, 6) _
.Resize(, 2) = Array(.Range("b2").Value, .Range("a2").Value)
Next
.Range("a2,e2,b4:b18,h4:h18").ClearContents
End With
End Sub
 

Leer las respuestas

#1 Héctor Miguel
01/10/2007 - 06:57 | Informe spam
hola, Darío !

[segun parece] al codigo que estas usando solo necesitas modificarle una linea para los dos nuevos datos...
a) aumentar las columnas del *.Resize* de 2 a 3
b) agregar el dato para la columna adicionada al final de los elementos en el *Array*

o sea, dentro del bloque con la instruccion: -> Worksheets("compras").Range("a:a") _
y ANTES de la linea con la instruccion: -> Next

modifica:
de: -> .Resize(, 2) = Array(.Range("b2").Value, .Range("a2").Value)
a: -> .Resize(, 3) = Array(.Range("b2").Value, .Range("a2").Value, .Range("d" & Fila).Value)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Mostrar la cita

Preguntas similares