Autocompletar un ComboBox luego de buscar

Tengo la siguiente inconveniencia. Tengo un combobox en la cual utilizo el siguiente código para rellenar los valores que deseo.

Me. Tech. Clear
For Each Celda In H1.Range("AP5:AP" & H1.Range("AP" & Rows.Count).End(xlUp).Row)
If Celda = "ACTIVE" Then Tech.AddItem Celda(0, -13) & " " & Celda(0, -12)
Next

El problema es que necesito que haga lo siguiente y no se como codificarlo: En la columna AG tengo el personal registrado, los que me interesan de la lista son los que son "Técnico", al identificarlos, que verifique 9 celdas a la derecha si está "ACTIVO" para que lo sume a la carga del combobox y si lo está, entonces que agregue el apellido que está 4 celdas a la izquierda, un espacio, y el nombre que está 3 celdas a la izquierda. ¿Cómo lo hago? Estoy por volverme loco!

1 respuesta

Respuesta

Este es el resultado de la macro para ahorrar codigo use una funcion filtro que muestra todos los que son tecnicos activos, luego hace un concatenado en los apellidos y el nombre y los carga a un combobox, para esto crea una una tabla temporal en la hoja2 esta sirve para realizar el concatenado y cargar slo aquellos registros qeu cumplan con las dos condiciones

y esta es la macro que pegas dentro de un formulario

Sorry por error lo envíe sin el código que es este

Private Sub UserForm_Initialize()
filas = Range("ac4").CurrentRegion.Rows.Count
Set datos = Range("ac4").Resize(filas, 14)
Sheets("hoja2").Cells.Clear
With datos
    . AutoFilter 5, "tecnico"
    .AutoFilter 14, "activo"
    .Offset(1).Copy
    Sheets("hoja2").Range("a1").PasteSpecial
    Set nombres = Sheets("hoja2").Range("a1").CurrentRegion
    '.AutoFilter
End With
With nombres
    filas = .Rows.Count
    Set nombres = .Columns(1).Resize(filas, 2)
    For i = 1 To filas
        nombre = Join(Application.Index(.Rows(i).Value, 1, 0), " ")
        ComboBox1.AddItem nombre
    Next i
End With
Set datos = Nothing: Set nombres = Nothing
End Sub

me parece bien, el problema acá sería que al ejecutar el código desde otra hoja, me da errores por el mismo hecho. Yo todo esto lo hago de una hoja que se llama Menu, no lo hago propiamente en la hoja donde se almacena la información (desde Visual y no con macro)

Pues la respuesta la has dado tu mismo solo pones antes del range el nombre de la hoja por decir sheets("hoja1"), range("ac4")..., desde visual basic no se como seria la programación

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas