Manejo de Rangos-Range

29/05/2009 - 13:35 por gongi | Informe spam
Por favor,Hector, me ayudas a mejorar este código? . Copio una tabla
(rango columna A:E) a otra hoja para llevar un historico , pero como
hacer para:
*Que no me copie las 7 primeras filas (pues son Titulos y
Encabezados).
*Existe la posibilidad de copiar solo valores (no fórmulas).?
Muchas gracias por la ayuda.



Sub Copia_A_Historico
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("historico")

With HojaDestino
fila = .Range("C" & .Rows.Count).End(xlUp).Row + 1
Range("A6:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy .Range
("A" & _
fila)
End With

End Sub

Preguntas similare

Leer las respuestas

#1 Juan M
29/05/2009 - 15:05 | Informe spam
Hola,

Si no te importa que no sea Héctor, el código lo tienes que modificar de la
siguiente manera:

Esta línea
Range("A6:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy _
.Range("A" & fila)

es la que indica el rango a copiar y donde pegarlo. Aqui "A6:I" indica la
primera celda que copia hasta la última columna que copia, la fila la
calcula, entonces debes cambiarlo por "A8:E"

Para copiar solo los valores, debes indicar en una instrucción nueva que lo
pegue.

.Range("A" & fila).PasteSpecial xlPasteValuesAndNumberFormats

Aquí se pegan los valores y formatos, hay otras opciones revisa la ayuda de
PasteSpecial.

El conjunto del código sería:
Sub Copia_A_Historico()
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("historico")

With HojaDestino
fila = .Range("C" & .Rows.Count).End(xlUp).Row + 1
Range("A8:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy

.Range("A" & fila).PasteSpecial xlPasteValuesAndNumberFormats
Application.CutCopyMode = False

End With

End Sub

Un saludo,
Juan


"gongi" escribió
Por favor,Hector, me ayudas a mejorar este código? . Copio una tabla
(rango columna A:E) a otra hoja para llevar un historico , pero como
hacer para:
*Que no me copie las 7 primeras filas (pues son Titulos y
Encabezados).
*Existe la posibilidad de copiar solo valores (no fórmulas).?
Muchas gracias por la ayuda.



Sub Copia_A_Historico
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("historico")

With HojaDestino
fila = .Range("C" & .Rows.Count).End(xlUp).Row + 1
Range("A6:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy .Range
("A" & _
fila)
End With

End Sub
Respuesta Responder a este mensaje
#2 gongi
29/05/2009 - 16:45 | Informe spam
On 29 mayo, 15:05, "Juan M" wrote:
Hola,

Si no te importa que no sea Héctor, el código lo tienes que modificar de la
siguiente manera:

Esta línea
    Range("A6:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy _
         .Range("A" & fila)

 es la que indica el rango a copiar y donde pegarlo. Aqui "A6:I" indica la
primera celda que copia hasta la última columna que copia, la fila la
calcula, entonces debes cambiarlo por "A8:E"

Para copiar solo los valores, debes indicar en una instrucción nueva que lo
pegue.

    .Range("A" & fila).PasteSpecial xlPasteValuesAndNumberFormats

Aquí se pegan los valores y formatos, hay otras opciones revisa la ayuda de
PasteSpecial.

El conjunto del código sería:
Sub Copia_A_Historico()
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("historico")

With HojaDestino
    fila = .Range("C" & .Rows.Count).End(xlUp).Row + 1
    Range("A8:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy

    .Range("A" & fila).PasteSpecial xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False

End With

End Sub

Un saludo,
Juan


"gongi" escribió
Por favor,Hector, me ayudas a mejorar este código? . Copio una tabla
(rango columna  A:E)  a otra hoja para llevar un historico , pero como
hacer para:
*Que no me copie las 7 primeras filas (pues son Titulos y
Encabezados).
*Existe la posibilidad de copiar solo valores (no fórmulas).?
Muchas gracias por la ayuda.

Sub Copia_A_Historico
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("historico")

With HojaDestino
    fila = .Range("C" & .Rows.Count).End(xlUp).Row + 1
    Range("A6:I" & Range("A" & Rows.Count).End(xlUp).Row).Copy .Range
("A" & _
fila)
End With

End Sub




¡ Gracias Juan, era justo eso
! Claro que no me importa , a cualquiera de vosotros os considero
maestros en esto . (Hace tiempo se te "veía" mas por aqui) :-)).
Muchas gracias de nuevo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida