Facebook Twitter Gplus Flickr Pinterest LinkedIn YouTube RSS
Home Excel vba Utilizar un ComboBox como lista de búsqueda en Excel
formats

Utilizar un ComboBox como lista de búsqueda en Excel

En ocasiones tenemos una lista con decenas o a veces hasta centenas de items que se nos hace difícil buscar una coincidencia exacta y no una aproximada. El siguiente desarrollo permite añadir a un ComboBox la lista que tenemos y encontrar el dato tal y como está en la lista.

Instrucciones:

1.- Asignamos un nombre a la lista (recomendado).

image 

2.- Entramos al editor de Visual Basic para Aplicaciones con Alt + F11. I

3.- Insertamos un UserForm y le añadimos un control de ComboBox, un Label y dos botones (Buscar y Cerrar)

image

4. – Damos doble click en una parte del formulario (no en algún objeto). Se podrá automáticamente el método Activate. Ponemos el siguiente código:

Private Sub UserForm_Activate()
    ‘Asignamos como fuente la lista previamente creada
    Me.cmbAsesores.RowSource = "lstAsesores"
    ‘Le damos el foco al ComboBox
    cmbAsesores.SetFocus
End Sub

5.- Ahora damos doble click al botón Buscar y agregamos el siguiente código:

Private Sub CommandButton1_Click()
    ‘Si existe algún error se brinca a la etiqueta Fin
    On Error GoTo Fin
        ‘Para tener este código, se puede utilizar la grabadora de macros
        Cells.Find(What:=cmbLista, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
        cmbLista.SetFocus
    ‘Cierra el formulario
    Unload Me
    ‘Sale del procedimiento sin necesidad de llegar a la etiqueta Fin
    Exit Sub
Fin:
    ‘Si el dato escrito no está en la lista arroja el siguiente error
    MsgBox "El dato ‘" & cmbLista & "’ no se encuentra en esta hoja", vbInformation, "Excel e Info"
    cmbLista = ""
    cmbLista.SetFocus
End Sub

6.- El código para el botón Cerrar será:

Private Sub CommandButton2_Click()
    Unload Me
End Sub

La imagen de ejemplo

image

Dependiendo del diseñador la lista puede estar oculta y para lanzar el formulario se podrá hacer por cualquier método que desee.

:: Descarga el ejemplo

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
51 Comments  comments 
  • Pingback: Mi blog en 2010 « Excel e Info: tecnología e información()

  • Negro

    muy buen aporte, necesito que un combo.box haga exactamente lo mismo pero sin la userfrm.
    es para usarlo en una factura con unos 6 item. como podría hacerlo? me podrías ayudar?

    • sergioacamposh

      Si lo necesitas para una factura, supongo que será para mostrar el dato de x items. En este caso mi recomendación es hacerlo mediante una lista de validación. Sólo entra a la pestaña/menú Datos y elige Validación de datos. Ahí viene una opción de Lista, y con eso puedes lograr que al posicionarte en x celda, simule el comportamiento de un Combobox.

      Cualquier duda, no dudes en comentar.

  • Pingback: EXCELeINFO – Top 10 de publicaciones vistas en 2011 « EXCELeINFO – Excel vba e información()

  • Oholger Benites

    Hola amigo, te agradeceria si me pudieras ayudar con algo parecido, explico necesito saber como hacer una busqueda desde un formulario donde a medida que escriba en un cuadro de texto se me vallan mostrando los resultados posibles en un cuadro de lista (Dinamicamente si es el termino) insertado en el mismo formulario y que al seleccionar el resultado en el cuadro de lista de click en un boton insertar y se inserte en una celda X deseada.
    Esta macro yo la tengo pero lamentablemente no tengo acceso al código, te agradecería tu apoyo.

    • http://about.me/sergioacamposh sergioacamposh

      Podrías compartir el ejemplo para ver la funcionalidad que comentas.

  • JORGE PALACIOS

    Buenas Noches escribo para ver si me puedes ayudar estoy diseñando en vb de excel, tengo un formulario para modificar datos para enlazar el formulario a una hoja de clientes que no sea visible, el cuento es que por medio de un texbox el listbox me muestre todos los datos de la hoja y me permita cargarlos a el formulario para modificarlos.

    tengo el código del texbox

    Private Sub ListBox1_Click()

    End Sub

    Private Sub TextBox1_Change()
    Dim i As Integer, Ctrl As Boolean
    Ctrl = True
    For i = Me.ListBox1.ListCount – 1 To 0 Step -1
    If Not IsEmpty(Trim(Me.TextBox1)) Then
    If LCase(Me.ListBox1.List(i)) Like LCase(Me.TextBox1.Value) + “*” Then
    Me.ListBox1.Selected(i) = True
    Ctrl = False
    End If
    End If
    Next
    If Ctrl And Not IsEmpty(Trim(Me.TextBox1)) Then
    MsgBox “Nombre No Registrado”, vbInformation + vbOKOnly, “Sr. Operador”
    End If
    End Sub

    Private Sub UserForm_Initialize()

    ListBox1.ColumnCount = 5
    ListBox1.ColumnWidths = “100 pt;300 pt;200 pt;150 pt;200 pt”
    ListBox1.RowSource = “A1:E1000″

    End Sub

    • http://about.me/sergioacamposh sergioacamposh

      Puedes publicar el archivo con el avance que llevas, por favor.

  • JORGE PALACIOS

    Buenas noches me puedes ayudar a guardar los datos de un formulario vb de excel en una hoja de excel

  • Carmen

    Hola, excelente tutorial. Me gustaria poder colocar el dato seleccionado en el combobox en una celda especifica. Por ejemplo la que este activa.

    Saludos
    Carmen

    • http://about.me/sergioacamposh sergioacamposh

      Para eso tienes que adecuar el código del botón a algo así:

      Private Sub CommandButton1_Click()
      ActiveCell.Value = cmbLista.Value
      End Sub

  • Carmen

    Muchas gracias Sergio. Me funciono perfecto!!!! Saludos

  • JORGE PALACIOS

    quiero agradecerte sergio por toda la ayuda que me has dado, me gustaria saber si me puedes ayudar es que no he podido hacer el numero de factura autoincrementado, y guardar las facturas.
    otro tema es que no he podido calcular el iva ya que no todos los productos llevan iva. por eso no debo sacarle el iva al subtotal sino a uno que otro producto

  • http://about.me/sergioacamposh sergioacamposh

    Para obtener el IVA dependiendo del producto, te recomiendo que tengas una tabla donde junto a los productos tengas una columna que indique el valor del IVA o lo que desees, y en el formulario realizarías un BUSCARV mediante vba. Te puedes guiar en el siguiente post http://exceleinfo.wordpress.com/2012/02/05/video-tutorial-1-uso-de-buscarv-con-vba/

    Para hacer un número incrementable, utiliza una celda donde por media de vba le vayas sumando en 1 cada vez que le des Guardar a tu formulario.

  • JORGE PALACIOS

    Saludos Sergio

    como debo calcular el iva no a todos los productos, sino a unos. se me ocurrio en la bd productos colocar
    una columna que lleva el porcentaje 0.16 que seria el iva.
    al cargar los productos reflejo esa celda en un textbox, en el formulario agrego dos listbox mas uno que es (iva) y otro (calculo iva)
    como el iva seria o 0 o 0.16, la formula seria (precio * cantidad * iva) y el resultado iria a calculo iva al final sumo ese subtotal y lo envio a totaliva
    para sumarlo a el costo total de la factura pero me salen errores, el codigo lo modifique

    ESTE ES EL CODIGO PARA AGREGAR EL PRODUCTO

    Private Sub cmdAgregar_Click()

    If Trim(Me.txtCantidad.Text) = “” Then MsgBox (“Debes ingresar la cantidad!!”): Exit Sub
    If Me.txtPrecio.Text = “” Then MsgBox (“Debes elegir un producto!!”): Exit Sub
    With FRMFACTURA
    .lstCantidad.AddItem (Me.txtCantidad.Text)
    .lstDescripcion.AddItem (Me.cmbProducto.Text)
    .lstValorUnitario.AddItem (Me.txtPrecio.Text)
    .lstValorTotal.AddItem (Str(Val(Me.txtCantidad.Text) * Val(Me.txtPrecio.Text))) ‘AQUI DEBERIA IR LA FORMULA PARA EL IVA
    .lstIva.AddItem (Me.txtIva.Text)
    .lstCalculoIva.AddItem (Str(Val(Me.txtCantidad.Text) * Val(Me.txtPrecio.Text))) ‘AQUI DEBERIA IR LA FORMULA PARA EL IVA

    End With
    FRMFACTURA.sumarValorTotal
    Me.txtPrecio.Text = “”
    Me.txtIva.Text = “”
    Me.txtCantidad.Text = “”
    Me.cmbProducto.ListIndex = -1
    Me.cmbProducto.SetFocus

    End Sub

    Y ESTE ES EL DE LA FACTURA

    Public Sub sumarValorTotal() ‘ suma solo la ultima lista, osea, Valor Total
    Dim i As Integer
    Dim j As Integer
    Dim dTotal As Double
    Dim dTotalIva As Double

    dTotal = 0
    For i = 0 To Me.lstValorTotal.ListCount – 1
    dTotal = dTotal + Val(Me.lstValorTotal.List(i))

    dTotalIva = 0
    For j = 0 To Me.lstCalculoIva.ListCount – 1
    dTotalIva = dTotalIva + Val(Me.lstCalculoIva.List(j))

    Next
    Me.txtSubtotal.Text = dTotal
    Next
    Me.txtCalculoIva.Text = dTotalIva

    If dTotal > 0 Then ‘ aqui se hacen los calculos para el subtotal, iva y total
    If dTotalIva > 0 Then

    ‘Me.txtIva.Text = Round((Val(Me.txtCalculoIva.Text) / 100) * 16, 2)
    Me.txtTotal.Text = Val(Me.txtSubtotal.Text) + Val(Me.txtFlete.Text) + Val(Me.txtIva.Text)

    End If
    End If

    arrTotal = Split(Me.txtTotal.Text, “.”)
    If UBound(arrTotal) = 0 Then
    Me.txtLetras.Text = “SON: ” & Num2Text(arrTotal(0)) & ” PESOS”
    Else
    Me.txtLetras.Text = “SON: ” & Num2Text(arrTotal(0)) & ” CON ” & arrTotal(1) & “PESOS”
    End If

    End Sub

  • JORGE PALACIOS

    Me disculpo por lo desordenado que he sido para hacer mis preguntas, lo que pasa es que a veces no leo bien o me apresuro a preguntar como en este caso y después de un rato de cacharrear me sale o avanzo mas. y pues ni modo de borrar mis intervenciones.
    (de nuevo me disculpo con los lectores, con sergio y demás maestros por así decirlo).

    despues de cacharrerar lo de calcular el iva me salio, con un error.. cuando empiezo a llenar el formulario con productos si el producto no lleva iva me sale un error.. pero si comienzo a llenar el formulario con un producto de tiene iva y despues sin iva y con iva no hay lio…

    ESTE ES EL CODIGO DEL FORMULARIO

    Public Sub sumarValorTotal() ‘ suma solo la ultima lista, osea, Valor Total
    Dim i As Integer
    Dim j As Integer
    Dim dTotal As Double
    Dim dTotalIva As Double

    dTotal = 0
    For i = 0 To Me.lstValorTotal.ListCount – 1
    dTotal = dTotal + Val(Me.lstValorTotal.List(i))

    dTotalIva = 0
    For j = 0 To Me.lstCalculoIva.ListCount – 1
    dTotalIva = dTotalIva + Val(Me.lstCalculoIva.List(j))

    Next
    Me.txtSubtotal.Text = dTotal
    Next
    Me.txtCalculoIva.Text = dTotalIva

    If dTotal > 0 Then ‘ aqui se hacen los calculos para el subtotal, iva y total
    If dTotalIva > 0 Then

    Me.txtIva.Text = Val(Me.txtCalculoIva.Text)
    Me.txtTotal.Text = Val(Me.txtSubtotal.Text) + Val(Me.txtFlete.Text) + Val(Me.txtIva.Text)

    End If
    End If

    arrTotal = Split(Me.txtTotal.Text, “.”)
    If UBound(arrTotal) = 0 Then
    Me.txtLetras.Text = “SON: ” & Num2Text(arrTotal(0)) & ” PESOS”
    Else
    Me.txtLetras.Text = “SON: ” & Num2Text(arrTotal(0)) & ” CON ” & arrTotal(1) & “PESOS”
    End If

    End Sub

    Y ESTE ES EL CODIGO DEL FORMULARIO QUE ME AGREGA EL PRODUCTO

    Private Sub cmdAgregar_Click()

    If Trim(Me.txtCantidad.Text) = “” Then MsgBox (“Debes ingresar la cantidad!!”): Exit Sub
    If Me.txtPrecio.Text = “” Then MsgBox (“Debes elegir un producto!!”): Exit Sub
    With FRMFACTURA
    .lstCantidad.AddItem (Me.txtCantidad.Text)
    .lstDescripcion.AddItem (Me.cmbProducto.Text)
    .lstValorUnitario.AddItem (Me.txtPrecio.Text)
    .lstValorTotal.AddItem (Str(Val(Me.txtCantidad.Text) * Val(Me.txtPrecio.Text)))
    .lstIva.AddItem (Me.txtIva.Text)
    .lstCalculoIva.AddItem (Str(Val(Me.txtCantidad.Text) * Val(Me.txtPrecio.Text * Val(Me.txtIva.Text)))) ‘AQUI DEBERIA IR LA FORMULA PARA EL IVA

    End With
    FRMFACTURA.sumarValorTotal ‘(error 9) EL ERROR ME SALE ACA
    Me.txtPrecio.Text = “”
    Me.txtIva.Text = “”
    Me.txtCantidad.Text = “”
    Me.cmbProducto.ListIndex = -1
    Me.cmbProducto.SetFocus

    End Sub

  • Carmen

    Buenos días, Sergio. Queria solicitar si es posible tu ayuda nuevamente en los siguiente: Tengo un combobox “clientes” que se alimenta de una hoja que trae informacion de una bd en mysql, lo que quiero hacer es que cuando seleccione un cliente aparezca en un segundo combobox los pacientes asociados a ese cliente que se encuentra en una hoja
    que tiene 2 columas una con el nombre del cliente y la otra con el nombre del paciente. Es decir que el cliente se repite tantas veces como pacientes esten asociado a el. El problema que tengo es que solo me devuelve un paciente y no necesariamente el correcto. Adicionalmente, tengo una tercera hoja donde coloque un boton para mostrar el formulario con los combobox y me gustaria que al presionar aceptar en la celda que tenia activa se colocaran unos datos segun la seleccion.A continuación coloco el codigo que tengo:
    ———————————————————————————————————————–
    ————————————————————————————————————————
    Private Sub btnAceptar_Click()
    ActiveCell.Value = cmbClientes.Value
    End Sub

    Private Sub cbCerrar_Click()
    frmBuscar.Hide
    End Sub

    Private Sub cmbClientes_Change()
    Dim rango As Range
    Dim valor_buscado As String
    Dim resultado As String

    cmbPacientes.Clear
    valor_buscado = cmbClientes.Value

    Sheets(“BD_Pacientes”).Select
    ult = Cells(Rows.Count, 1).End(xlUp).Row
    Set rango = Sheets(“BD_Pacientes”).Range(“D:E”)

    resultado_temp = “”
    i = 0
    Do Until i < ult And resultado “” And Not (IsEmpty(resultado))
    i = i + 1
    resultado = Application.VLookup(valor_buscado, rango, 2)
    If Not (IsEmpty(resultado)) And resultado resultado_temp Then
    cmbPacientes.AddItem resultado
    End If
    resultado_temp = resultado
    Loop

    End Sub

    Private Sub UserForm_Activate()
    cmbClientes.RowSource = “Clientes”
    cmbClientes.SetFocus
    End Sub

    —————————————————————————————————————————–
    —————————————————————————————————————————–

  • edgar

    yo necesito uno, pero el cual se vaya actualizando cada vez que ingrese un registro nuevo, se puede usar para una base de datos donde se consulte desde otro libros u otras hojas de calculo ??

    • http://about.me/sergioacamposh sergioacamposh

      El siguiente código te asigna el nombre del rango cada vez que lo corres, será cuestión que lo ejecutes antes de mostrar el formulario, para que te refresque la lista cada vez que lo ejecutes.

      Private Sub CommandButton1_Click()
      Application.ScreenUpdating = False
      Range(“A2″).Select
      Range(Selection, Selection.End(xlDown)).Select
      With ActiveWorkbook
      .Names.Add Name:=”lstAsesores”, RefersToR1C1:=Selection
      .Names(“lstAsesores”).Delete
      .Names.Add Name:=”lstAsesores”, RefersToR1C1:=Selection
      End With
      End Sub

      • Mijail Diego Canchari

        la parte luego de “with active workbookd” tambien lo hiciste con grabación de macro?

        • sergioacamposh

          Lo del Width lo modifiqué manualmente para optimizar el código.

  • JORGE PALACIOS

    Saludos Sergio, quiero preguntarte en relación al combobox, lo que pasa es que mi bd o llamada hoja donde tengo la informacion me toco colocarle una fila de titulos para poder manipular una tabla dinamica. esto me ocasiona que si tenia un combobox para ingresar productos el primer producto que me sale es el nombre que le di a los titulos de las columnas, si lo ordeno se me pierde mi titulo. eso tambien me afecta al momento de ver los datos por listbox para llamarlos a txt, me sale los titulos de las columnas. lo requerido es que estos titulos queden estaticos y no se mezclen al momento de ordenar las filas, y que no se muestren si los llamo por listbox o combobox.

    agradezco tu atencion y tiempo prestado. asi como tu ayuda

    • http://about.me/sergioacamposh sergioacamposh

      Al momento de ordenar los datos especificas que tu base tiene títulos ?? Por que si así lo realizas, no debe por qué tomarte los títulos para ordenar.

      Te recomiendo hacer pruebas con la grabadora de macros: una prueba especificando en el formulario que tus datos tienen título, y otra prueba especificando lo contrario. Revisa el código generado y con eso tendrás el dato que pides.

  • JORGE PALACIOS

    Muchas gracias Sergio
    lo de la grabadora de macros para ordenar es claro, lo que pasa es que necesito que al usar el combobox no me salga el primer registro o fila que es mi titulo de tabla o bd. lo mismo con el listbox si lo voy a modificar el registro o fila me lo muestra y lo requerido es que no se pueda modificar.

    • http://about.me/sergioacamposh sergioacamposh

      Te recomiendo que revises las propiedades de los controles. Tanto el listbox como el combobox tienen una propiedad que se llama ColumnHeads para especificar que tu lista tiene títulos.

  • JORGE PALACIOS

    Otra cosa sergio

    quiero preguntarte si puedo hacer que no salgan los espacios en blanco al momento de visualizar
    las filas en el listbox, lo que pasa es que en RowSource lo coloco en “A1:E1000″ por logica para
    que me cargue mas informacion, pero las filas llenas van hasta “A1:E359″ asi no me muestra
    las filas vacias, pero si ingreso otro registro lo deja cargar en la bd pero no lo refleja en el
    listbox

    Private Sub UserForm_Initialize()

    Sheets(“CLIENTES”).Select
    ListBox1.ColumnCount = 5
    ListBox1.ColumnWidths = “290 pt;100 pt;200 pt;120 pt;200 pt”
    ListBox1.RowSource = “A1:E1000″

    End Sub

    lo que pasa es que en la columna (A) que concatena varias columnas ejemplo (b,c,d),
    la formula va dentro de la columna y bien se corrigio para queno la lea como si estuviese llena,
    pero resulta que cuando ordeno los datos,
    me toma como si las filas que tienen la funcion estuviese llenas y me envia toda
    la informacion al final de las celdas vacías.

    • http://about.me/sergioacamposh sergioacamposh

      Tu reto será hacer ese rango de manera dinámica, por código. Por eso no se recomienda escribir el rango a mano, sino que se vaya modificando según tus necesidades.

  • JORGE PALACIOS

    como siempre que gran ayuda sergio

    lo que pasa es que en la columna (A) que concatena varias columnas ejemplo (b,c,d),
    la formula va dentro de la columna y bien se corrigio para queno la lea como si estuviese llena,
    pero resulta que cuando ordeno los datos,
    me toma como si las filas que tienen la funcion estuviese llenas y me envia toda
    la informacion al final de las celdas vacías.

    • http://about.me/sergioacamposh sergioacamposh

      Aquí viene la intención de tener visión de todo el entorno de trabajo. Todos sabemos que aunque la formula te de resultados vacíos, sigue teniendo datos y se tomará para todos las funciones de Excel.

      Así como tendrás que hacer el rango dinámico, también tienes que haces de manera dinámica que se llene la columna con fórmulas simpre y cuando haya datos en las columnas de la izquierda.

  • JORGE PALACIOS

    Saludos Sergio

    dices

    Te recomiendo que revises las propiedades de los controles. Tanto el listbox como el combobox tienen una propiedad que se llama ColumnHeads para especificar que tu lista tiene títulos.

    al colocar la propiedad en true me sale como titulo las columnas (columna a, columna b) y lo que deberia salir es como estan nombradas las columnas (descripcion, producto)

    es que te cuento mis tablas estaban bien hasta que me toco agregar un titulo para poderlas manipular por tablas dinamicas, como resultado

    al visualizar el formulario que me modifica datos por listbox no bloquea los titulos los muestra como un registro o fila igual que los datos

    y al agregar los productos a la factura por un formulario que tiene un combobox es lo mismo me muestra el titulo como un producto mas.

    lo que necesito hacer es que no se refleje o por lo menos que no se dejen manipular como los demas datos

    • http://about.me/sergioacamposh sergioacamposh

      Jorge, con un poco de sarcasmo y sin mala intención, parece que soy tu tutor personal en esto de vba, lo cual se vuelve algo injusto para las personas que visitan mi Blog.

      Me reservo el contestarte a todas tus consultas, más bien te invito a que busques en toda la información que he publicado en el Blog, y bajarte cursos de vba. Estoy seguro que te harás un autodidacta estupendo si aprendes a sacar tus propias conclusiones.

  • Carmen

    Sergio muchas gracias por todos los tips que me indicaste para lo de combobox dependientes me ha servido de mucho. En tu blog he conseguido mucha información valiosa.
    Quisiera consultarte una cosa mas y disculpa la molestia, tengo un poco de problemas con los rangos dinamicos o mejor dicho para escribir la funcion desref en vba
    = DESREF(Datos!$B$1;Datos!$F$2-1;0;Datos!$F$1;1)
    he intentado escribirla asi:
    = Offset(pos – 1, 1) error No se ha definido funcion o sub
    asi:
    =Offset(Worksheets(“Datos”).Range(A1).Value, pos – 1, 0, n, 1) error No se ha definido funcion o sub

    • http://about.me/sergioacamposh sergioacamposh

      Esta función la quieres ingresar en una celda ? Si es así, puedes usar esto:

      ActiveCell.FormulaLocal = “=DESREF(Datos!$B$1;Datos!$F$2-1;0;Datos!$F$1;1)”

      • Carmen

        No, lo que necesito es colocarlo en el evento onchange del combobox en el userform (vba)

      • http://about.me/sergioacamposh sergioacamposh

        Supongo que lo que quieres hacer es llenar los datos del Combo. Mejor te sugiero que esa fórmula la agregues en una celda y los datos del Combo los llenes desde el resultado que te de en la celdas.

  • Manuel S.

    Sergio, se ve que tienen bastante experiencia en esto! querá ver si me puede ayudar en lo siguiente. Tengo creado un Combobox en una hoja que selecciona tipos de producto, cambia los datos de una tabla pivote oculta y por lo tanto las referencias del reporte. En mi office funciona a la perfección tengo 2010; sin embargo, no así en Office previos, qué puedo hacer para compartir este archivo y que pueda ser visto y editado el combobox y su macro por otros usuarios con Office previos?

    ya intenté guardarlo como versión Office 97 – 2003 y nada…

    Saludos,

    • http://about.me/sergioacamposh sergioacamposh

      Será cuestión de ver si el la macro que modifica la tabla dinámica fue grabada/escrita en Excel 2010, por que aunque la guardes de nuevo en Excel 2003, el código ya está hecho para 2010.

      Qué tipo de error es el que te arroja ??

      Definitivamente la cuestión es por compatibilidad de versiones.

  • Genesis

    Como utilizo eso del macro???

    • http://about.me/sergioacamposh sergioacamposh

      Podrías ser más específico con tu pregunta, por favor.

  • Viridianito

    ¡Qué tal!
    Realmente no he visto mucho tu Post,
    puesto que no tengo dudas sobre el manejo del Excel en VB
    (no lo necesito, por el momento),
    pero por lo completo que lo he notado,
    tal vez lo necesite algún día.
    Aunque tengo una duda con respecto a los ComboBox…
    Tengo un ComboBox con Algunos Items
    (nombres de personas),
    y quiero hacer una función de AutoCompletar,
    He buscado y lo he coseguido,
    pero, por ejemplo.
    si quiero buscar a una persona,
    pero no conozco el nombre, ¿qué busco?
    El apellido, claro,
    pero Suponiendo que tengo los Items:
    JOSE LOPEZ
    JOSE MONTERO
    Si, por ejemplo,
    empiezo a escribir montero,
    no me selecciona “JOSE MONTERO”,
    Sólo funciona para los primeros carácteres.
    ¿Cómo podría solucionar este “problema”?

    • http://about.me/sergioacamposh sergioacamposh

      El autollenado funciona precisamente para completar las palabras desde el principio, no es problema, es característica de los Combos.

      Si escribes nada más Montero y das Enter, la macro del ejemplo deberá dirigirte a José Montero, tal cual lo haría Excel en la búsqueda.

  • Pingback: EXCELeINFO – Excel vba e información - Estadísticas del Blog 2012, lo más visitado()

  • Luis Robles

    hola bro como esta si quiero hacer en excel como un menu para ingresar todo tipo de archivo y documentos que e ingresado todo el dia como le ago soy nuevo me podrias ayudar pls

    • Sergio Alejandro Campos

      Hola Luis:

      Podrías ser más específico con tu pregunta, no me queda claro cuando dices “ingresar todo tipo de archivos”.

  • Chicharo Quintero

    Hola, estoy haciendo un formato para impresión de recibos en excel, ya tengo todo resuelto, lo único que no he sabido hacer es un formulario para buscar por apellido o nombre en otra hoja de mi libro (hoja2) y que el resultado de la busqueda se inserte en determinada celda de mi formato de recibo (hoja1).

    El formulario de busqueda he logrado hacerlo, pero no he sabido como insertarlo como dato en la celda de mi hoja1.

    De antemano gracias por tu ayuda, saludos.

    • sergioacamposh

      Para insertar un valor de un objeto de un formulario a una celda puedes usar un ejemplo como este.

      Sheets(“Hoja1″).Range(“A1″).Value = UserForm1.TextBox1.Value

      Adecúa la celda donde quieres que se ingrese el valor.

  • javier

    Con este ejemplo me he basado para realizar mi pregunta que te hice anteriormente si me carga los datos de la tabla A pero al guardar y abrir de nuevo el form me carga los datos de la tabla A y quiero que me muestre los datos de la tabla B con los datos que llene previamente en el form
    No se si me explico??

  • Liss Paredes Sñj Lsr

    hola estoi asiendo una factura incrustando datos de una hoja en un cuadro combinado pero necesito que el resultado de eso no sea numerico sino la informacion de una lista de celdas de otra hoja como lo ago porfa m pueds ayudar

  • Dante Hernandez Espinoza

    como puedo hacer esto en visual.net

Sistema Wordpress corriendo bajo... Windows Server 2008 R2
Follow

Get every new post delivered to your Inbox

Join other followers