Macro no funciona

04/10/2005 - 23:49 por Javichu | Informe spam
Tengo asignada una macro a un botón, que funciona perfectamente siempr
y cuando no bloquee la hoja. En el momento que bloqueo la hoja
presiono el botón correspondiente aparece el siguiente mensaje:

"Se ha producido el error 1004 en tiempo de ejecución:
Error en el método Sort de la clase Range"

Os adjunto el código que tengo escrito y que se ejecuta al presionar e
botón correspondiente:

Private Sub CommandButton1_Click()
Range("C100:D117").Select
Selection.Sort Key1:=Range("C86"), Order1:=xlAscending
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
_
DataOption1:=xlSortNormal
Range("A2").Select
End Sub

Si alguien sabe como puedo solucionarlo le pido por favor que m
ayude.
Gracias por vuestro tiempo y vuestro interés. Un saludo

Javich
Javichu's Profile: http://www.msusenet.com/member.php?useridB9
View this thread: http://www.msusenet.com/t-187109914

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/10/2005 - 06:35 | Informe spam
hola, Javichu !

... una macro... que funciona perfectamente siemprey cuando no bloquee la hoja
... bloqueo la hoja y... aparece el siguiente mensaje:
"Se ha producido el error 1004 en tiempo de ejecucion: Error en el metodo Sort de la clase Range" [...]



si necesitas que la proteccion NO 'afecte' a tus macros ->SIN tener que [des/re]proteger la hoja<-
puedes usar la instruccion de 'solo interfase de usuario' [p.e.]

1) en excel 97 y 2000 NO necesitas 'repetir' el password <= es 'suficiente' con poner:
en el modulo de codigo del libro ==Private Sub Workbook_Open()
Worksheets("Hoja1").Protect UserInterfaceOnly:=True
End Sub

2) a partir de excel 2002 [xp] SI es requisito 'repetir' el password :-( < en el modulo de codigo del libro ==Private Sub Workbook_Open()
Worksheets("Hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub
[practicamente] TODO lo que 'hagas por codigo'... pasara 'sin problemas'

saludos,
hector.
Respuesta Responder a este mensaje
#2 Javichu
05/10/2005 - 20:34 | Informe spam
Hola Hector Miguel ! Gracias por contestarme y por vuestro tiempo.
Dispongo de Office 2003, y supongo que "el modulo de codigo del libro
te referiras a "ThisWorkBook" (disculpar mi ignorancia...).
He colocado el código correspondiente (el de versión igual o superior
2002) y ésto sigue igual.
Os expongo a continuación el código que he introducido:

Private Sub Workbook_Open()
Worksheets("Hoja de Diseño").Protect _
Password:="1", _
UserInterfaceOnly:=True
End Sub

He probado a poner "Hoja1" en vez de "Hoja de Diseño" pero sigue igual
También he probado a eliminar las comillas y tal, pero sigue igual.
Me sigue marcando en amarillo las siguientes líneas:

Selection.Sort Key1:=Range("C100:D118").Value, Order1:=xlAscending
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
_
DataOption1:=xlSortNormal

En la línea de "DataOption1:=xlSortNormal" aparece marcada delante co
una flecha amarilla.

He probado a borrarla y después aparece un error (ERROR DE SINTAXSIS)

Casi no me creo que no funcione el código que me has dado, porque má
chungo (creo yo...) era otra pregunta que lance al foro, y me distei
la solución resolviendo a la primera aquel problema, pero esto empiez
a verlo ya negro...
Gracias por vuestro tiempo y colaboración

Javich
Javichu's Profile: http://www.msusenet.com/member.php?useridB9
View this thread: http://www.msusenet.com/t-187109914
Respuesta Responder a este mensaje
#3 vm_tapia
05/10/2005 - 23:36 | Informe spam
al principio de tu macro utiliza lo siguiente:

hoja1.unprotect("tupassword")

y antes del final:

hoja1.protect("tupassword")

donde hoja1 es la posicion relativa de la hoja en cuestion y "tupassword" es
obviamente tu clave para proteger y/o desproteger tu hoja.


"Javichu" wrote:


Tengo asignada una macro a un botón, que funciona perfectamente siempre
y cuando no bloquee la hoja. En el momento que bloqueo la hoja y
presiono el botón correspondiente aparece el siguiente mensaje:

"Se ha producido el error 1004 en tiempo de ejecución:
Error en el método Sort de la clase Range"

Os adjunto el código que tengo escrito y que se ejecuta al presionar el
botón correspondiente:

Private Sub CommandButton1_Click()
Range("C100:D117").Select
Selection.Sort Key1:=Range("C86"), Order1:=xlAscending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
Range("A2").Select
End Sub

Si alguien sabe como puedo solucionarlo le pido por favor que me
ayude.
Gracias por vuestro tiempo y vuestro interés. Un saludo.


Javichu

Javichu's Profile: http://www.msusenet.com/member.php?useridB93
View this thread: http://www.msusenet.com/t-1871099142


Respuesta Responder a este mensaje
#4 Héctor Miguel
06/10/2005 - 01:52 | Informe spam
hola, Javichu !

... el codigo... (el de version igual o superior a 2002) y... sigue igual... he introducido:
Private Sub Workbook_Open()
Worksheets("Hoja de Diseño").Protect _
Password:="1", _
UserInterfaceOnly:=True
End Sub
... sigue marcando en amarillo las siguientes lineas:
Selection.Sort Key1:=Range("C100:D118").Value, Order1:=xlAscending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom,
_
DataOption1:=xlSortNormal
... "DataOption1:=xlSortNormal" aparece marcada... con una flecha amarilla.
... borrarla... aparece un error (ERROR DE SINTAXIS) [...]



[seguramente] se debe a que algunos lectores de noticias 'rompen' las lineas de texto en determinado numero de caracteres :))
y al hacer un copy/paste... ya no 'quedan en su lugar' [me explico]...
-> nota que un espacio 'seguido' por un guion-bajo [al final de una linea de codigo]...
'significa' [para vba] que la siguiente linea 'es parte de' la misma instruccion ;)

suponiendo que ya has seleccionado previamente el rango a ordenar [segun tu mensaje y el anterior]... preuba con...
[... otras lineas de tu codigo ...]
Selection.Sort _
Key1=Range("c100"), _
Order1:=xlAscending, _
Header:=xlGuess
[... aqui el resto de tus lineas ...]

la instruccion anterior [en una sola linea] quedaria 'normalmente' +/- como sigue...
Selection.Sort Key1:=Range("c100"), Order1:=xlAscending, Header:=xlGuess, <las demas opciones son 'por omision'> :))

saludos,
hector.
Respuesta Responder a este mensaje
#5 Javichu
19/10/2005 - 22:28 | Informe spam
Gracias por vuestra colaboración. Ya lo he resuelto, sin vuestra ayud
habría sido imposible. Gracias

Javich
Javichu's Profile: http://www.msusenet.com/member.php?useridB9
View this thread: http://www.msusenet.com/t-187109914
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida