Compartir a través de

Excel (VBA) ≡ Error 1004 en el tiempo de ejecución.

Anónimas
2018-09-03T16:15:05+00:00

Estimados:

A la hora de ejecutar una macros me sale el siguiente error:

"Se ha producido el error '1004' en tiempo de ejecucion:

Error en el metodo Select de la clase Range"

Lo curioso es que en otra macro si me ejecuta normalmente y en esta no, la macro es la siguiente:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim Rango As String

    Rango = ("TCotizacion[CosOrigen]")

   If Not Application.Intersect(Range(Rango), Target) Is Nothing Then

        Cancel = True

        Sheets("Costos").Visible = True

        Sheets("Costos").Select

        ActiveSheet.Unprotect

        Range("P1").Select

    End If

End Sub

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios

7 respuestas

Ordenar por: Muy útil
  1. Anónimas
    2018-09-12T15:49:39+00:00

    Por alguna razón …

    Dim Rango As String

        Rango = ("TCotizacion[CosOrigen]")

        If Not Application.Intersect(Range(Rango), Target) Is Nothing Then

            Cancel = True

            Sheets("Costos").Visible = True

            Sheets("Costos").Select

            ActiveSheet.Unprotect

            Range("P1").Select

        End If

    End Sub

    ... no reconoce "Costos" como hoja activa, pues con...

    Dim Rango As String

        Rango = ("TCotizacion[CosOrigen]")

        If Not Application.Intersect(Range(Rango), Target) Is Nothing Then

            Cancel = True

            Sheets("Costos").Visible = True

            Sheets("Costos").Select

            ActiveSheet.Unprotect

            worksheets("Costos").Range("P1").Select

        End If

    End Sub

    ... no me salta el error.

    Yo recomendaría:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

      Dim Rango As String

      Rango = "TCotizacion[CosOrigen]"

      If Not Application.Intersect(Range(Rango), Target) Is Nothing Then

        Cancel = True

        With Worksheets("Costos")

          .Visible = True

          .Activate

          .Unprotect

          .Range("P1").Select

        End With

      End If

    End Sub

    2 personas han encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  2. Anónimas
    2018-09-04T02:36:08+00:00

    comprueba o corrige que tanto el nombre de la tabla como el titulo del encabezado estén bien escritos en la macro (no importan las [may/min]usculas pero SI cualquier caracter fuera de lugar)

    saludos,

    hector.

    Estimado Hector:

    Gracias por tu pronta respuesta, te comento que los nombres estan correctos. De tanto indagar pude solucionar el promblema para esa macro anteponiendo "application" en donde me salia el error:

    Favor leer hasta el final ya que el error se me traslado a otra macro.

    ________________________________________________________________________________________________________

    Dim Rango As String

        Rango = ("TCotizacion[CosOrigen]")

       If Not Application.Intersect(Range(Rango), Target) Is Nothing Then

            Cancel = True

            Sheets("Costos").Visible = True

            Sheets("Costos").Select

            ActiveSheet.Unprotect

            Range("P1").Select   (Error)

    Application.Range("P1")Select  (Llego a funcionar)****         

        End If

    End Sub

    _________________________________________________________________________________________________________________

    Ahora el problema me volvio a salir al crear otra macro (en un modulo) del mismo libro de trabajo.

    (quiero ocultar las columnas de la hoja activa)

    ____________________________________________________________________________________________

    Sub BackDetaToCoti()

    Columns("A:I").EntireColumn.Hidden = True        (codigo incial y salia error)

    Application.Columns("A:I").EntireColumn.Hidden = True  (Antepuse "application" y tambien sale error)

        Sheets("Cotizaciones").Select

        Cells(ActiveCell.Row, 12).Select......

    End Sub

    _____________________________________________________________________________________________

    Estare muy agradecido con su respuesta. Si existe la posibilidad de enviar el archivo seria genial. Las macros son muy simples recien estoy trabajando en VBA y es muy probable este infringiendo en un error de reglas. En cuanto a los nombres y de las hojas, rangos etc los he revisado detalladamente y si estan correctos.

    Saludos Cordiales

    Ivan Palma

    2 personas han encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  3. Héctor Miguel 71,595 Puntos de reputación
    2018-09-05T02:23:27+00:00

    ... Los errores donde se presentan estan en el modulo 2...

    los errores del modulo2 se deben a que la hoja donde administras las columnas está protegida

    los errores en el modulo "de clase" de la Hoja2 se deben a que al usar Columns("a:i"). ... NO haces referencia a cual hoja quieres afectar, y como el código se ejecuta "desde" los eventos de la Hoja2 (cotizaciones) asume otra cosa porque la hoja2 NO es la hoja "activa"

    igual resulta si en lugar de agregar Application al Columns("a:i"). ...

    cambias esas instrucciones por: ActiveSheet.Columns("a:i"). ...

    saludos,

    hector.

    1 persona ha encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  4. Anónimas
    2018-09-04T15:32:01+00:00

    Hector buen dia:

    Muy amable por tus prontas respuestas. Estuve viendo tutoriales en youtube y como dices es bien raro calificar a objetos con "Application".  

    Te envio el link donde comparto el archivo para que se pueda editar. el archivo es confiable.

    Los errores donde se presentan estan en el modulo 2.

    https://drive.google.com/drive/folders/1YKbu091ojFNPz7-LCXrOGao5kbO6HYuH?usp=sharing

    Desde ya agradezco tu interes y tu apoyo.

    Saludos Cordiales

    Ivan Palma

    1 persona ha encontrado útil esta respuesta.
    0 comentarios No hay comentarios
  5. Héctor Miguel 71,595 Puntos de reputación
    2018-09-04T02:08:22+00:00

    comprueba o corrige que tanto el nombre de la tabla como el titulo del encabezado estén bien escritos en la macro (no importan las [may/min]usculas pero SI cualquier caracter fuera de lugar)

    saludos,

    hector.

    1 persona ha encontrado útil esta respuesta.
    0 comentarios No hay comentarios