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

#6 Mafoso
01/02/2007 - 08:50 | Informe spam
Hola Hector:
Testeando, grabando mil y una macro, y "marraneando" he llegado al siguiente
codigo :
[Los comentarios te los traduzco del catalan al castellano ]
Private Sub CommandButton1_Click()
Dim hojanueva, llibrenou, ruta As String
Dim llibremestre, venedor, client, data As String
' guardo nom llibremestre [guardo nombre libro original]
llibremestre = ActiveWorkbook.Name
'proces copia comanda (otto) [copia pedido interno]
'copia valors i format de comanda otto a full nou [copia valores i formato]
Worksheets("Comanda (otto)").Cells.Copy
Worksheets.Add
hojanueva = ActiveSheet.Name
ActiveCell.PasteSpecial xlPasteValues
ActiveCell.PasteSpecial xlPasteFormats
' copia logos de comanda otto a full nou [copia logos]
Sheets("comanda (otto)").Select
ActiveSheet.Shapes.Range(Array("Picture 10", "Picture 9", "Text Box 8", _
"Line 7" _
, "Text Box 6", "Group 3")).Select
Selection.Copy
Sheets(hojanueva).Select
ActiveSheet.Paste
' al full copiat li trec linees de divisió i li donc nom [aplicar detallito
y nombrahoja]
ActiveWindow.DisplayGridlines = False
Application.CutCopyMode = False
ActiveSheet.Range("f12:r12").Select
ActiveSheet.Name = "copia comanda otto"
'
' proces copia comanda client [ copia pedido cliente]
' copia valors i format de comanda estilo nissan a full nou [copia valores i
'_formato]
Worksheets("Comanda estilo Nissan").Cells.Copy
Worksheets.Add
hojanueva = ActiveSheet.Name
ActiveCell.PasteSpecial xlPasteValues
ActiveCell.PasteSpecial xlPasteFormats
' copia logos de comanda estilo Nissan a full nou [copia logos]
Sheets("Comanda estilo Nissan").Select
ActiveSheet.Shapes.Range(Array("Picture 1", "Picture 5", "Text Box 4", _
"Line 3" _
, "Text Box 2")).Select
Selection.Copy
Sheets(hojanueva).Select
ActiveSheet.Paste
' al full copiat li trec linees de divisió i li donc nom [detallito y
nombrar hoja]
ActiveWindow.DisplayGridlines = False
Application.CutCopyMode = False
ActiveSheet.Range("b9").Select
ActiveSheet.Name = "copia client"
'
'Copia de les fulles a Llibre Nou [copia libro nuevo]
'
' mou full copia comanda otto a llibre nou [mover hoja]
Sheets("copia comanda otto").Select
Sheets("copia comanda otto").Move
'determina mom llibre nou [guardo nombre libro nuevo]
llibrenou = ActiveWorkbook.Name
' retorn llibre normal [voy a libro original copia copia clienta al
nuevo ]
Windows(llibremestre).Activate
Sheets("copia client").Select
Sheets("copia client").Move Before:=Workbooks(llibrenou).Sheets(1)
' crear nom llibre nou [genero nombre libro nuevo]
Sheets("copia comanda otto").Select
venedor = Range("P69")
' ejem tenia problemas con los valores i me puse los msgbox para
verlos ;-)
MsgBox ("hola")
MsgBox (venedor)
client = Range("F12")
MsgBox (client)
data = Format(Range("C68"), "yy-mm-dd")
MsgBox (data)
ruta = "C:\provesexcel\"
llibrenou = ruta & data & venedor & client & ".xls"
MsgBox (llibrenou)
ActiveWorkbook.SaveAs Filename:=llibrenou
'
'Anotar llibre registre [anotacion libro registro]
'
'obre llibre [ abro libro]
Workbooks.Open ("C:\provesexcel\proves2.xls")
Sheets("Hoja1").Select
ActiveSheet.Range("a1").Select
' va al ultim registre [voy al ultimo registro]
Selection.End(xlDown).Select
' anoto en linea nueva valores
With ActiveCell
.Offset(1, 0).Value = Hoy()
.Offset(1, 1).Value = venedor
.Offset(1, 2).Value = client
.Offset(1, 4).Value = llibrenou
End With
'
' [aqui falta codigo de cerrar libros pq ja esta hecho lo que queria]
'

End Sub

Con este codigo consigo lo que queria, faltan detalles y añadir algun valor
al libro de registro.

En lo referenta a los detalles :
1.- Al ejecutar la macro "veo" el proceso de crear las hojas el libro, los
movimientos, etc .. de que maneras lo puedo evitar ?.

2.- Estoy convencido que el codigo es mejorable. Alguna idea de optimización?.


Finalmente: Hector: Muchas gracias por tu ayuda, tus aportaciones me han
servido de guia, como a tantos otros de este grupo. Gracias (otra vez).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida