none
por que me aparece error 28 en una macro de exel RRS feed

  • Pregunta

  • Private Sub Worksheet_Change(ByVal Target As Range)
    Dim columna As String
    Dim fila As Integer
    columna = Columns(Target.Column).Address(False, False)
    columna = Left(columna, InStr(1, columna, ":") - 1)
    fila = Target.Row
    If fila <> 1 Then
    Dim rango As String
    rango = columna & fila
    'si no es en la columna A no sumamos
    If columna = "A" Then
    If IsNumeric(Range("A" & fila)) Then          esta fila es el problema
    Range("B" & fila) = Range("B" & fila) + Range("A" & fila)
    End If
    'borramos el rango
    Range("A" & fila) = 0
    End If
    End If
    End Sub
    martes, 1 de diciembre de 2015 4:28

Respuestas

  • Este error te lo da porque entra en un bucle de recursividad infinita. Puedes desactivar esta recursividad de esta forma:

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim columna As String
    Dim fila As Integer

    Application.EnableEvents=False

    columna = Columns(Target.Column).Address(False, False)
    columna = Left(columna, InStr(1, columna, ":") - 1)
    fila = Target.Row

    If fila <> 1 Then
        Dim rango As String
        rango = columna & fila
        'si no es en la columna A no sumamos
        If columna = "A" Then
            If IsNumeric(Range("A" & fila)) Then          esta fila es el problema
                Range("B" & fila) = Range("B" & fila) + Range("A" & fila)
            End If
            'borramos el rango
            Range("A" & fila) = 0
        End If
    End If

    Application.EnableEvents=True

    End Sub


    Saludos, Javier J

    martes, 1 de diciembre de 2015 7:57