Error al momento de pegar

13/04/2006 - 16:27 por Jonathan Milla | Informe spam
Tengo un grupo de datos el cual los copio de un archivo y los pego en otro

pero cuando pongo este codigo en el libro, y a la vez otros que estan mas
adelante

Option Explicit
Private Sub Workbook_Open()
'Quita los colores a los hyperlinks
Sheets("Inicio").Select
ActiveSheet.Unprotect ("password")
With ActiveWorkbook.Styles("Hyperlink")
.IncludeNumber = False
.IncludeFont = False
.IncludeAlignment = False
.IncludeBorder = False
.IncludePatterns = False
.IncludeProtection = False
End With
Selection.Style = "Hyperlink"
ChDir "C:\Servicio Medico"
Application.MoveAfterReturnDirection = xlToRight
Excel.CommandBars("Worksheet Menu Bar").Enabled = False
With Application
.DisplayFullScreen = True
.DisplayAlerts = False
.DisplayScrollBars = False
End With
With ActiveWindow
.DisplayHeadings = False
End With
ActiveSheet.Protect ("password")
welcome.Show
End Sub



LOS DEMAS DEL LIBRO EN GENERAL

Private Sub Workbook_Activate()
activas
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
antesdecerrar
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
activas
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
activas
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)
ventananoactiva
End Sub

Y LOS MODULOS

Option Explicit
Sub antesdecerrar()
Application.MoveAfterReturnDirection = xlDown
' Sheets("inicio").Select
Application.DisplayFullScreen = False
Excel.CommandBars("Worksheet Menu Bar").Enabled = True
Application.DisplayFormulaBar = True
Application.DisplayScrollBars = True
Application.CommandBars("Formatting").Visible = True
With ActiveWindow
.DisplayHeadings = True
End With
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Worksheet Menu Bar").Reset
ActiveWindow.Close savechanges:=False
End Sub
Sub activas()
Application.CommandBars("Full Screen").Visible = False
Application.DisplayFullScreen = True
Excel.CommandBars("Worksheet Menu Bar").Enabled = False
Application.DisplayFormulaBar = False
Application.DisplayScrollBars = False
With ActiveWindow
.DisplayHeadings = False
End With
End Sub
Sub ventananoactiva()
Application.CommandBars("Worksheet Menu Bar").Reset
Excel.CommandBars("Worksheet Menu Bar").Enabled = True
Application.DisplayFullScreen = False
Application.DisplayScrollBars = True
Application.DisplayFormulaBar = True
With ActiveWindow
.DisplayHeadings = True
End With
Application.CommandBars("Standard").Visible = True
End Sub
Sub


NO SE SI SEA EL PASSWORD O COMO ESTOY MANEJANDO
LAS VENTANAS, POR QUE AL PARECER PIERDE LO QUE VA A PEGAR
AQUI PONGO EL CODIGO DE COPIAR Y PEGAR

Sub addinformes()
Application.ScreenUpdating = False
'Ingresa al informe los datos a guardar del paciente
Dim mesinforme As String
mesinforme = Worksheets("Medico").Range("clave").Value & ".xls"
'=Checa si el libro esta abierto o cerrado
Dim sLibro As String, oLibro As Workbook
sLibro = "C:\Servicio Medico\Informes\" & mesinforme
On Error Resume Next
Set oLibro = Workbooks(Dir(sLibro))
On Error GoTo 0
If oLibro Is Nothing Then Set oLibro = Workbooks.Open(sLibro)
'Aqui el codigo
Windows("Panel Gral.xls").Activate
Sheets("Setup").Select
Dim NextRow As Long
Range("B17:B66").Select
Selection.Copy
Windows(mesinforme).Activate
NextRow = Worksheets("Informe").Range("A65536").End(xlUp).Row + 1
Range("A" & NextRow).Select
'= Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=True
'= 'AQUI ES DONDE ME MARCA EL ERROR, YA NO LO QUIERE PEGAR

ActiveWindow.Close savechanges:=True
Windows("Panel Gral.xls").Activate
Sheets("Paciente").Select
Range("Z4").Select
Application.ScreenUpdating = True
End Sub

LES AGRADECERE ME COMENTEN AL RESPECTO.
GRACIAS.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
13/04/2006 - 19:52 | Informe spam
hola, Jonathan !

'Aqui el codigo
Windows("Panel Gral.xls").Activate
Sheets("Setup").Select
Dim NextRow As Long
Range("B17:B66").Select
Selection.Copy
Windows(mesinforme).Activate
NextRow = Worksheets("Informe").Range("A65536").End(xlUp).Row + 1
Range("A" & NextRow).Select
'=> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=True
'=> 'AQUI ES DONDE ME MARCA EL ERROR, YA NO LO QUIERE PEGAR



del codigo que expones... [creo que] en el 'extracto' anterior... -> ES donde [pudiera estar la causa del error] -?-
PERO... mientras comentas 'cual' es el error que 'salta' [numero y/o mensaje]... -???-

una -posible- situacion es si la celda [Range("A" & NextRow)] donde se intenta hacer el 'pegado especial'
-> fuera una celda 'combinada' -?-
-> fuera [ya] parte de alguna 'matriz' -?-

comentas [si hubiera] algun detalle mas... 'significativo' ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Héctor Miguel
13/04/2006 - 20:00 | Informe spam
hola [de nuevo], Jonathan !

[fuera de topico]

espero que no lo tomes a mal... [pero considero que]...

-> NO es 'correcto' que postees la misma consulta... en mas de un grupo... de manera aislada/indistinta/aparte/... :-((
las respuestas que 'recibas' en uno... NO 'beneficiaran' a los lectores 'del otro' grupo [o grupos] :-\
y pudiera resultar en un 'desgaste' innecesario de los recursos de que dispones [gente ayudando a gente] :D

-> si consideras que son varios los grupos 'afectados/interesados/aplicables/...
prueba a INCLUIRLOS en el mismo mensaje [lo que se conoce como 'multi-posting']
y NO 'sembrando' la misma consulta en varios [lo que se conoce como 'cross-posting'] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#3 Jonathan Milla
14/04/2006 - 18:53 | Informe spam
Gracias Hector, quizas consideré que como interviene excel
y es codigo aplicaria, y realmente no se hacer multiposting
pero no volvera a suceder, volviendo a mi problema,
el error que muestra es el siguiente
"Se ha producido el error '1004' en tiempo de ejecución:
Error en el método PasteSpecial de la clase Range."

Como comente en el mensaje original creo que se
origina del siguente codigo, no se si no mantiene en
memoria lo que va a copiar y como le digo que abra el
archivo, se pase al que va a copiar y vuelva a donde lo va a pegar
creo que lo siguiente es lo que lo genera, ya que se lo quito y
lo hace bien, me gustaria saber cual codigo es, no se si te pasaba
que copiabas y querias pegar en otro archivo y se perdia el copiado.
El codigo de copiar y pegar esta en el archivo original.


Sub ventananoactiva()
Application.CommandBars("Worksheet Menu Bar").Reset
Excel.CommandBars("Worksheet Menu Bar").Enabled = True
Application.DisplayFullScreen = False
Application.DisplayScrollBars = True
Application.DisplayFormulaBar = True
With ActiveWindow
.DisplayHeadings = True
End With
Application.CommandBars("Standard").Visible = True
End Sub


Gracias de nuevo.


"Héctor Miguel" escribió en el mensaje
news:
hola [de nuevo], Jonathan !

[fuera de topico]

espero que no lo tomes a mal... [pero considero que]...

-> NO es 'correcto' que postees la misma consulta... en mas de un grupo...
de manera aislada/indistinta/aparte/... :-((
las respuestas que 'recibas' en uno... NO 'beneficiaran' a los lectores
'del otro' grupo [o grupos] :-\
y pudiera resultar en un 'desgaste' innecesario de los recursos de que
dispones [gente ayudando a gente] :D

-> si consideras que son varios los grupos
'afectados/interesados/aplicables/...
prueba a INCLUIRLOS en el mismo mensaje [lo que se conoce como
'multi-posting']
y NO 'sembrando' la misma consulta en varios [lo que se conoce como
'cross-posting'] ;)

saludos,
hector.


Respuesta Responder a este mensaje
#4 Héctor Miguel
15/04/2006 - 03:11 | Informe spam
hola, Jonathan !

... el error que muestra es el siguiente
"Se ha producido el error '1004' en tiempo de ejecucion: Error en el metodo PasteSpecial de la clase Range."
... creo que se origina del siguente codigo, no se si no mantiene en memoria lo que va a copiar
... le digo que abra el archivo, se pase al que va a copiar y vuelva a donde lo va a pegar
... se lo quito y lo hace bien, me gustaria saber cual codigo es
El codigo de copiar y pegar esta en el archivo original.
Sub ventananoactiva()
Application.CommandBars("Worksheet Menu Bar").Reset
Excel.CommandBars("Worksheet Menu Bar").Enabled = True
Application.DisplayFullScreen = False
Application.DisplayScrollBars = True
Application.DisplayFormulaBar = True
With ActiveWindow
.DisplayHeadings = True
End With
Application.CommandBars("Standard").Visible = True
End Sub



tienes razon :D [me falto un analisis mas 'detallado' de los codigos expuestos]

1) toda 'accion' [por codigo] que modifique propiedades a los objetos libro/hoja/rango/ventana/...
-> ocasiona un 'vaciado' de la pila de niveles para des-hacer [undo, ctrl+Z], es decir... vacia el portapapeles
[como en el caso del '.DisplayHeadings'] luego de lo cual... ya no 'queda nada'.. en el portapapeles [que pegar] :(

2) toma en cuenta que -generalmente- NO es necesario andar 'danzando' con una des/re/activacion de libros/hojas/ventanas...
para usar sus metodos y propiedades, sino que puedes [p.e.] copiar entre ellos de manera directa
con lo cual, evitas que se disparen eventos con codigos 'vaciadores' [y de pasadita, agilizas la ejecucion del codigo]
-> p.e. las instrucciones que usas para copiar, puedes sustituirlas por algo +/- como lo siguiente:
Workbooks("Panel Gral.xls").Worksheets("Setup").Range("b17:b66").Copy
oLibro.Worksheets("Informe").Range("a65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Jonathan Milla
18/04/2006 - 03:51 | Informe spam
Hola Miguel, muchas gracias te lo agradezco, esa es la parte en
que batallo mucho, el resumen del codigo y eso me provoca
como en este caso problemas.


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

... el error que muestra es el siguiente
"Se ha producido el error '1004' en tiempo de ejecucion: Error en el
metodo PasteSpecial de la clase Range."
... creo que se origina del siguente codigo, no se si no mantiene en
memoria lo que va a copiar
... le digo que abra el archivo, se pase al que va a copiar y vuelva a
donde lo va a pegar
... se lo quito y lo hace bien, me gustaria saber cual codigo es
El codigo de copiar y pegar esta en el archivo original.
Sub ventananoactiva()
Application.CommandBars("Worksheet Menu Bar").Reset
Excel.CommandBars("Worksheet Menu Bar").Enabled = True
Application.DisplayFullScreen = False
Application.DisplayScrollBars = True
Application.DisplayFormulaBar = True
With ActiveWindow
.DisplayHeadings = True
End With
Application.CommandBars("Standard").Visible = True
End Sub



tienes razon :D [me falto un analisis mas 'detallado' de los codigos
expuestos]

1) toda 'accion' [por codigo] que modifique propiedades a los objetos
libro/hoja/rango/ventana/...
-> ocasiona un 'vaciado' de la pila de niveles para des-hacer [undo,
ctrl+Z], es decir... vacia el portapapeles
[como en el caso del '.DisplayHeadings'] luego de lo cual... ya no
'queda nada'.. en el portapapeles [que pegar] :(

2) toma en cuenta que -generalmente- NO es necesario andar 'danzando' con
una des/re/activacion de libros/hojas/ventanas...
para usar sus metodos y propiedades, sino que puedes [p.e.] copiar
entre ellos de manera directa
con lo cual, evitas que se disparen eventos con codigos 'vaciadores' [y
de pasadita, agilizas la ejecucion del codigo]
-> p.e. las instrucciones que usas para copiar, puedes sustituirlas por
algo +/- como lo siguiente:
Workbooks("Panel Gral.xls").Worksheets("Setup").Range("b17:b66").Copy

oLibro.Worksheets("Informe").Range("a65536").End(xlUp).Offset(1).PasteSpecial
xlPasteValues
Application.CutCopyMode = False

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


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida