Listas de Validación
Hola Perseo ómo estás, espero me puedas ayudar..
Estoy realizando listas de validación con Excel de un rango de celdas... Desde una Macro, ya logré hacerlo así como eliminar las celdas que estén vacías para no tomarlos en cuenta.
Mi pregunta es como puedo hacer (si es posible) que una celda que tiene una lista de validación pueda ser editada, es decir que pueda escribir algún texto que no esté dentro de su propia lista.
A continuación te muestro lo que llevo. Gracias por tu atención y ojala que me puedas ayudar
Sub recuperaDatos()
'Declaracion de variables
Dim celda As Range
Dim ElementosLista As New Collection
Dim Item As Variant
Dim texto As String
Dim cadenaSplit As Variant
Dim i As Integer
Dim numeroRegistros As Integer
Dim columna As String
Dim rangoValores As String
'Obtenemos valores de celdas y eliminamos registros vacios
For Each celda In Worksheets(1).Range("D:D")
If celda.Value <> "" Then
ElementosLista.Add celda.Value
End If
Next celda
'Limpiar columna de ayuda
Sheets.Item("pega").Range("IV:IV").Clear
'Obtenemos el numero de registros obtenidos de las celdas
numeroRegistros = ElementosLista.Count
'Recorremos Coleccion de Elementos y los pegamos en la hoja -pega-
For k = 1 To numeroRegistros
columna = "IV" & (k) 'Especificamos en que celda queremos los valores
Worksheets("pega").Range(columna).Value = ElementosLista.Item(k)
Next k
If numeroRegistros >= 1 Then
'Ahora creamos Cadena para Rango de Valores
rangoValores = "=pega!$IV$1:$IV$" & numeroRegistros
ActiveSheet.Range("D:D").Show
With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:=rangoValores
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = "Introduzca un valor establecido en la lista"
.ShowInput = True
.ShowError = True
End With
End If
End Sub
Estoy realizando listas de validación con Excel de un rango de celdas... Desde una Macro, ya logré hacerlo así como eliminar las celdas que estén vacías para no tomarlos en cuenta.
Mi pregunta es como puedo hacer (si es posible) que una celda que tiene una lista de validación pueda ser editada, es decir que pueda escribir algún texto que no esté dentro de su propia lista.
A continuación te muestro lo que llevo. Gracias por tu atención y ojala que me puedas ayudar
Sub recuperaDatos()
'Declaracion de variables
Dim celda As Range
Dim ElementosLista As New Collection
Dim Item As Variant
Dim texto As String
Dim cadenaSplit As Variant
Dim i As Integer
Dim numeroRegistros As Integer
Dim columna As String
Dim rangoValores As String
'Obtenemos valores de celdas y eliminamos registros vacios
For Each celda In Worksheets(1).Range("D:D")
If celda.Value <> "" Then
ElementosLista.Add celda.Value
End If
Next celda
'Limpiar columna de ayuda
Sheets.Item("pega").Range("IV:IV").Clear
'Obtenemos el numero de registros obtenidos de las celdas
numeroRegistros = ElementosLista.Count
'Recorremos Coleccion de Elementos y los pegamos en la hoja -pega-
For k = 1 To numeroRegistros
columna = "IV" & (k) 'Especificamos en que celda queremos los valores
Worksheets("pega").Range(columna).Value = ElementosLista.Item(k)
Next k
If numeroRegistros >= 1 Then
'Ahora creamos Cadena para Rango de Valores
rangoValores = "=pega!$IV$1:$IV$" & numeroRegistros
ActiveSheet.Range("D:D").Show
With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:=rangoValores
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = "Introduzca un valor establecido en la lista"
.ShowInput = True
.ShowError = True
End With
End If
End Sub
1 Respuesta
Respuesta de perseo58
1