Deseo realizar lo siguiente:
En la hoja2 tengo las columas A, B C D E y F diligenciadas con cierto numero
de registros, las columnas B C D E y F estan formuladas con operaciones
matematicas y buscarv apuntando a la hoja3. la fila 1 y 2 son de titulos
En la hoja1 tengo en las celdas:
a3 nombre empresa
a4 nombre cliente
a5 direccion electronica
fila 6 en blanco
fila 7 en blanco
fila 8 en blanco
a9 a la a11 textos informativos para el cliente
en la hoja1 tengo insertado un boton del cuadro de controles en el que
necesito realizar lo siguiente:
copiar las columnas B C D y F (la A y la E no las necesito) desde la fila2
que corresponde a los titulos (la fila 1 no la necesito copiar) hasta el
ultimo registro diligenciado por ejemplo hasta la fila 15 e insertarlas en
la hoja1 en la fila 7 es decir, en la fila 7 me quedara el primer registro
de la hoja2 y asi sucesivamente... la fila 23 estara en blanco (antes la
fila 8) y en las celdas siguientes de la columna A, la informacion que
estaba en las celdas a9 a la a11.
se debe tener en cuenta que el copiado debe hacerse con todos los formatos y
caracteristicas ya que por ejemplo las celdas estan con fondo en colores,
hay bordes al rededor de las celdas, hay texto ajustado porlo amplio de la
descripcion del producto etc..
gracias por la ayuda que me puedan brindar
al boton de la hoja1 le asignas el siguiente codigo en el evento '_click'
Dim nFilas As Integer
Application.ScreenUpdating = False
With ActiveCell
With Worksheets("hoja2").Range("a2")
nFilas = .CurrentRegion.Rows.Count - 1
Range("a8").Resize(nFilas - 2).EntireRow.Insert
.Offset(, 1).Resize(nFilas - 1, 3).Copy
Range("a7").PasteSpecial xlPasteFormats
Range("a7").PasteSpecial xlPasteValues
.Offset(, 5).Resize(nFilas - 1, 1).Copy
Range("d7").PasteSpecial xlPasteFormats
Range("d7").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With
.Select
End With
OJO: la segunda vez (y posteriores) que la ejecutes ya deberas haber "limpiado" los datos copiados previamente
(es decir, volver a tener las filas 6, 7 y 8 "en blanco")
saludos,
hector.
__ OP __
> En la hoja2 tengo las columas A, B C D E y F diligenciadas con cierto numero de registros
lo digo porque posterior a esto, a traves de codigo en el mismo b�ton me
crea una hoja de calculo para cada vez que se genere una cotizacion (es
decir click en el boton) entonces me quedaria guardada la info del a hoja1
en la hojan (que se van creando con un numero cosecutivo)
Gracias
Jorgef.
"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje de
noticias news:OJ%23CHU%23DKH...@TK2MSFTNGP02.phx.gbl...
> ... atendiendo tu observacion (OJO)
> hay posibilidad que en el mismo boton, despues de insertar las filas, las borre inmediatamente??.
> ... posterior a esto, a traves de codigo en el mismo boton me crea una hoja de calculo
> para cada vez que se genere una cotizacion (es decir click en el boton)
> entonces me quedaria guardada la info del a hoja1 en la hojan (que se van creando con un numero cosecutivo)
podrias exponer el codigo "... posterior a esto ..." que tienes asignado al boton ?
saludos,
hector.
el codigo con el que grabo la hoja1 en otro libro en hojas separadas, es
decir una hoja por cada click en el boton cotizar es el siguiente:
La hoja1 ahora se llama cotizaciones y la hoja2 pl_cotizacion.
'salva hoja Cotizaci�n en archivo Cotizaciones
Dim NumeroCotizacion As Integer
Dim NombreCliente As String
Set AbreCotizacion =
Workbooks.Open("J:\Datos\QCE\Cotizaciones.xlsx") 'ThisWorkbook.Path &
"\Comprobantes_Egreso.xls")
'insertar c�digo de copiado de egreso
Workbooks("QCE_Cotizador").Worksheets("Cotizaci�n").Copy
after:=Workbooks("Cotizaciones").Worksheets(1)
'asigna nombre a la hoja
NumeroCotizacion = Worksheets("Cotizaci�n").Range("c9")
NombreCliente = Worksheets("Cotizaci�n").Range("b2")
Worksheets("Cotizaci�n").Name = (NumeroCotizacion & "-" &
NombreCliente)
'salvar y cerrar archivo
ActiveWorkbook.Save
ActiveWorkbook.Close
otra cosa Hector con el codigo que me enviaste para insertar las celdas
tengo el siguiente lio... claro que no te lo expuse inicialmente.
el copiado funciona perfecto, pero enla hoja pl_cotizacion (antes hoja2),
tengo una formulacion hasta la fila 500, asi:
Titulo
Columna A Referencia
Columna B Cantidad
Columna C Descripcion Utilizo la formula buscarv de la columna A para
traer el dato de la hoja lista_precios
Columna D Valor Total multiplico cantidad por el valor.
a las formulas le antepongo =si(a2<>"",buscarv(etc...
esto hace que solo me indique datos en las filas de la columna A este
diligenciada. ylas formulas las tengo hasta la fila 500 pero el usuario por
ejemplo puede incluir solo 10 items enuna cotizacion o 20 en otra y asi
sucesivamente.
como puedo hacer para que al insertar las filas dando click al boton, me
inserte solo las diligenciadas y no las 500 que es lo que hoy me esta
sucediendo..
gracias Hector por tu colaboracion
Jorgef
"H�ctor Miguel" <NOhemio...@PLShotmail.com> escribi� en el mensaje de
noticias news:eiKSfnjE...@TK2MSFTNGP05.phx.gbl...
__ 1 __
> el codigo con el que grabo la hoja1 en otro libro en hojas separadas
> es decir una hoja por cada click en el boton cotizar es el siguiente:
> La hoja1 ahora se llama cotizaciones y la hoja2 pl_cotizacion. (...)
1) a las ultimas 4 lineas de la propuesta anterior ...
=====
Application.CutCopyMode = False
End With
.Select
End With
=====
las cambias +/- por lo siguiente:
=====
Application.CutCopyMode = False
' aqui pones todo el codigo "posterior a..." que acabas de exponer ... '
' y agregas estas 2 lineas nuevas ... '
Range("a9").Resize(nFilas - 1).EntireRow.Delete
Range("a8").EntireRow.Clear
End With
.Select
End With
=====
__ 2 __
> ... en la hoja pl_cotizacion (antes hoja2), tengo una formulacion hasta la fila 500, asi:
> Titulo
> Columna A Referencia
> Columna B Cantidad
> Columna C Descripcion Utilizo la formula buscarv de la columna A para traer el dato de la hoja lista_precios
> Columna D Valor Total multiplico cantidad por el valor.
>
> a las formulas le antepongo =si(a2<>"",buscarv(etc...
> esto hace que solo me indique datos en las filas de la columna A este diligenciada
> y las formulas las tengo hasta la fila 500 pero el usuario por ejemplo puede incluir solo 10 items e nuna cotizacion o 20 en otra y asi ...
> como puedo hacer para que al insertar las filas dando click al boton, me inserte solo las diligenciadas
> y no las 500 que es lo que hoy me esta sucediendo...
2) lo siento... en esta parte me declaro "ciego" (no se donde inician las formulas ni si existen alguns titulos ni donde ?????)
es probable que te convenga cambiar de => "nFilas = .CurrentRegion.Rows.Count - 1"
por otro metodo que descarte las filas que no tienen datos reales (para no incluir aquellas con las filas vacias-preparadas) (?????)
saludos,
hector.