Error 1004

Hola Luis,
Espero puedas ayudarme, recurro a ti ya que no se que más hacer, estoy muy confundido (soy usuario casi novato..).
Utilizo Excel 2007 y me aparece el error : "se ha producido error 1004 por tiempo de ejecución:error definido por la aplicación o el objeto".
Específicamente en la frase del código: ActiveSheet. Range(Casilla_Inicial_100).Activate
Por más que he probado hacer variaciones a a esta frase no consigo arreglar el error (sospecho que Activate es lo que puedo estar utilizando mal..).
Espero haber sido lo suficientemente claro, en caso contrario solo dime que más te puedo aclarar. Te incluyo el código que tengo con problemas (perdón por lo largo):
Sub Botón1_Haga_clic_en() 
    Sheets("Tablas y Graficos").Select 
    Dim resultado12 As Double 
    Dim resultado23 As Double 
    If WorksheetFunction.IsNA(Range("R37")) Or WorksheetFunction.IsNA(Range("S38")) Then 
        MsgBox "No hay arido 1 o 2" 
        Range("R43").ClearContents 
    Else: 
        resultado12 = Buscar_Interseccion(Range("R37").Value, Range("S38").Value, "C6", 3)   ' Este es para arido 1 con 2 
        Range("R43").ClearContents 
        Range("R43").Value = resultado12 
    End If 
    If Application.WorksheetFunction.IsNA(Range("S37")) Or Application.WorksheetFunction.IsNA(Range("T38")) Then 
        MsgBox "No hay arido 2 o 3" 
        Range("S43").ClearContents 
    Else: 
        resultado23 = Buscar_Interseccion(Range("S37").Value, Range("T38").Value, "D6", 2) ' Este es para arido 2 con 3 
        Range("S43").ClearContents 
        Range("S43").Value = resultado23 
    End If 
End Sub 
Function Buscar_Interseccion(Valor_0 As Double, Valor_100 As Double, Casilla_Inicial_100 As String, Offset_0 As Integer) As Double 
'casilla inicial es string o variant?? 
    Dim x As Double 
    Dim y As Double 
    Dim ma As Double 
    Dim mb As Double 
    Dim na As Double 
    Dim nb As Double 
    Dim valor_x2 As Double 
    Dim valor_x1 As Double 
    If Valor_0 = Valor_100 Then 
        MsgBox "Son iguales" 
        x = Valor_0 
        If x < Range("G39").Value Then 
            y = Range("AC38").Value * x + Range("AD38").Value 
        ElseIf x = Range("G39").Value Then 
            y = Range("H39").Value 
        Else 
            y = Range("AC40").Value * x + Range("AD40").Value 
        End If 
        Sheets("Tablas y Graficos").Range("C6:E19").Select 
    ElseIf Valor_0 < Valor_100 Then 
         ActiveSheet.Range(Casilla_Inicial_100).Activate 
        Do While IsEmpty(ActiveCell) Or IsEmpty(ActiveCell.Offset(0, 1)) 
            ActiveCell.Offset(1, 0).Activate 
        Loop 
        Do While ActiveCell.Value > 100 - ActiveCell.Offset(0, 1).Value 
            ActiveCell.Offset(1, 0).Activate 
        Loop 
        valor_x1 = ActiveCell.Offset(0, Offset_0).Value 
        valor_x2 = ActiveCell.Offset(-1, Offset_0).Value 
        MsgBox "El 0 es menor que el 100" 
        ma = (ActiveCell.Offset(-1, 1).Value - ActiveCell.Offset(0, 1).Value) / (valor_x2 - valor_x1) 
        mb = (ActiveCell.Offset(-1, 0).Value - ActiveCell.Value) / (valor_x2 - valor_x1) 
        na = ActiveCell.Offset(0, 1).Value - valor_x1 * (ActiveCell.Offset(-1, 1).Value - ActiveCell.Offset(0, 1).Value) / (valor_x2 - valor_x1) 
        nb = ActiveCell.Value - valor_x1 * (ActiveCell.Offset(-1, 0).Value - ActiveCell.Value) / (valor_x2 - valor_x1) 
        x = (100 - na - nb) / (mb + ma) 
        If x < Range("G39").Value Then 
            y = Range("AC38").Value * x + Range("AD38").Value 
        ElseIf x = Range("G39").Value Then 
            y = Range("H39").Value 
        Else 
            y = Range("AC40").Value * x + Range("AD40").Value 
        End If 
    Else 
        MsgBox "El 0 es mayor que el 100" 
        x = (Valor_0 + Valor_100) / 2 
        If x < Range("G39").Value Then 
            y = Range("AC38").Value * x + Range("AD38").Value 
        ElseIf x = Range("G39").Value Then 
            y = Range("H39").Value 
        Else 
            y = Range("AC40").Value * x + Range("AD40").Value 
        End If 
    End If 
    Buscar_Interseccion =...

1 respuesta

Respuesta
1
y
ActiveSheet.Range(Casilla_Inicial_100).select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas