Cómo evitar mensaje de error 7, por memoria insuficiente

En la hoja1 dispongo de dos rango de datos: (F31:M31) y (F84:Q84).

Estos datos también están repetidos en la hoja2, pero dispuestos en las celdas: (A2:A21)

Con las siguientes secuencias se consigue que al seleccionar cualquiera de los datos de la hoja1, se active toda la fila que contenga ese dato en la hoja2

Secuencia en la Hoja1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("F31:M31")) Is Nothing And Intersect(Target, Range("F84:Q84")) Is Nothing Then Exit Sub

dato1 = Target

End Sub

 Secuencia en la Hoja2

Private Sub Worksheet_Activate()

   On Error Resume Next

   fil = Application.WorksheetFunction.Match(dato1, Range("A2:A21"), 0) + 1

   If fil = "" Then Exit Sub

End Sub

El problema que tengo es que al seleccionar todos los datos de la hoja1, me sale el siguiente mensaje de error, dejando resaltado: dato1 = Target

¿Cómo se puede evitar ese mensaje de error?

1 respuesta

Respuesta
1

Agrega las siguientes instrucciones para contar las filas y las columnas, cualquiera de las 2 cuenta el número de filas o de columnas, si seleccionaste más de 1 entonces la macro se sale.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Act.Por.Dante Amor
    If Selection.Rows.Count > 1 Then Exit Sub
    If Selection.Columns.Count > 1 Then Exit Sub
    If Intersect(Target, Range("F31:M31")) Is Nothing And Intersect(Target, Range("F84:Q84")) Is Nothing Then Exit Sub
    dato1 = Target
End Sub

Prueba con ambas o con sólo la de rows o con sólo la de columns para que revises cuál es la que necesitas.

Saludos. Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas