Reducir código vba en proyecto.
Para Dante Amor
Hola con respecto a mi proyecto de aplicación VAM creo que el código que llevo creado se podría reducir bastante y me gustaría le echaras un vistazo y me dijeras como podría hacerlo.
1 Respuesta
Respuesta de Dante Amor
1
1

Dante Amor, https://www.youtube.com/@CursosDeExcelyMacros
H o l a:
Cuando tienes las mismas tareas en varios controles, lo puedes reducir creando un procedimiento general, por ejemplo, de esto que tienes:
Private Sub Op_Limpieza_Diaria_Click() If Op_Limpieza_Diaria.Value = True Then Cmb_Denominacion1.Value = "" Cmb_Denominacion2.Value = "" Cmb_Denominacion3.Value = "" Cmb_Denominacion4.Value = "" Cmb_Denominacion5.Value = "" Cmb_Denominacion6.Value = "" Cmb_Denominacion1.Visible = True Cmb_Denominacion2.Visible = True Cmb_Denominacion3.Visible = True Cmb_Denominacion4.Visible = True Cmb_Denominacion5.Visible = True Cmb_Denominacion6.Visible = True Cmb_Denominacion1.List() = Range("Limpieza_Diaria").Value Cmb_Denominacion2.List() = Range("Limpieza_Diaria").Value Cmb_Denominacion3.List() = Range("Limpieza_Diaria").Value Cmb_Denominacion4.List() = Range("Limpieza_Diaria").Value Cmb_Denominacion5.List() = Range("Limpieza_Diaria").Value Cmb_Denominacion6.List() = Range("Limpieza_Diaria").Value End If End Sub Private Sub Op_Limpieza_Vam_Click() If Op_Limpieza_Vam.Value = True Then Cmb_Denominacion1.Value = "" Cmb_Denominacion2.Value = "" Cmb_Denominacion3.Value = "" Cmb_Denominacion4.Value = "" Cmb_Denominacion5.Value = "" Cmb_Denominacion6.Value = "" Cmb_Denominacion1.Visible = True Cmb_Denominacion2.Visible = True Cmb_Denominacion3.Visible = True Cmb_Denominacion4.Visible = True Cmb_Denominacion5.Visible = True Cmb_Denominacion6.Visible = True Cmb_Denominacion1.List() = Range("Limpieza_Vam").Value Cmb_Denominacion2.List() = Range("Limpieza_Vam").Value Cmb_Denominacion3.List() = Range("Limpieza_Vam").Value Cmb_Denominacion4.List() = Range("Limpieza_Vam").Value Cmb_Denominacion5.List() = Range("Limpieza_Vam").Value Cmb_Denominacion6.List() = Range("Limpieza_Vam").Value End If End Sub Private Sub Op_Oficina_Diaria_Click() If Op_Oficina_Diaria.Value = True Then Cmb_Denominacion1.Value = "" Cmb_Denominacion2.Value = "" Cmb_Denominacion3.Value = "" Cmb_Denominacion4.Value = "" Cmb_Denominacion5.Value = "" Cmb_Denominacion6.Value = "" Cmb_Denominacion1.Visible = True Cmb_Denominacion2.Visible = True Cmb_Denominacion3.Visible = True Cmb_Denominacion4.Visible = True Cmb_Denominacion5.Visible = True Cmb_Denominacion6.Visible = True Cmb_Denominacion1.List() = Range("Oficina_Diaria").Value Cmb_Denominacion2.List() = Range("Oficina_Diaria").Value Cmb_Denominacion3.List() = Range("Oficina_Diaria").Value Cmb_Denominacion4.List() = Range("Oficina_Diaria").Value Cmb_Denominacion5.List() = Range("Oficina_Diaria").Value Cmb_Denominacion6.List() = Range("Oficina_Diaria").Value End If End Sub Private Sub Op_Oficina_Vam_Click() If Op_Oficina_Vam.Value = True Then Cmb_Denominacion1.Value = "" Cmb_Denominacion2.Value = "" Cmb_Denominacion3.Value = "" Cmb_Denominacion4.Value = "" Cmb_Denominacion5.Value = "" Cmb_Denominacion6.Value = "" Cmb_Denominacion1.Visible = True Cmb_Denominacion2.Visible = True Cmb_Denominacion3.Visible = True Cmb_Denominacion4.Visible = True Cmb_Denominacion5.Visible = True Cmb_Denominacion6.Visible = True Cmb_Denominacion1.List() = Range("Oficina_Vam").Value Cmb_Denominacion2.List() = Range("Oficina_Vam").Value Cmb_Denominacion3.List() = Range("Oficina_Vam").Value Cmb_Denominacion4.List() = Range("Oficina_Vam").Value Cmb_Denominacion5.List() = Range("Oficina_Vam").Value Cmb_Denominacion6.List() = Range("Oficina_Vam").Value End If End Sub Private Sub Op_Otros_Click() If Op_Otros.Value = True Then Cmb_Denominacion1.Value = "" Cmb_Denominacion2.Value = "" Cmb_Denominacion3.Value = "" Cmb_Denominacion4.Value = "" Cmb_Denominacion5.Value = "" Cmb_Denominacion6.Value = "" Cmb_Denominacion1.Visible = False Cmb_Denominacion2.Visible = False Cmb_Denominacion3.Visible = False Cmb_Denominacion4.Visible = False Cmb_Denominacion5.Visible = False Cmb_Denominacion6.Visible = False Txt_Denominacion1.Visible = True Txt_Denominacion2.Visible = True Txt_Denominacion3.Visible = True Txt_Denominacion4.Visible = True Txt_Denominacion5.Visible = True Txt_Denominacion6.Visible = True End If End Sub
Podría quedar así:
Private Sub OP_LIMPIEZA_DIARIA_Click() 'Por.Dante Amor rango = "LIMPIEZA_DIARIA" carga rango, True End Sub Private Sub OP_LIMPIEZA_VAM_Click() rango = "LIMPIEZA_VAM" carga rango, True End Sub Private Sub OP_OFICINA_DIARIA_Click() rango = "OFICINA_DIARIA" carga rango, True End Sub Private Sub OP_OFICINA_VAM_Click() rango = "OFICINA_VAM" carga rango, True End Sub Private Sub OP_OTROS_Click() carga "OFICINA_VAM", False End Sub Sub carga(rng, vis) 'Por.Dante Amor For i = 1 To 6 Me.Controls("CMB_DENOMINACION" & i).Value = "" Me.Controls("CMB_DENOMINACION" & i).Visible = vis Me.Controls("CMB_DENOMINACION" & i).List() = Range(rng).Value Next End Sub
sal u dos
- Compartir respuesta
- Anónimo
ahora mismo
