Error de compilacion

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Error de compilacion

Notapor Fco. Rubio » 30 Ago 2006 21:44

Saludos a todas las personas que participan en este foro y gracias por sus aportaciones.

El problema que tengo es el siguiente, tengo una hoja con dos macros, una para filtrar y otra que selecciona la última celda en blanco de la lista para poder introducir datos, creo que el fallo esta en la segunda ya que si quito la fila vacia que utilizo para filtrar funcionan bien. Las macros se ejecutan al seleccionar las hojas.

Gracias adelantadas a todo aquel que pueda dar la solución.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Fco. Rubio
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 Nov 2004 15:58
Ubicación: ESPAí‘A

Re: Error de compilacion

Notapor galileogali » 31 Ago 2006 00:01

Francamente no he tenido tiempo de revisar tu código, pero por ahora proba haciendo esto

en WORKSHEET_ACTIVATE

ANTES DE


NEXTROW= Application...........

Pon esto

Dim NEXTROW as Long

es decir que quede:

Private worksheet_activate( )

Dim NEXTROW as Long

NEXTROW= Application...........

Si eso no resuelve, habra que reviar el codigo...


GALI
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Notapor opermty » 31 Ago 2006 00:16

Que es lo que deseas hacer con esa macro ?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Notapor opermty » 31 Ago 2006 00:24

No se si este codigo te sea util

Sub FindLastRow()
Dim LastRow As Long
If WorksheetFunction.CountA(Cells) > 0 Then
'Search for any entry, by searching backwards by Rows.
LastRow = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
MsgBox LastRow
End If
End Sub

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: Error de compilacion

Notapor Fco. Rubio » 31 Ago 2006 13:50

Saludos galileogali y opermty, gracias por sus respetivas aportaciones, probé las dos y después de varias pruebas opte por modificar la de galileogali (el profe.. como le suelen llamar en el foro, y con mucha razón), y me dio resultado, el cambio fue:
En la hoja Clientes, después de CountA(Range("A:A")) + 1.... , borre el 1 y puse 3, y en la hoja Artí­culos borre el 1 y puse 2, y funciona perfectamente.

opermt, doy respuesta a tu pregunta, Que es lo que deseas hacer con esa macro ?. Lo que necesitaba, era que cuando tenga que dar de alta a un cliente o artí­culo el cursor se situé en la última celda vací­a de la columna A, y si tenia que filtrar datos poder filtrar la lista sin utilizar filtro avanzado, como veras el la fila 4 esta activado inmovilizar secciones.

mi inopia hará que os necesite otra vez, así­ que GRACIAS
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Fco. Rubio
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 Nov 2004 15:58
Ubicación: ESPAí‘A

Re: Error de compilacion

Notapor KL » 31 Ago 2006 14:08

Hola chicos,

Si se admiten optimizaciones/depuraciones del codigo...

Option Explicit

Código: Seleccionar todo
Private Sub Worksheet_Change(ByVal Target As Range)
    If intesect(Target, [A2:D2]) Is Nothing Then Exit Sub
    Range("ListClientes").AdvancedFilter _
            Action:=xlFilterInPlace, _
            CriteriaRange:=Range("criterio")
End Sub

Private Sub Worksheet_Activate()
    Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Error de compilacion

Notapor Fco. Rubio » 31 Ago 2006 14:34

opermt, mil disculpas, con razón no entendí­as lo que deseaba hacer con la macro, yo solo mande un archivo excesivamente reducido.
Te enví­o el archivo original, pero con un recorte importante en Clientes y Artí­culos.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Fco. Rubio
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 Nov 2004 15:58
Ubicación: ESPAí‘A

Re: Error de compilacion

Notapor Fco. Rubio » 31 Ago 2006 14:44

saludos KL, mientras le preparaba el adjunto a opermty, pusiste un CODE, gracias, ahora el tiempo no me da para más, las obligaciones llaman, pero que te quepa duda que sera revisado y provado oportunamente.

Saludos.

P.D. Sí­ se admiten todo tipo de aportaciones y sugerencias.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Fco. Rubio
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 Nov 2004 15:58
Ubicación: ESPAí‘A

Re: Error de compilacion

Notapor KL » 31 Ago 2006 14:53

Hola de nuevo,

Depurando lo depurado...

KL";p="30726 escribió:
Código: Seleccionar todo
Private Sub Worksheet_Change(ByVal Target As Range)
    If intesect(Target, [A2:D2]) Is Nothing Then Exit Sub
    Range("ListClientes").AdvancedFilter _
            Action:=xlFilterInPlace, _
            CriteriaRange:=Range("criterio")
End Sub

Private Sub Worksheet_Activate()
    Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
End Sub


En la palabra Intersect falta la "r" y me olvide de una celda en el rango de criterios :shock: El codigo deberia ser asi:

Código: Seleccionar todo
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Union([A2:D2], [F2])) Is Nothing Then Exit Sub
    Range("ListClientes").AdvancedFilter _
            Action:=xlFilterInPlace, _
            CriteriaRange:=Range("criterio")
End Sub

Private Sub Worksheet_Activate()
    Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Error de compilacion

Notapor Fco. Rubio » 03 Sep 2006 19:59

Hola KL.

Lo siento, depués de probar tu code y trabajar con el no le pude sacar partido, de todas formas agradezco tu colaboración. El problema que yo tenia lo tengo resuelto gracias a la aportación del Sr. galileogali (El profe...).

Recibe un cordial saludo.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Fco. Rubio
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 Nov 2004 15:58
Ubicación: ESPAí‘A


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 8 invitados