Pegado especial datos hoja

29/01/2007 - 17:07 por Mafoso | Informe spam
Hola Sres.

Quiero copiar los valores una hoja con celdas combinadas,formulas, controles
(Combobox y Botones de accion incrustados) y codigo "en la hoja" a otra hoja
del mismo libro (que es una copia de la anterior pero sin ninguna de las
lindezas que he citado).
En un archivo de pruebas (menos complejo) he creado (bueno... copiado del
grupo) la siguiente macro y Funciona:
Sub Macro2()
Sheets("Pedidos").Select
Application.ScreenUpdating = False
Cells.Copy
Sheets("Hoja1").Select
Cells.PasteSpecial Paste:=xlValues
Application.ScreenUpdating = True
End Sub

Si copio la macro al Libro en question la macro no funciona
Alguna idea del por que?. Llevo 3 dias con ello y no encuentro la solución ...


Gracias.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
30/01/2007 - 08:06 | Informe spam
hola, ?

1) podrias ser mas 'explicito' en cuanto a que [primero] si funciona... y luego ya no ? [cuando la pasas al libro 'en cuestion'] -?-
2) si la 'otra' hoja es ya una COPIA de la que contiene las 'monerias'... lleva incluidos los objetos incrustados y demas 'lindezas' ?
3) en que 'tipo/clase/...' de modulo de codigo copias la/s macro/s ? [modulo estandar/general/... o modulos 'de clase' ?]
4) los nombres de las hojas si coinciden donde si funciona y donde falla ?

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.

__ la consulta original __
Quiero copiar los valores una hoja con celdas combinadas, formulas, controles (Combobox y Botones de accion incrustados)
y codigo "en la hoja" a otra hoja del mismo libro (que es una copia de la anterior pero sin ninguna de las lindezas que he citado).
En un archivo de pruebas (menos complejo) he creado (bueno... copiado del grupo) la siguiente macro y Funciona:
Sub Macro2()
Sheets("Pedidos").Select
Application.ScreenUpdating = False
Cells.Copy
Sheets("Hoja1").Select
Cells.PasteSpecial Paste:=xlValues
Application.ScreenUpdating = True
End Sub
Si copio la macro al Libro en question la macro no funciona
Alguna idea del por que?. Llevo 3 dias con ello y no encuentro la solucion ...
Respuesta Responder a este mensaje
#2 Mafoso
30/01/2007 - 09:46 | Informe spam
Hola don Héctor :

Por partes:

1) podrias ser mas 'explicito' en cuanto a que [primero] si funciona... y luego ya no ? [cuando la pasas al libro 'en cuestion'] -?-



Antes de utilizar codigo en los libros que utilizo y dado mi escaso
conocimiento del tema siempre Creo un libro de pruebas , en blanco donde
pruebo los codigos que tan gentilmente posteais en el grupo, lo hago de esta
manera para intentar comprender el codigo (a veces lo consigo i todo :-) ) y
no simplemente copiarlo y de uno en uno para evitar interacciones con otro
codigo (pasito a pasito,...). Cuando funciona en el libro pruebas lo llevo (
vuelvo a escribir) al libro donde quiero que funcione i testeo ( ni tan
siquiera hago un copiar/pegar).
Si funciona a la primer : PERFECTO, que bueno soy :-D

2) si la 'otra' hoja es ya una COPIA de la que contiene las 'monerias'... lleva incluidos los objetos incrustados y demas 'lindezas' ?



El libro pruebas es mas sencillo que el libro final. En pruebas tengo en la
hoja incrustados dos combobox, algunas celdas combinadas y alguna formula.
En Final tengo a parte de los dos combobox incrustados, 3 botones de comando
incrustados y mas celdas combinadas y formulas (con referenca a otras hojas
del libro).

3) en que 'tipo/clase/...' de modulo de codigo copias la/s macro/s ? [modulo estandar/general/... o modulos 'de clase' ?]



En el libro Pruebas: Codigo en modulo1 (macro Copiarhoja() )
En el libro Final: Codigo "en la Hoja" asociado al click del boton de
comando que quiero que realize la acción
(supongo que me preguntas esto..., lo tipico: Nuevo, inexperto y todadia
falto de "jerga", para llegar a comprender del todo a los expertos ;-) .
Agradeceria explicacion sobre tipos de modulos)

4) los nombres de las hojas si coinciden donde si funciona y donde falla ?



Los nombres de hoja son iguales, El codigo "de la hoja" cambia.
En Pruebas hay menos codigo al no tener los botones de comando, que son
"simples": 2 botones para imprimir, uno para desprotejer la hoja (de proxima
eliminación si consigo lo que me propongo).

comentas [si hubiera] algun detalle adicional ?



Detalle: el pasado 23/01 postee pregunta: Proyecto ambicioso (o no).
Con lo que quiero hacer .

Muchas gracias por tu interes,
Marc.
Respuesta Responder a este mensaje
#3 Héctor Miguel
31/01/2007 - 00:04 | Informe spam
hola, Marc !

___ 1 ___
Antes de utilizar codigo en los libros que utilizo... siempre Creo un libro de pruebas [...]



1) muy sana y recomendable costumbre :))
___ 2 ___
... En pruebas tengo en la hoja incrustados dos combobox, algunas celdas combinadas y alguna formula.
En Final tengo... dos combobox... 3 botones de comando... y mas celdas combinadas y formulas (con referenca a otras hojas del libro).



2) es de 'intuir' que la realidad sea mas compleja que los ejemplos expuestos en las consultas :D
___ 3 ___
En el libro Pruebas: Codigo en modulo1 (macro Copiarhoja() )
En el libro Final: Codigo "en la Hoja" asociado al click del boton de comando que quiero que realize la accion...
Agradeceria explicacion sobre tipos de modulos)



3) los modulos 'de clase' [por omision] ya vienen en cada proyecto de macros y corresponden a cada hoja y al libro [y formularios]
los otros modulos [los estandar/genral/normal/...] son los que tu agregas para codigos de uso 'general'
___ 4 ___
Los nombres de hoja son iguales, El codigo "de la hoja" cambia.
En Pruebas hay menos codigo al no tener los botones de comando, que son "simples":
2 botones para imprimir, uno para desprotejer la hoja (de proxima eliminacion si consigo lo que me propongo).



4) [en resumen]... dejame comentarte que no 'veo' alguna causa para que un codigo 'probado' falle al trasladarlo a otro libro -?-
[ademas] tampoco has comentado como haces la copia de la hoja [es probable que ya la copia lleve sus 'lindezas', codigo, etc.] -???-

si suponemos que deseas copiar solo valores y omitir todo objeto incrustado en la hoja [incluso codigo en su modulo] -???-
prueba con una macro +/- como la siguiente [en un modulo de codigo estandar/general/normal/...]

Sub Valores_a_hoja_nueva()
Worksheets("hoja1").Cells.Copy
Worksheets.Add
ActiveCell.PasteSpecial xlPasteValues
Range("a1").Select
Application.CutCopyMode = False
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Mafoso
31/01/2007 - 08:51 | Informe spam
"Héctor Miguel" escribió:
Hola Hector:
El codigo funciona casi perfecto. [Al final os tendremos que hacer un
monumento ... "a los sabios de Excel de sus agradecidos alumnos"]


He añadido:
ActiveCell.PasteSpecial xlPasteFormats
para copiar formatos.

Ahora toca complicar el tema ;-) : [anoto la informacion que he ido
recopilando por si consideras que voy bien encaminado, tienes alguna
sugerencia, etc]

1.- La hoja origen tiene unos logos que me gustaria copiar a la nueva hoja

2.- En lugar de crear la copia en libro activo como crear-la en nuevo libro?
Quizas con Sheets ("hoja1").Move
pero se me ocurre una complicacion: Como determino Hoja a mover [el/los
usuarios le dan + de una vez al boton copia ]

3.- Guardar el nuevo libro (con hoja copiada) con nombre (+/-):
Sub Guardar_File_Fecha_Hoy()
Dim RutArchivo as string
RutArchivo = "C.\pedidos\"
ActiveWorkbook.SaveAs Filename:= _
RutArchivo & Format(Date, "dd-mm-yyyy")& Format(Range("a1")) & _
Format(Range("a3"))
'donde a1=nombre cliente i a3=nombre comercial
End Sub

4.- En libro de control (por crear) hacer anotacion del pedido [para que el
sr.jefe tenga constancia].

Muchas Gracias por tu inestimable ayuda...

Para finalizar (Al menos este correo ;-) ):
La explicacion de los modulos no me ha quedado clara:

3) los modulos 'de clase' [por omision] ya vienen en cada proyecto de macros y corresponden a cada hoja y al libro [y formularios]
los otros modulos [los estandar/genral/normal/...] son los que tu agregas para codigos de uso 'general'



cuando haces referencia a modulos de clase me podrias indicar ejemplo, te
refieres a las "funcionalidades"/eventos comunes a toda hoja/libro : "cuando
usuario pulsa tecla escribir en celda activa", "si mueve raton mover
puntero", etc... (??)

Repito: Muchas Gracias.
MARC.
Respuesta Responder a este mensaje
#5 Héctor Miguel
01/02/2007 - 06:40 | Informe spam
hola, Marc ! [entre lineas] :D

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

Ahora toca complicar el tema ;-)
[anoto la informacion que he ido recopilando por si consideras que voy bien encaminado, tienes alguna sugerencia, etc]

1.- La hoja origen tiene unos logos que me gustaria copiar a la nueva hoja



=> en que celdas estan localizados esos logos ? les has dado nombres ? [hazlo de preferencia]
cuantas imagenes existen en la hoja ?
que otro tipo de objetos [y cuantos] tienes incrustados en la hoja ?
[para no 'tener que'... barrer objetos, averiguar, descartar o incluir, etc. etc. etc.] :))

2.- En lugar de crear la copia en libro activo como crear-la en nuevo libro?
Quizas con Sheets ("hoja1").Move pero se me ocurre una complicacion:
Como determino Hoja a mover [el/los usuarios le dan + de una vez al boton copia ]



=> [p.e.] puedes mover la hoja [recien] 'creada/re-formateada/maquillada/...' a un libro nuevo: -> ActiveSheet.Move
o... hacer dichas acciones directamente en una hoja de un libro 'nuevo'

3.- Guardar el nuevo libro (con hoja copiada) con nombre (+/-):
Sub Guardar_File_Fecha_Hoy()
Dim RutArchivo as string
RutArchivo = "C.\pedidos\"
ActiveWorkbook.SaveAs Filename:= _
RutArchivo & Format(Date, "dd-mm-yyyy")& Format(Range("a1")) & Format(Range("a3"))
' donde a1=nombre cliente i a3=nombre comercial
End Sub



=> [por lo pronto]... corre algunas pruebas, y ya comentaras que modificaciones te gustaria adaptarle :))

4.- En libro de control (por crear) hacer anotacion del pedido [para que el sr. jefe tenga constancia].



=> [como que]... faltan los detalles 'finos': de donde... a donde... como... cuando... etc. etc. etc. :D

La explicacion de los modulos no me ha quedado clara:

3) los modulos 'de clase' [por omision] ya vienen en cada proyecto de macros y corresponden a cada hoja y al libro [y formularios]
los otros modulos [los estandar/general/normal/...] son los que tu agregas para codigos de uso 'general'



cuando haces referencia a modulos de clase me podrias indicar ejemplo
te refieres a las "funcionalidades"/eventos comunes a toda hoja/libro:
"cuando usuario pulsa tecla escribir en celda activa", "si mueve raton mover puntero", etc... (??)



=> eso mismo ;)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida