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

#11 Jonathan Milla
19/04/2006 - 15:27 | Informe spam
Funciona parcialmente Hector ya que no he sido explicito
el grupo de datos b17:b66 a veces no contienen datos o
mejor dicho los datos pueden estar en unas y en otras no
creo que por ahi va que seleccione hasta la ultima que contenga
dato, ademas los datos son de texto y numericos, no alfanumericos
si no que unas celdas estan intercaladas aunque les puse
las comillas cuando no existe dato por medio de la formula o
condicionante (=si...), habalndo de la hoja donde pega estos datos
realmente ahi es donde me interesa hacer la suma de los datos
pegados, pero como he comentado me cuenta los valores "VACIOS"
ya que los toma como no vacios porque en la formula pasada
que es como pega todos los datos los cuenta, habra alguna formula para
hacer el conteo de a1:a2000 por ejemplo pero que cuente las que tengan
valor, ya probe la de CONTARA pero me cuenta las "VACIAS" y probe
con el de DESREF y tampoco, no se si necesitas algun otro dato.
Gracias de nuevo



"Héctor Miguel" escribió en el mensaje
news:
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
#12 Héctor Miguel
20/04/2006 - 03:10 | Informe spam
hola, Jonathan !

Funciona parcialmente... ya que... el grupo de datos b17:b66 a veces no contienen datos o... pueden estar en unas y en otras no
... ademas los datos son de texto y numericos... les puse las comillas cuando no existe dato por medio de la formula... (=si...)
... la hoja donde pega estos datos... es donde me interesa hacer la suma de los datos pegados
... pero... me cuenta los valores "VACIOS"... los toma como no vacios porque en la formula... pega todos los datos los cuenta
habra alguna formula para hacer el conteo de a1:a2000 por ejemplo pero que cuente las que tengan valor
ya probe la de CONTARA pero me cuenta las "VACIAS" y probe con el de DESREF y tampoco [...]



si lo [unico] que necesitas es 'contar' las celdas que tengan algun valor 'real' [excluyendo las vacias por formula -> ""]...
op1: =contara(a1:a2000)-contar.si(a1:a2000,"")
op2: =contara(a1:a2000)-contar.blanco(a1:a2000)
op3: =sumaproducto(--(largo(a1:a2000)>0))

notas: SI 'el caso' es que existen celdas EFECTIVAMENTE 'vacias' dentro del rango de busqueda [a1:a2000]...
-> las opciones 1 y 2 pudieran 'verse confundidas' -> Y RESTAR las 'vacias efectivas' EN AMBAS 'cuentas' [es decir]...
a) NO seran 'consideradas' por la funcion contara(...) -> que solo toma en cuenta las que 'tenga algo' [incluyendo ""]
b) SI seran 'descontadas' por la funcion contar.si(...,"") o contar.blanco(...)
-> es probable que te resulte mas... 'confiable' el contar 'el largo' de las celdas en el rango especificado [la opcion 3] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#13 Jonathan Milla
20/04/2006 - 10:27 | Informe spam
Gracias Hector funciono la opcion 3, con eso me doy por super
bien servido.


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

Funciona parcialmente... ya que... el grupo de datos b17:b66 a veces no
contienen datos o... pueden estar en unas y en otras no
... ademas los datos son de texto y numericos... les puse las comillas
cuando no existe dato por medio de la formula... (=si...)
... la hoja donde pega estos datos... es donde me interesa hacer la suma
de los datos pegados
... pero... me cuenta los valores "VACIOS"... los toma como no vacios
porque en la formula... pega todos los datos los cuenta
habra alguna formula para hacer el conteo de a1:a2000 por ejemplo pero
que cuente las que tengan valor
ya probe la de CONTARA pero me cuenta las "VACIAS" y probe con el de
DESREF y tampoco [...]



si lo [unico] que necesitas es 'contar' las celdas que tengan algun valor
'real' [excluyendo las vacias por formula -> ""]...
op1: =contara(a1:a2000)-contar.si(a1:a2000,"")
op2: =contara(a1:a2000)-contar.blanco(a1:a2000)
op3: =sumaproducto(--(largo(a1:a2000)>0))

notas: SI 'el caso' es que existen celdas EFECTIVAMENTE 'vacias' dentro
del rango de busqueda [a1:a2000]...
-> las opciones 1 y 2 pudieran 'verse confundidas' -> Y RESTAR las 'vacias
efectivas' EN AMBAS 'cuentas' [es decir]...
a) NO seran 'consideradas' por la funcion contara(...) -> que solo toma
en cuenta las que 'tenga algo' [incluyendo ""]
b) SI seran 'descontadas' por la funcion contar.si(...,"") o
contar.blanco(...)
-> es probable que te resulte mas... 'confiable' el contar 'el largo' de
las celdas en el rango especificado [la opcion 3] -?-

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

Respuesta Responder a este mensaje
#14 Jonathan Milla
21/04/2006 - 15:02 | Informe spam
Una pregunta Hector, dentro de la formula existe el Offset,
para que funciona?
Gracias.
"Héctor Miguel" escribió en el mensaje
news:
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
#15 Héctor Miguel
21/04/2006 - 20:33 | Informe spam
hola, Jonathan !

... pregunta... el Offset, para que funciona?



'Offset' [en vba] -> desplaza la referencia del objeto rango al que se le aplica dicha propiedad [p.e.]
1) Range("a65536").End(xlUp)
esta haciendo referencia a la ultima fila que tiene datos en la columna 'A' de la hoja activa
2) Range("a65536").End(xlUp).Offset(1)
'mueve' la referencia una fila 'abajo' [es decir... la primer celda 'vacia' -> despues de la ultima 'ocupada']
3) Range("b5:c7").Offset(5, 3)
hace referencia al rango 'B5:C7' -> desplazado 5 filas y 3 columnas
[es decir] la 'nueva' referencia estara 'apuntando' al rango 'E10:F12'

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida