copiar rango

09/02/2009 - 12:23 por gongi | Informe spam
Hola Grupo!,

Por favor ,se pueden ir volcando, por código, los datos de una hoja
en un histórico? Es un rango " variable" ya que cada vez, el numero
de filas( registros) puede ser mayor o menor, lo que no varía son las
columnas. No puedo usar formularios o plantilla de "entrada"

Gracias por vuestra ayuda.
A1 B1 C1 D1
FACTURA NOMBRE APELLIDOS DESTINO
FI12187 XXXXX XXX EUROPA
FI12187 XXXX XXXX EUROPA
FI12219 XXX XXXX EUROPA
FI12219 XXXXXX EUROPA

Un cordial saludo!

Preguntas similare

Leer las respuestas

#1 Juan M
09/02/2009 - 13:07 | Informe spam
Hola,

Te paso dos opciones, dependiendo de si necesitas comprobar la entrada de
datos, o si es una base de datos o un libro que debe permanecer cerrado para
insertarlo por Ado, puede que te resulte útil el primer método.

Si el destino es otra hoja de excel que puedes tener abierta, cuando sean
muchos registros, seguramente sea más rápido el segundo, claro que deberías
hacer la comprobación de datos al momento de escribir en la celda (según
teclees).

El siguiente código copia uno a uno los registros que existen en la hoja
activa a continuación de los existentes en la hoja2. Puedes definir otra
hoja en la variable HojaDestino.

Inicio código
Sub Copia_A_Historico()
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("hoja2")

i = 2

Do While Range("A" & i) <> ""
With HojaDestino
fila = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & fila) = Range("A" & i)
.Range("B" & fila) = Range("B" & i)
.Range("C" & fila) = Range("C" & i)
.Range("D" & fila) = Range("D" & i)
End With
i = i + 1
Loop
Set HojaDestino = Nothing

End Sub
Fin Código

Este otro lo copia directamente

Inicio código
Sub Copia_A_Historico2()
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("hoja2")

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

End Sub
Fin Código


Un saludo,
Juan


"gongi" escribió

Hola Grupo!,

Por favor ,se pueden ir volcando, por código, los datos de una hoja
en un histórico? Es un rango " variable" ya que cada vez, el numero
de filas( registros) puede ser mayor o menor, lo que no varía son las
columnas. No puedo usar formularios o plantilla de "entrada"

Gracias por vuestra ayuda.
A1 B1 C1 D1
FACTURA NOMBRE APELLIDOS DESTINO
FI12187 XXXXX XXX EUROPA
FI12187 XXXX XXXX EUROPA
FI12219 XXX XXXX EUROPA
FI12219 XXXXXX EUROPA

Un cordial saludo!
Respuesta Responder a este mensaje
#2 gongi
09/02/2009 - 15:53 | Informe spam
On 9 feb, 13:07, "Juan M" wrote:
Hola,

Te paso dos opciones, dependiendo de si necesitas comprobar la entrada de
datos, o si es una base de datos o un libro que debe permanecer cerrado para
insertarlo por Ado, puede que te resulte útil el primer método.

Si el destino es otra hoja de excel que puedes tener abierta, cuando sean
muchos registros, seguramente sea más rápido el segundo, claro que deberías
hacer la comprobación de datos al momento de escribir en la celda (según
teclees).

El siguiente código copia uno a uno los registros que existen en la hoja
activa a continuación de los existentes en la hoja2. Puedes definir otra
hoja en la variable HojaDestino.

Inicio código
Sub Copia_A_Historico()
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("hoja2")

i = 2

Do While Range("A" & i) <> ""
    With HojaDestino
        fila = .Range("A" & .Rows.Count).End(xlUp).Row + 1
        .Range("A" & fila) = Range("A" & i)
        .Range("B" & fila) = Range("B" & i)
        .Range("C" & fila) = Range("C" & i)
        .Range("D" & fila) = Range("D" & i)
    End With
    i = i + 1
Loop
Set HojaDestino = Nothing

End Sub
Fin Código

Este otro lo copia directamente

Inicio código
Sub Copia_A_Historico2()
Dim i As Long
Dim HojaDestino As Worksheet
Dim fila As Long

Set HojaDestino = Worksheets("hoja2")

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

End Sub
Fin Código

Un saludo,
Juan

"gongi" escribió

Hola Grupo!,

Por favor ,se pueden ir volcando, por código,  los datos de una hoja
en un histórico?  Es un rango " variable" ya que cada vez, el numero
de filas( registros)  puede ser mayor o menor, lo que no varía son las
columnas. No puedo usar formularios o plantilla de "entrada"

Gracias por vuestra ayuda.
A1 B1 C1 D1
FACTURA NOMBRE APELLIDOS DESTINO
FI12187 XXXXX        XXX           EUROPA
FI12187 XXXX        XXXX                    EUROPA
FI12219 XXX          XXXX                       EUROPA
FI12219 XXXXXX              EUROPA

Un cordial saludo!



Gracias Juan !

No me importa tener el histórico en otra hoja del mismo libro. De
momento uso el 2º método.
Muchas gracias como siempre por la ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida