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

#6 Jonathan Milla
18/04/2006 - 14:18 | Informe spam
Hola de nuevo, tengo un problema que a la hora de copiar
el grupo de celdas ejemplo a1:c5 hacia otro archivo, pegando
estos datos en la ultima celda vacia, me los pone siempre despues
de la ultima celda que copio, por ejemplo copia los primeros datos
de a1:c5 en otro que empieza tambien en a1, y si en la copia solo
se escribieron datos hasta a3 osea a1:c3, al momento de pegarlos
los datos o celdas vacias tambien de alguna forma toman algun
formato y la proxima vez que copia de nuevo de a1:c5, los pegara
en el otro archivo no en a4, si no en a6 ya que de alguna forma
cree que la celda vacia es a6, aunque desde a4 este vacia, espero
haberme explicado, modifique un poco el codigo para ver si era eso

Workbooks("Panel Gral.xls").Worksheets("Setup").Range("B75:E82").Copy
oLibro.Worksheets("Listado").Range("a65536").End(xlUp).Offset(1).PasteSpecial
xlPasteValues, Operation:=xlNone, SkipBlanks:=False

que sera miguel?

"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
#7 Jonathan Milla
18/04/2006 - 14:21 | Informe spam
Se me olvido decirte que en las celdas para copiar
osea de a1:c5, tienen formulas, aunque en el metodo
de pegar se supone que son solo valores.

Gracias de nuevo.

"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
#8 Héctor Miguel
18/04/2006 - 20:48 | Informe spam
hola, Jonathan !

Se me olvido decirte que en las celdas para copiar osea de a1:c5, tienen formulas
aunque en el metodode pegar se supone que son solo valores...



si 'las formulas' que mencionas son del tipo: =si(condicion,algun_valor,"")
[es decir... en 'algun momento' estan depositando una cadena de texto vacia]...
NO son celdas [realmente]... 'vacias' sino que [efectivamente] 'tienen' -algun- 'valor' :-((

comentas [si hubiera] algun detalle adicional o diferente ?
saludos,
hector.
Respuesta Responder a este mensaje
#9 Jonathan Milla
18/04/2006 - 22:34 | Informe spam
Efectivamente, cuando no encuentra un valor en la condicion
pongo "" las comillas y me imagino que eso afecta, como puedo
hacer para que no sea de ese modo...


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

Se me olvido decirte que en las celdas para copiar osea de a1:c5, tienen
formulas
aunque en el metodode pegar se supone que son solo valores...



si 'las formulas' que mencionas son del tipo:
=si(condicion,algun_valor,"")
[es decir... en 'algun momento' estan depositando una cadena de texto
vacia]...
NO son celdas [realmente]... 'vacias' sino que [efectivamente]
'tienen' -algun- 'valor' :-((

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


Respuesta Responder a este mensaje
#10 Héctor Miguel
19/04/2006 - 09:52 | Informe spam
hola, Jonathan !

Efectivamente, cuando no encuentra un valor en la condicion pongo "" las comillas
y me imagino que eso afecta, como puedo hacer para que no sea de ese modo...



op1: si a partir de la primera 'aparicion' de una celda [semi-vacia] con comillas... las siguientes son tambien 'encomilladas'
-> definir un nombre con referencia a rangos 'dinamicos' [p.e.]...
si suponemos que 'el rango' es 'B17:B66' de tu hoja nombrada 'setup' [segun tus correos anteriores]...
Y que [ademas] las celdas que NO queden 'falseadas' con las comillas SON valores numericos... <= OJO
a) define un nombre [p.e. 'efectivos'] y usa una formula +/- como la siguiente:
=desref(setup!$b$17,,,contar(setup!$b$17:$b$66))
[solo considera que yo uso la coma en la separacion de los argumentos] :D
b) cambia las instrucciones para el copiado [p.e.]
de:___
Workbooks("Panel Gral.xls").Worksheets("Setup").Range("b17:b66").Copy
oLibro.Worksheets("Informe").Range("a65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
a:___
Workbooks("Panel Gral.xls").Worksheets("Setup").Range("efectivos").Copy
oLibro.Worksheets("Informe").Range("a65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False

[seguramente] habra otras alternativas [como 'pasar' por autofiltros, etc.] para faltaria conocer detalles adicionales :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida