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.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos