copiar lineaen otra hoja

28/01/2008 - 21:22 por JAGE | Informe spam
Hola a todos
De nuevo necesito un poco de idea,
Como puedo con una macro buscar un valor en una columna y copiar toda la
línea del valor en otra hoja .
no se muy bien como copiar de una hoja a otra una línea por medio de una
macro

Preguntas similare

Leer las respuestas

#6 JAGE
03/02/2008 - 12:06 | Informe spam
he aquí de nuevo:
sin animo de ser pesado, la opción que me has dado me complace mas (quizás
por que la entiendo) para que comprendas mejor mi idea tengo una hoja
"componentes"
con "a=cajón" "b=posición" "c=código"
solo quiero seleccionar un código y copiar el cajón y la posición del código
(ósea toda la línea) en una hoja nueva creada con el fin de poderla imprimir
mas tarde.
esta es mi macro pero la opción copiar línea seleccionada no me funciona con
ninguna de las opciones (mi poca IDEA pero persevero hasta conseguirlo :) )
MI MACRO
Dim x1 As Variant
x1 = Date$

MsgBox "Esta es la hoja"
Worksheets.Add.Name = x1
MsgBox "Esta la hoja creada"
ActiveCell.EntireRow.Copy
Destination:=Worksheets("x1").Range("a:65536").End(xlUp).Offset(1)
MsgBox "Esta es la linea X"
se crea la hoja fecha pero no puedo copiar la línea seleccionada, como se
puede solucionar.
Muchas gracias




"Héctor Miguel" escribió en el mensaje
news:
hola, !

... no es posible que en la "hoja1" yo seleccione "c7" o "C9" simplemente
con el raton
(no me importa un input) y con una ejecucion macro me copie la línea "7"
o la "9" en la "hoja2"



segun cambien las necesidades (o la exposicion de la "realidad" con los
ejemplos de las consultas)...
habra que ir adaptando tambien las propuestas de (posible) solucion :))
(solo que sigues "reacio" a contestar re/preguntas como: "a donde quieres
la copia ?") :D

si suponemos que necesitas ir copiando los datos a la siguiente fila libre
de la hoja2...
y que la columna A de la hoja2 podra considerarse para determinar la
siguiente fila libre -?-

ActiveCell.EntireRow.Copy Destination:= _
Worksheets("hoja2").Range("a65536").End(xlUp).Offset(1)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Respuesta Responder a este mensaje
#7 Ivan
03/02/2008 - 20:58 | Informe spam
hola,

en tanto vuelve Hector, y solo por 'descargarle un poco de curro', si
quieres prueba la opcion que te pongo al final, pero antes te comento:

se crea la hoja fecha pero no puedo copiar la línea seleccionada, como se






puede solucionar.<<<

el motivo de que no se te pegue nada() es que estas seleccionando
'nada(), o mejor dicho, se te pega una fila vacia/sin datos, que es la
que has copiado

ten en cuenta que al añadir una hoja esta se convierte automaticamente
en la activa, con lo que la sleccion pasa a ser la celda A1 de esa
nueva hoja

en este caso, al hacer el copy tras añadir la hoja, lo que estas
copiando es la fila 1 de la nueva hoja (ahora la activa y
evidentemente sin datos todavia) y la estas pegando en la fila 2 de
esa misma hoja

una solucion es hacer el copy justo antes de añadir la hoja y pegarla
inmediatamente despues, sin hacer nada entre medias que pudiera romper
el cutcopymode

esto es lo que hace el codigo que te pongo.

.->Aparte te pone la fila de titulos tambien (suponiendo que estos
esten en la fila 1 en el original. Si no fuera asi cambia aqui =>
Worksheets(hj).Rows(1).Copy [a1] <= el 1 de Rows(1) por el nº de fila
en la que esten

.->tambien cambia la forma de nombrar la nueva hoja para vitar posibls
duplicados

''--pega este codigo en un 'modulo NORMAL', no de hoja ni en
thisworkbook (para abrir uno => estando en el editor de VBa => menu
Insertar => Modulo (a secas o standard, normal, etc, pero NO de clase)

'--pega desde aqui -

Sub CopiarRegistro()
Dim x1 As Variant, hj As String
x1 = Now: hj = ActiveSheet.Name
ActiveCell.EntireRow.Copy
Worksheets.Add
Range("a65536").End(xlUp).Offset(1) _
.PasteSpecial xlPasteValues
Worksheets(hj).Rows(1).Copy [a1]
ActiveSheet.Name = Format(x1, "dd-mmm-yy hhmmss")
End Sub

'-- pega hasta aqui

un saludo y disculpas por meter el 'cuezo'
Ivan


PD: aunque he intentado corregir la mayoria, es posible que mi
teclado
se haya zampado unas cuantas letras (sobre todo la e, s, d y c) pero
mientras no pueda cambiarlo solo espero que no vaya a mas su apetito
Respuesta Responder a este mensaje
#8 JAGE
05/02/2008 - 00:24 | Informe spam
Bravo Iván:
Con la explicación ofrecida he creído coger la idea y me dispongo a probar
mi macro, espero poder hacer algunas modificaciones,
gracias

"Ivan" escribió en el mensaje
news:
hola,

en tanto vuelve Hector, y solo por 'descargarle un poco de curro', si
quieres prueba la opcion que te pongo al final, pero antes te comento:

se crea la hoja fecha pero no puedo copiar la línea seleccionada, como
se






puede solucionar.<<<

el motivo de que no se te pegue nada() es que estas seleccionando
'nada(), o mejor dicho, se te pega una fila vacia/sin datos, que es la
que has copiado

ten en cuenta que al añadir una hoja esta se convierte automaticamente
en la activa, con lo que la sleccion pasa a ser la celda A1 de esa
nueva hoja

en este caso, al hacer el copy tras añadir la hoja, lo que estas
copiando es la fila 1 de la nueva hoja (ahora la activa y
evidentemente sin datos todavia) y la estas pegando en la fila 2 de
esa misma hoja

una solucion es hacer el copy justo antes de añadir la hoja y pegarla
inmediatamente despues, sin hacer nada entre medias que pudiera romper
el cutcopymode

esto es lo que hace el codigo que te pongo.

.->Aparte te pone la fila de titulos tambien (suponiendo que estos
esten en la fila 1 en el original. Si no fuera asi cambia aqui =>
Worksheets(hj).Rows(1).Copy [a1] <= el 1 de Rows(1) por el nº de fila
en la que esten

.->tambien cambia la forma de nombrar la nueva hoja para vitar posibls
duplicados

''--pega este codigo en un 'modulo NORMAL', no de hoja ni en
thisworkbook (para abrir uno => estando en el editor de VBa => menu
Insertar => Modulo (a secas o standard, normal, etc, pero NO de clase)

'--pega desde aqui -

Sub CopiarRegistro()
Dim x1 As Variant, hj As String
x1 = Now: hj = ActiveSheet.Name
ActiveCell.EntireRow.Copy
Worksheets.Add
Range("a65536").End(xlUp).Offset(1) _
.PasteSpecial xlPasteValues
Worksheets(hj).Rows(1).Copy [a1]
ActiveSheet.Name = Format(x1, "dd-mmm-yy hhmmss")
End Sub

'-- pega hasta aqui

un saludo y disculpas por meter el 'cuezo'
Ivan


PD: aunque he intentado corregir la mayoria, es posible que mi
teclado
se haya zampado unas cuantas letras (sobre todo la e, s, d y c) pero
mientras no pueda cambiarlo solo espero que no vaya a mas su apetito
Respuesta Responder a este mensaje
#9 Ivan
05/02/2008 - 01:49 | Informe spam
hola de nuevo

  Con la explicación ofrecida he creído coger la idea y me dispongo a probar




mi macro, espero poder hacer algunas modificaciones,
gracias<<<



me alegro te haya aclarado algo, pero permiteme algun comentario
adicional:

por un lado creo que ese 'gracias' no me corresponde exactamente a mi,
o al menos no enteramente. Tan solo he ampliado/aplicado lo que +/- ya
se te habia indicado

por otro, y ante la falta de detalles ya comentada, me surje una
duda=>

¿solo vas a querer poner un registro en la nueva hoja, o deseas poder
poner varios en ella(en la misma, no creando una nueva cada vez)?

si es lo 1º puedes ahorrarte esto=>

Range("a65536").End(xlUp).Offset(1)

y cambiarlo simplemente por [pej.] esto otro (que copiaria el registro
directamente en la fila 2, aunque puedes ponerlo en ala que quieras,
si la conoces)

Cells(2,1)

o esto otro =>

Range("a2")

la otra expresion solo tiene sentido si vas a continuar añadiendo
registros, o si la hoja contiene datos y no sabes cual es la ultima
fila con datos

y, en caso de que fuese la 2ª opcion (poder añadir mas registros),
entonces, con lo que deberias tener cuidado es con ' el añadido de la
hoja'. Segun esta la macro te añadiria una hoja cada vez.

quizas deberias condicionarlo de alguna forma (o cambiar el
planteamiento)

bueno. solamente como una especie de 'aviso' sobre cosillas que te
pueden ir surjiendo (la verdad es que desde aqui no se aprecia a ver
gran cosa de lo que realmente pretendes)

lo dicho, me alegro que en cualquier caso te haya sido un poco util

un saludo
Ivan
Respuesta Responder a este mensaje
#10 JAGE
08/02/2008 - 20:49 | Informe spam
De nuevo y con intención de dar las gracias a todo el grupo y a algunos que
siempre me echáis una mano en la resolución de estos problemas pero
especialmente a Héctor y a ti Iván
Ya comentaremos.
Un saludo
Jage

"Ivan" escribió en el mensaje
news:
hola de nuevo

Con la explicación ofrecida he creído coger la idea y me dispongo a
probar




mi macro, espero poder hacer algunas modificaciones,
gracias<<<



me alegro te haya aclarado algo, pero permiteme algun comentario
adicional:

por un lado creo que ese 'gracias' no me corresponde exactamente a mi,
o al menos no enteramente. Tan solo he ampliado/aplicado lo que +/- ya
se te habia indicado

por otro, y ante la falta de detalles ya comentada, me surje una
duda=>

¿solo vas a querer poner un registro en la nueva hoja, o deseas poder
poner varios en ella(en la misma, no creando una nueva cada vez)?

si es lo 1º puedes ahorrarte esto=>

Range("a65536").End(xlUp).Offset(1)

y cambiarlo simplemente por [pej.] esto otro (que copiaria el registro
directamente en la fila 2, aunque puedes ponerlo en ala que quieras,
si la conoces)

Cells(2,1)

o esto otro =>

Range("a2")

la otra expresion solo tiene sentido si vas a continuar añadiendo
registros, o si la hoja contiene datos y no sabes cual es la ultima
fila con datos

y, en caso de que fuese la 2ª opcion (poder añadir mas registros),
entonces, con lo que deberias tener cuidado es con ' el añadido de la
hoja'. Segun esta la macro te añadiria una hoja cada vez.

quizas deberias condicionarlo de alguna forma (o cambiar el
planteamiento)

bueno. solamente como una especie de 'aviso' sobre cosillas que te
pueden ir surjiendo (la verdad es que desde aqui no se aprecia a ver
gran cosa de lo que realmente pretendes)

lo dicho, me alegro que en cualquier caso te haya sido un poco util

un saludo
Ivan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida