Buscar nombre he insertar datos tipo DNI

Estoy haciendo una aplicación donde se van a poner nombres de personas y empresas y en la columna de al lado el DNI o Cif, he usado la siguiente fórmula para no tener que estar escribiendo los cifs, si no que una vez tenga la primera vez puesto el nombre después se ponga automático

=SI.ERROR(BUSCARV(C5;Hoja1!$C$5:$D$2000;2;0);"")

En la columna "C" están los nombres y en la columna "D" están los DNI/CIF, esta fórmula esta en las celdas de la columna "D" y me da error Circular, lo que he hecho es ir a "Comprobar Errores y Clicar en "Ignorar error" aún así de vez en cuando sigue saltando el error.

He buscado y no he encontrado ninguna macro para hacerlo desde VBA, y así quitar esta fórmula, ¿Alguien sabe si es posible?

2 Respuestas

Respuesta
1

En otras columnas o entra hoja debes poner los nombres únicos con su respectivo DNI o Cif.

Por ejemplo:

Si en la columna C vas a capturar varias veces el mismo nombre. Entonces buscas ese nombre en la columna "Z" :

De esa manera no tendrás error circular en la fórmula. Y en otras columnas tendrás tu base de nombres únicos.

¡Gracias!  así es como lo tengo en otras aplicaciones, he visto que hay macros que también lo hacen, pero todas las que he encontrado se refieren siempre a una celda en concreto, así que no me sirven

Tienes un error circular, porque estás buscando la misma celda C5 en el rango $C$5:$D$2000.

Pon el siguiente código en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, c As Range, f As Range, rng2 As Range
  Set rng = Intersect(Target, Range("C5:C" & Rows.Count))
  If Not rng Is Nothing Then
    For Each c In rng
      Set rng2 = Range("C4:C" & c.Row - 1 & ", C" & c.Row + 1 & ":C" & Rows.Count)
      Set f = rng2.Find(c, , xlValues, xlWhole, , , False)
      If Not f Is Nothing Then
        c.Offset(, 1).Value = f.Offset(, 1).Value
      End If
    Next
  End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro
Respuesta
1

Xafel, no vengo a ayudarte con la respuesta (que ya te dio Dante), sino a decirte que no es buena idea que traiga el DNI en función del nombre por dos razones principales:

1) ¿Qué pasa si tienes dos personas que se llaman igual?

2) Si el nombre no lo ponés exactamente como lo tenés en tu base, no te lo va a reconocer

Por esto creo que lo mejor es que pongas en DNI y la función te traiga el nombre

Suerte con tu archivo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas