Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MS Excel 2003: vincular datos al cuadro combinado y actualizar los datos subyacentes
Este tutorial de Excel muestra cómo escribir una macro para vincular datos a un cuadro combinado y actualizar los datos subyacentes en Excel 2003 y versiones anteriores (con capturas de pantalla e instrucciones paso a paso).
P: En Microsoft Excel 2003/XP/2000/97, me gustaría poder usar un cuadro combinado (en otra hoja de trabajo) para mostrar datos de la Hoja1, luego poder editar esos datos y guardar los cambios nuevamente en la Hoja1. ¿Cómo puedo hacer esto?
R: Esto se puede hacer a través del código de macro.
Veamos un ejemplo.
Descargue la hoja de cálculo de Excel (que se muestra a continuación)
En nuestra hoja de cálculo, nuestros datos están en la Hoja1.
En Sheet2, tenemos nuestro cuadro combinado, que está vinculado a los datos en Sheet1. Cuando el usuario selecciona un cliente en el cuadro combinado, la dirección y el número de teléfono se completan automáticamente.El llenado de estos datos se realiza mediante una macro llamada Entrada de datos (esta es la macro asignada al cuadro combinado).
El usuario puede entonces actualizar los datos en esta hoja. En nuestro ejemplo, cambiamos la dirección de Betty de 454 11th a 78 Granite St.
A continuación, hacemos clic en el botón Guardar cambios.Esto llama a una macro llamada guardar cambios.
La macro actualizará los datos apropiados en la Hoja 1 y mostrará el mensaje anterior cuando se complete.
Ahora, si vamos a la Hoja1, podemos ver que la dirección de Betty ha sido actualizada.
Puede presionar Alt+F11 para ver el código VBA. Seleccione el módulo denominado Módulo1 en la ventana de la izquierda.
codigo macro
El código de la macro se ve así:
Código de macro para guardar los cambios botón:
Sub SaveChanges() 'Update data on Sheet1 based on changes made to data on Sheet2 Dim LProject As Integer Dim LAddress As String Dim LPhoneNbr As String Dim LRow As Long Dim LFound As Boolean 'Retrieve project number number LProject = Range("H3").Value 'Retrieve new address and phone number information LAddress = Range("E5").Value LPhoneNbr = Range("H8").Value 'Move to Sheet1 to save the changes Sheets("Sheet1").Select LFound = False LRow = 2 Do While LFound = False 'Found matching project, now update address and phone number information If Range("A" & LRow).Value = LProject Then LFound = True Range("C" & LRow).Value = LAddress Range("D" & LRow).Value = LPhoneNbr 'Encountered a blank project number (assuming end of list on Sheet1) ElseIf IsEmpty(Range("A" & LRow).Value) = True Then MsgBox ("No match was found. Changes were not made.") Exit Sub End If LRow = LRow + 1 Loop 'Reposition back on Sheet2 Sheets("Sheet2").Select Range("E5").Select MsgBox ("Changes were successfully saved.") End Sub
Código de macro para el cuadro combinado del cliente:
Sub PopulateData() Dim LProject As Integer Dim LAddress As String Dim LPhoneNbr As String Dim LRow As Long Dim LFound As Boolean 'Retrieve project number number LProject = Range("H3").Value 'Move to Sheet1 Sheets("Sheet1").Select LFound = False LRow = 2 Do While LFound = False 'Found matching project, now update address and phone number information on Sheet2 If Range("A" & LRow).Value = LProject Then LFound = True LAddress = Range("C" & LRow).Value LPhoneNbr = Range("D" & LRow).Value Sheets("Sheet2").Select Range("E5").Value = LAddress Range("H8").Value = LPhoneNbr 'Encountered a blank project number (assuming end of list on Sheet1) ElseIf IsEmpty(Range("A" & LRow).Value) = True Then MsgBox ("No match was found for combo box selection.") Exit Sub End If LRow = LRow + 1 Loop End Sub