Buenas,Con lo que indica en el post no ser ver como solucionar el problema.Básicamente me gustaría saber si en lugar de la siguiente instrucción:.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=AStrpodría indicar algo como lo siguiente: .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Sheets("Sheet2").Range("B2:B" & Lrow)Paralelamente hay alguna manera en vba para que si inserto una columna/fila el código no quede afectado?Gracias
Buenas,Estoy haciendo una macro donde en varias celdas hay un desplegable que se gestiona en una hoja diferente.En la siguiente rutina donde se asigna el desplegable me gustaría asignar en lugar de una variable ( AStr ) , que solo puede contener 255 caracteres, unas celdas de otra hoja (Sheets("hoja2").Range("B2:B" & Lrow), es posible? Sub AddData()Dim Lrow As SingleDim AStr As StringDim Value As Variant Lrow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row For Each Value In Range("A1:A" & Lrow) AStr = AStr & "," & ValueNext Value AStr = Right(AStr, Len(AStr) - 1) With Worksheets("Sheet1").Range("C2").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= xlBetween, Formula1:=AStr 'En lugar de Astr asignar Sheets("hoja2").Range("B2:B" & Lrow) .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = TrueEnd WithEnd Sub Gracias,