Utilizamos Cookies de terceros para generar estadísticas de audiencia y mostrar publicidad personalizada analizando tu navegación. Si sigues navegando estarás aceptando su uso. Más información X
PortadaForo AyudaTutoriales
InicioForosForo Office

Bucle infinito en el procedimiento:

carmita
2005-05-23 21:56 - Respuestas: 3 - Tema nº: 34503


Tengo un problema en el siguiente procedimiento, se realiza un bucle infinito y no se porque ni como solucionarlo, puede alguien ayudarme.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim valor
If columnaactual = 1 Then
valor = Hoja1.Cells(filaactual, 1)
If IsDate(valor) Then
Hoja1.Cells(filaactual, 3).Formula = "5"
Hoja1.Cells(filaactual, 2) = Weekday(valor, 2)

Else
MsgBox "Ingrese una fecha válida", vbInformation, "Horarios"
End If

Else
MsgBox "no es la columna indicada"
End If

End Sub

Si yo comento la linea: Hoja1.Cells(filaactual, 3).Formula = "5", o la siguiente a esta, ya no se produce ese bucle pero yo necesito que esteb las dos lineas, puede alugien ayudarme a solucionar este problema?
Gracias
Posibles soluciones:
Bucle infinito en el procedimiento:Bucle infinito en el procedimiento:
Bucle infinitoBucle infinito
Bucle infinito...Bucle infinito...
Bucle infinitoBucle infinito
Pc-w.vista bucle infinitoPc-w.vista bucle infinito
Hurricane

Re: Bucle infinito en el procedimiento: - 2005-05-24 13:18 - Respuesta 2

Cuéntanos si la siguiente indenntación es la correcta....
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim valor
If columnaactual = 1 Then
valor = Hoja1.Cells(filaactual, 1)
If IsDate(valor) Then
Hoja1.Cells(filaactual, 3).Formula = nulo;5nulo;
Hoja1.Cells(filaactual, 2) = Weekday(valor, 2)
Else
MsgBox nulo;Ingrese una fecha válidanulo;, vbInformation, nulo;Horariosnulo;
End If
Else
MsgBox nulo;no es la columna indicadanulo;
End If
End Sub

Si no lo es, tendrás que entrar a revisar bién el cierre de las sentencias IF.

Saludos

HURRICANE

Hurricane

Re: Bucle infinito en el procedimiento: - 2005-05-24 22:18 - Respuesta 3

Creo que ya encontré el problema. Estás capturande el evento Change, es que es llamado cada vez que cambia un valor en la Hoja. Cada vez que llamas a Hoja1.Cells(filaactual, 3).Formula = "5" estás haciendo un cambio y, por lo tanto, llamando nuevamente al evento Change. Una solución podría ser verificar el valor de las celdas a cambiar antes de darle un valor, de modo que si son diferentes al valor que le vas a asignar, ahí hagas el cambio.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim valor
If columnaactual = 1 Then
valor = Hoja1.Cells(filaactual, 1)
If IsDate(valor) Then
Hoja1.Cells(filaactual, 3).Formula nulo;nulo; nulo;5nulo; then
Hoja1.Cells(filaactual, 3).Formula = nulo;5nulo;
End If
If Hoja1.Cells(filaactual, 2) nulo;nulo; Weekday(valor, 2)
Hoja1.Cells(filaactual, 2) = Weekday(valor, 2)
End If
Else
MsgBox nulo;Ingrese una fecha válidanulo;, vbInformation, nulo;Horariosnulo;
End If
Else
MsgBox nulo;no es la columna indicadanulo;
End If
End Sub


Espero que te sirva la solución. Saludos

HURRICANE

carmita

Re: Bucle infinito en el procedimiento: - 2005-05-24 22:38 - Respuesta 4

Gracias por tu ayuda, ya lo solucione.
Página:1

Respuestas relacionadas:

Mi pc en bucle infinito.¿que hago?Mi pc en bucle infinito.¿que hago?Foro
Otra vez:mi pc en bucle infinitoOtra vez:mi pc en bucle infinitoForo
Mi pc dice que ha caido en un bucle infinitoMi pc dice que ha caido en un bucle infinitoForo
Controlador ati2dvg.dll bucle infinitoControlador ati2dvg.dll bucle infinitoForo
Bucle infinito al instalar actualizaciones de vistaBucle infinito al instalar actualizaciones de vistaForo
Reinicio infinitoReinicio infinitoForo
Simbolo infinitoSimbolo infinitoForo
Loop infinitoLoop infinitoForo
Poblema windows hp home edition - reinicio infinito Poblema windows hp home edition - reinicio infinito Foro
ProcedimientoProcedimientoForo
InicioSecciones
^ SubirAviso legal
Política Privacidad
Configurarequipos25 Abril 2024