Cuadro Combinado Activex como cambiar el formato

Estoy usando un cuadro combinado para una lista desplegable de un listado numérico de datos y todo bien. El tema es que luego debo hacer un buscarv para localizar los datos y por defecto el cuadro me convierte en texto el dato numérico, por tanto no me funciona el buscarv. ¿Cómo puedo hacer para cambiar la configuración del cuadro combinado para que lo que traiga lo haga como numero o me conserve el formato de la celda?

1 respuesta

Respuesta
1

No es posible cambiar la configuración de un combobox a numérico. Lo que pongas en el combobox siempre será texto.

Lo que debes hacer con el valor del textbox es convertirlo a número.

Por ejemplo:

valor = val(combobox1.value)

Si pones aquí todo tu código te ayudo a adaptarlo.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Mariela Pizzella
Dim xCombox As OLEObject
Dim xStr As String
Dim xWs As Worksheet
Dim xArr
Set xWs = Application.ActiveSheet
On Error Resume Next
Set xCombox = xWs.OLEObjects("TempCombo")
With xCombox
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
If Target.Validation.Type = 3 Then
Target.Validation.InCellDropdown = False
Cancel = True
xStr = Target.Validation.Formula1
xStr = Right(xStr, Len(xStr) - 1)
If xStr = "" Then Exit Sub
With xCombox
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = xStr
If .ListFillRange = "" Then
xArr = Split(xStr, ",")
Me.Tempcombo.List = xArr
End If
.LinkedCell = Target.Address
End With
xCombox.Activate
Me.Tempcombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 9
Application.ActiveCell.Offset(0, 1).Activate
Case 13
Application.ActiveCell.Offset(1, 0).Activate
End Select
End Sub

Para poner código aquí en el foro debes utilizar el icono para insertar código.

No veo en tu código el buscarv

Saludos Dante, querido. 

El buscarv esta fuera del código. Están las fuera de todo esto =SI.ERROR(BUSCARV($B$7;'Carga Datos'!B:E;4;FALSO);" "), B7 es la celda donde esta la lista desplegable con el combobox

Dante lo que estoy haciendo  es esto

         

El combobox esta en la celda ORDEN y el buscarv en la celda DIRECCIÓN

Por eso necesito que lo que lea el buscarv sea un numero

Actualiza esta parte de tu código:

Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If Range(TempCombo.LinkedCell).Value <> "" Then
    Range(TempCombo.LinkedCell).Value = Val(Range(TempCombo.LinkedCell).Value)
  End If
  Select Case KeyCode
  Case 9
    Application.ActiveCell.Offset(0, 1).Activate
  Case 13
    Application.ActiveCell.Offset(1, 0).Activate
  End Select
End Sub

Gracias dante pero no me esta funcionando. ¿te paso el archivo para que lo veas?

Envíame el archivo para ver qué dato tienes en el combobox

mi correo: [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas