Saltar al contenido

error 28


Invitado Juan Pelfort

Recommended Posts

Invitado Juan Pelfort

Hola, tengo este pequeño código, pero... al ejecutarlo se me queda el puntero del ratón (en círculo)girando

y tengo que salir con CERRAR SESIÓN.

Podéis ayudarme de forma muy sencilla ? mi código es este:

Private Sub WorkSheet_Change(ByVal Target As Excel.Range)
If Range("$L$7").Value = "1" Then
Call Macro18
End If
End Sub
Sub Macro18()
Application.ScreenUpdating = False
Dim Str1 As String
Dim Str2 As String
Dim resultado1 As Long
Str1 = Range("C8")
Str2 = Range("L9")
resultado1 = StrComp(Str1, Str2, vbTextCompare)
Range("N9") = resultado1 + 1
Sheets("Hoja1").Select
Application.ScreenUpdating = True
Range("A1").Select
End Sub
 

Enlace a comentario
Compartir con otras webs

Hola

En general no es conveniente usar "Select" pero yendo a tu dilema, probablemente al insertar un valor en N9 se vuelve a activar el evento "Change" entrando en un bucle "infinito". Cambia así tu macro:

Sub Macro18()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Str1 As String
Dim Str2 As String
Dim resultado1 As Long
Str1 = Range("C8")
Str2 = Range("L9")
resultado1 = StrComp(Str1, Str2, vbTextCompare)
Range("N9") = resultado1 + 1
Sheets("Hoja1").Select
Application.ScreenUpdating = True
Range("A1").Select
Application.EnableEvents = True
End Sub

Comentas

Abraham Valencia

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Gracias, ahora tengo esto, Y ME FUNCIONA, pero...me sale Error 28 Espacio de pila insuficiente. Pero la macro funciona, solo que me sale el letrero (msgbox) y hasta que no lo pulso no se va, pero la macro funciona. Te envío el código:

Private Sub WorkSheet_Change(ByVal Target As Excel.Range)
If Range("$L$7").Value = "1" Then
Macro18
End If
End Sub
Sub Macro18()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Str1 As String
Dim Str2 As String
Dim resultado1 As Long
Str1 = Range("C8")
Str2 = Range("L9")
resultado1 = StrComp(Str1, Str2, vbTextCompare)
Range("N9") = resultado1 + 1
Sheets("Hoja1").Select
Application.ScreenUpdating = True
Range("a1").Select
Application.EnableEvents = True
If Range("N9").Value = "1" Then
macro1
End If
End Sub

Sub macro1()
Range("J20").Value = "Debo poner esto funciona"
End Sub

Enlace a comentario
Compartir con otras webs

En lugar de esto:

...
...
Application.EnableEvents = True
If Range("N9").Value = "1" Then
macro1
End If
End Sub

debe poner esto:

...
...
If Range("N9").Value = "1" Then
macro1
End If
Application.EnableEvents = True
End Sub

 

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 93 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • No va a ser necesario distinguir el tipo de proceso entre 1 y 2. Revisa el adjunto a ver si es eso lo que quieres. Function MediaAttention(mImp As Range, _ q25 As Range, q50 As Range, _ Optional q75 As Range, _ Optional q100 As Range) As Double '-- Opción 1 If q75 Is Nothing And q100 Is Nothing Then MediaAttention = q25 / q50 Exit Function End If '-- Opción 2 MediaAttention = ((0.25 * (q25 - q50)) / mImp) + _ ((0.5 * (q50 - q75)) / mImp) + _ ((0.75 * (q75 - q100)) / mImp) + _ (q100 / mImp) End Function   Media Attention Formula 1.2.xlsb
    • Gracias tomarse el tiempo de leer por responder Maestro @Antoni Adjunto el archivo con la idea a la que deseo llegar, sigo atento. Mil gracias por el tiempo y la ayuda brindada   Media Attention Formula 1.2.xlsb
    • He analizado la UDF y entiendo perfectamente lo que hace, lo que no entiendo es lo que pretendes hacer. Mejor sube un ejemplo resuelto de  como debería funcionar la UDF con los nuevos parámetros solicitados. 
    • Gracias, ya lo conseguí solucionar
    • Hola a todos Primero que nada deseo agradecer el tiempo en leer este post, Muchas Gracias. Me acerco a ustedes para pedir su ayuda para lo siguiente: Tengo una UDF, la cual tiene dos escenarios: 1.- Si Tiempo Promedio y Duración del Video son diferentes de 0, hacer el calculo 2.- Si lo anterior es igual a 0, se realiza el otro calculo por cuartiles. El detalle es que son muchas celdas a seleccionar, lo cual creo puede ser engorroso, entonces, pensando en simplificar la función, me pregunte si fuera posible: a.- Colocar 1 al principio de la función y después solo seleccionar 2 celdas correspondientes (Rango continuo o discontinuo) b.- Colocar 2 al principio de la función y después seleccionar las 5 celdas correspondientes (Rango continuo o discontinuo) Espero me puedan ayudar y/o orientar al respecto, quedo atento para cualquier duda, de antemano les agradezco cualquier ayuda brindada. Mil Gracias!! Media Attention Formula 1.1.xlsb  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.