Mejorar código o fórmula para rango de celdas

Con el siguiente código intento registrar un valor en la celda J2 según la celda ocupada en C2, C4 o D7. Tal como está me funciona, pero el problema es que son casi 40 celdas diferentes en la columna "J". Es decir, en la siguiente celda "J3" quiero que me haga lo mismo con otro rango de celdas, pero entonces voy a tener que poner más with.

Pregunto. ¿Hay alguna forma de reducir este código, o poner una fórmula si esta no me ralentiza el proceso?

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("C2:D56")) Is Nothing Then
 If Target.Count > 1 Then Exit Sub
 With Range("C2, C4, D7").Value
   If [C2] <> "" Then [J2] = 1
   If [C4] <> "" Then [J2] = 2
   If [D7] <> "" Then [J2] = 3
 End With

1 respuesta

Respuesta

Puedes poner otros 2 ejemplos, para ver si veo un patrón y tratar de simplificarlo.

 With Range("C2, C4, D7").Value
   If [C2] <> "" Then [J2] = 1
   If [C4] <> "" Then [J2] = 2
   If [D7] <> "" Then [J2] = 3
 End With
 With Range("x1, x2, x3").Value
   If [x1] <> "" Then [J3] = ?
   If [x2] <> "" Then [J3] = ?
   If [x3] <> "" Then [J3] = ?
 End With
 With Range("y1, y2, y3").Value
   If [y1] <> "" Then [J?] = ?
   If [y2] <> "" Then [J?] = ?
   If [y3] <> "" Then [J?] = ?
 End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas