¿Quisiera reducir el siguiente codigo?

Estoy iniciando con vba y me queda mucha carrera hice el siguiente codigo para que en funcion de si en tres combo box diferentes aparecen x opciones el dato que incerto en un text box vaya a una celda especifica en excel, quería saber si puedo reducir las lineas de codigo ya que se me van a 5000 y pico porque hago lo mismo para todas las posibilidades de combinaciones entre combobox's,

Les dejo un ejemplo de una parte del codigo como ven las 3 opciones que tengo son sucursal mes y articulo y los datos que tengo son en funcion de las 3, gracias

Sub Suc_1()

'Vencimiento Alquiler minimo
'Enero
If Sucursal.Text = "Suc.1" And Mes.Text = "Enero" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B3") = TextBox1
End If
'Febrero
If Sucursal.Text = "Suc.1" And Mes.Text = "Febrero" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B19") = TextBox1
End If
'Marzo
If Sucursal.Text = "Suc.1" And Mes.Text = "Marzo" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B35") = TextBox1
End If
'Abril
If Sucursal.Text = "Suc.1" And Mes.Text = "Abril" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B51") = TextBox1
End If
'Mayo
If Sucursal.Text = "Suc.1" And Mes.Text = "Mayo" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B67") = TextBox1
End If
'Junio
If Sucursal.Text = "Suc.1" And Mes.Text = "Junio" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B83") = TextBox1
End If
'Julio
If Sucursal.Text = "Suc.1" And Mes.Text = "Julio" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B99") = TextBox1
End If
'Agosto
If Sucursal.Text = "Suc.1" And Mes.Text = "Agosto" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B115") = TextBox1
End If
'Setiembre
If Sucursal.Text = "Suc.1" And Mes.Text = "Setiembre" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B131") = TextBox1
End If
'Octubre
If Sucursal.Text = "Suc.1" And Mes.Text = "Octubre" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B147") = TextBox1
End If
'Noviembre
If Sucursal.Text = "Suc.1" And Mes.Text = "Noviembre" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B163") = TextBox1
End If
'Diciembre
If Sucursal.Text = "Suc.1" And Mes.Text = "Diciembre" And Articulo.Text = "Alq. Minimo" Then
Sheet3.Range("B179") = TextBox1
End If

Respuesta
3

Te dejo la macro reducida para este caso, donde se tiene la misma sucursal y el mismo artículo. Debes completar el bucle SelectCase con los meses que faltan.

Así con este ejemplo podrás resolver otros casos similares.

Sub Suc_1()
'ajustada x Elsamatilde
'CASO: = sucursal + = artículo
If Sucursal.Text = "Suc.1" And Articulo.Text = "Alq. Minimo" Then
    Select Case Mes.Text
    'según el mes será el rango
        Case Is = "Enero"
            rgo = "B3"
        Case Is = "Febrero"
            rgo = "B19"
        Case Is = "Marzo"
            rgo = "B35"
    'completar el resto de meses
    End Select
    Sheet3.Range(rgo) = TextBox1
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas