Excel - Crear lista desplegable en ciertas celdas
Problema
Quería crear una lista desplegable de datos en Sheet2. He intentado los siguientes códigos pero el resultado parece ser incorrecto. En lugar de los datos en la Hoja 2 que figuran en la lista desplegable, la lista desplegable contenía los datos de la Hoja 1 (que es mi hoja de destino).
Además, me gustaría tener la lista desplegable en ciertas celdas donde tengo información sobre las celdas antes, es decir, la lista desplegable debe estar en la Columna F de la Hoja 1 donde hay información sobre la Columna E de la Hoja 1 y repetir hasta el final de la lista.
Aquí se adjunta el archivo en el que estoy trabajando aquí.
Solución
Usted crea una lista de validación a partir de OTRA HOJA DE TRABAJO y le da un nombre de rango a esa lista de validación (en la hoja 2)
y usar eso como la fórmula
Intenté modificar tu macro sin molestar, excepto cambiar una o dos líneas
He dado el nombre de rango como "rangename". Puedes cambiarlo en la macro.
Si es necesario pellizquelo un poco más.
Sub Dropdown () Dim x As Long, y As Long Dim objCell As Range Dim objDataRangeStart As Range Dim objDataRangeEnd As Range Dim rangename As String '>> Establecer el rango para el conjunto de datos válidos wsSourceList = Sheets ("Sheet2") Set wsDestList = Sheets ("Sheet1") Set objDataRangeStart = wsSourceList.Cells (1, 2) 'Rango de inicio para las entradas de la lista desplegable Set objDataRangeEnd = wsSourceList.Cells (6, 2)' Rango final para las entradas de la lista desplegable MsgBox objDataRangeStart MsgBox objDataata ============= Con hojas de trabajo ("Hoja2") Rango (objDataRangeStart, objdatarangaeend) .Name = "rangename" Finalice con '=============== ====== '>> Establecer Validación en Celda Requerida' Establecer objCell = wsDestList.Cells (8, 4) 'Ubicación de la lista desplegable' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Ubicación de la lista desplegable con objCell.Validation .Delete'. Tipo Add: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ". Dirección '= ========================================== .Add Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Operador: = _ xl========================================================================================= ================================ .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Warning" .ErrorMessage = " Por favor seleccione un valor de la lista disponible en la celda seleccionada ". .ShowError = True End con x = x + 1 'y = y + 1 Loop Hasta x = 51 End Sub
Gracias a venkat1926 por este consejo.