Visita:
----- --
En la relación de combo y celda al número de combo más 15 nos dice el número de fila de la celda, por ejemplo, para el combobox4 la celda es W19, es decir, 4 + 15 = 19.
----- --
Para poner todos los combos en una sola macro hay que crear una clase.
Entra al menú VBA en Insertar, Módulo de Clase, debe crearte la clase "Clase1", si te aparece otro nombre entonces lo cambias a "Clase1":
En la Clase1 agrega el siguiente código, tal y como se muestra en la imagen anterior.
Option Explicit
Public WithEvents combo As MSForms.ComboBox
Private Sub combo_Change()
Dim n As Long
n = Mid(combo.Name, 9) 'número de combo
Range("W" & n + 15).Value = combo.Text 'al número de combo le suma 15 para obtener la celda
End Sub
Esta clase se va a utilizar para contener los eventos de todos los combos.
----- --
Pon la siguiente macro en un módulo o en el evento Open de ThisWorkbook, para que cuando abras el archivo, la macro se ejecute y los combos sean cargados en la clase:
Option Explicit
Dim colCombos As Collection
Private Sub Workbook_Open()
Dim ctl As OLEObject, clsObject As Clase1
Set colCombos = New Collection
For Each ctl In Sheets("hoja combos").OLEObjects
If TypeOf ctl.Object Is MSForms.ComboBox Then
Set clsObject = New Clase1
Set clsObject.combo = ctl.Object
colCombos.Add clsObject
End If
Next ctl
End Sub
Nota:
Cambia en el código "hoja combos" por el nombre de tu hoja donde tienes los combobox.
Después de pegar el código en el evento Open, ejecuta la macro, en este ejemplo, ejecuta el evento Open, no es necesario cerrar el libro y abrirlo, estando en el evento Open, solamente presiona F5 para ejecutar el código, de esa manera todos los combos se cargarán en la Clase1.
----- --
Listo, después de ejecutar la macro regresa a tu hoja, modifica alguno de los combos y en automático se modificará la celda.
----- --
Curso de macros. Declarar variables en vba excel. - YouTube
----- --
Sal u dos Dante Amor