¿Leer datos de cualquier celda y escribir en otra?
Hola a todos, mi problema es el siguiente:
Estoy empezando a programar en VBA de excel y tengo un pequeño problema referente a las celdas, quisiera saber si puedo leer datos de otras celdas para usar en una condición, ya que de eso depende el resultado que quiero en otra celda más, estoy seguro que no me entendieron bien XD, les dejo el código que tengo para entender mejor la situación.
Sub prueba()
Dim v1 As Integer
Dim v2 As Integer
Dim res As Integer
Dim dil1 As Integer
Dim dil2 As Integer
v1 = Range("I2").Value
v2 = Range("I3").Value
dil1 = Range("N2").Value
dil2 = Range("N3").Value
If (v1 >= 30 And v1 <= 80) Then
If (v2 >= 30 And v2 <= 80) Then
res = 1
Else
res = dil1
End If
ElseIf (v2 >= 30 And v2 <= 80) Then
If (v1 >= 30 And v1 <= 80) Then
res = 1
Else
res = dil2
End If
Else
res = 10
End If
Range("J2").Value = res
End Sub
Con este código trabaja bien y hace lo que tiene que hacer, el problema es que trabaja con celdas específicas, es decir, la I2, I3, N2, N3 y el res en J2, por lo que cuando quiero agregar más datos tendría entonces que codificar para las celdas I4, I5, N4, N5 y el resultado en J4.
Eso es lo que quiero evitar, tener que agregar al código cada vez que agrego datos porque estoy seguro que debe poderse de otra manera.
Estoy empezando a programar en VBA de excel y tengo un pequeño problema referente a las celdas, quisiera saber si puedo leer datos de otras celdas para usar en una condición, ya que de eso depende el resultado que quiero en otra celda más, estoy seguro que no me entendieron bien XD, les dejo el código que tengo para entender mejor la situación.
Sub prueba()
Dim v1 As Integer
Dim v2 As Integer
Dim res As Integer
Dim dil1 As Integer
Dim dil2 As Integer
v1 = Range("I2").Value
v2 = Range("I3").Value
dil1 = Range("N2").Value
dil2 = Range("N3").Value
If (v1 >= 30 And v1 <= 80) Then
If (v2 >= 30 And v2 <= 80) Then
res = 1
Else
res = dil1
End If
ElseIf (v2 >= 30 And v2 <= 80) Then
If (v1 >= 30 And v1 <= 80) Then
res = 1
Else
res = dil2
End If
Else
res = 10
End If
Range("J2").Value = res
End Sub
Con este código trabaja bien y hace lo que tiene que hacer, el problema es que trabaja con celdas específicas, es decir, la I2, I3, N2, N3 y el res en J2, por lo que cuando quiero agregar más datos tendría entonces que codificar para las celdas I4, I5, N4, N5 y el resultado en J4.
Eso es lo que quiero evitar, tener que agregar al código cada vez que agrego datos porque estoy seguro que debe poderse de otra manera.
1 Respuesta
Respuesta de jerryeagle