Listas Desplegable y Calcular Código Excel

Quisiera hacer listas desplegables de Departamento, Provincia y Distrito:

Quiero calcular el Ubigeo a través de un botón. Este ubigeo es el código concatenado de cada departamento provincia y distrito. Al final va a estar conformado por 6 dígitos.

Deseo que al hacer click se calcule o busque el Ubigeo según los valores que tengo en mis tablas.

¿Existe alguna manera de poder llenar fácilmente mis celdas con listas desplegables?

Si necesitn que las tablas se representen de otra forma para facilitar las listas desplegables me avizan.

Mi archivo:  http://1drv.ms/1eqdbWm 

1 respuesta

Respuesta
1

¿Cómo quieres formar las listas desplegables con fórmulas o con macros?

Qué quieres que te aparezca en las listas, ¿los números o los nombres?

Ejemplo, quieres que en la lista te aparezcan los códigos:

01

02

03

...

O quieres nombre

AMAZONAS

ANCASH

APURIMAC

...

Te anticipo que con fórmulas, es muy complicado, y hay que poner fórmulas en las columnas E, F, G, H e I .

Hola Dante,

Deseo que me aparezca los nombres. No se si se puede hacer las listas desplegables en validación de datos, es muchos más transparente el código para el usuario. Lo que sucede es que son 400 registros a que debo ponerles esas listas. Si en caso no se puede hacer más fácil entonces solo deseo calcular el código ubigeo.

Ya te había enviado una solución con fórmulas

Hacer filtros por Departamento, Provincia y Distrito y que aparezca el UBIGEO Excel Macros.

Si no es lo que necesitas, entonces tienes que ser más específico con lo que quieres.

Pon ejemplos, con imágenes, con colores o con dibujos de lo que quieres, de esa forma podré entender lo que necesitgas.

No deseo matrices porque son 400 registros a más. Pesa mucho. Deseo una macro que calcule o encuentre los códigos de cada departamento, provincia y distrito. Y los concatene en una celda. Las listas desplegables que hiciste no lo pude replicar porque no entendí lo que habías hecho en el excel. Necesito que el código o fórmulas sea totalmente transparente para el usuario. Gracias

Lo más práctico sería un formulario en un userform, en el userform se pueden poner combos en lugar de listas desplegables, es más eficiente programar con combos que con las listas desplegables.

Te preparo un formulario (userform)

Como te digo son 400 registros no es recomendable. Lo único que deseo es calcular el ubigeo. Ya no quiero listas.

Ya no entendí.

¿Quieres listas?

¿Quieres combos en un formulario?

Solo quiero que me calcule el código Ubigeo. Deseo que según el Departamento, Provincia y Distrito., busque en mi pestaña Ubigeo el código correspondiente.

Es decir:

depa prov dist ubigeo

AMAZONAS, CHACHAPOYAS, CHACHAPOYAS 010101

Eso lo quien que se haga con macros con un botón para toda la columna. Si el depa, prov y dist esta vacío no debe calcular nada.

Te anexo la macro para buscar el UBIGEO, si el depa, prov o dist están mal escritos o no existen, no pone nada.

Asigna la siguiente macro a un botón

Sub BuscarUbigeo()
'Por.Dante Amor
    Set h1 = Sheets("PxQ")
    Set h2 = Sheets("UBIGEO")
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        coddepa = ""
        codprov = ""
        coddist = ""
        ubigeo = ""
        For j = 2 To h2.Range("B" & Rows.Count).End(xlUp).Row
            If h2.Cells(j, "B") = h1.Cells(i, "A") Then
                coddepa = h2.Cells(j, "A")
                For k = 2 To h2.Range("D" & Rows.Count).End(xlUp).Row
                    If h2.Cells(k, "D") = coddepa And _
                       h2.Cells(k, "F") = h1.Cells(i, "B") Then
                        codprov = h2.Cells(k, "E")
                        For m = 2 To h2.Range("H" & Rows.Count).End(xlUp).Row
                            If h2.Cells(m, "H") = coddepa And _
                               h2.Cells(m, "I") = codprov And _
                               h2.Cells(m, "K") = h1.Cells(i, "C") Then
                                coddist = h2.Cells(m, "J")
                                Exit For
                            End If
                        Next
                        Exit For
                    End If
                Next
                Exit For
            End If
        Next
        If coddepa = "" Or codprov = "" Or coddist = "" Then
            ubigeo = ""
        Else
            ubigeo = Format(coddepa, "00") & Format(codprov, "00") & Format(coddist, "00")
        End If
        h1.Cells(i, "D") = ubigeo
    Next
End Sub

La macro funciona con el archivo que pusiste al inicio de tu pregunta.

S a l u d o s . D a n t e   A m o r

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas