Hola Epa2 :
Creo que aún no has implementado la asignación: Workbooks("nombre_1er_archivo").Worksheets("formul ario") ...
De modo que -si estás de acuerdo- te adjunto un modelo de lo que quieres realizar. Por ejemplo:
Libro1.xls : contiene el UserForm1
Libro2.xls : contiene la base de datos con DNI y Apellido y Nombre
UserForm1 : contiene al TextBox1 (DNI), al TextBox2 (AyN) y al CommandButton1 (Buscar)
En un Módulo de
Prueba1.xls tienes la siguiente macro:
Código:
Sub BuscaDNIyNOMBRE()
' UserForm1 cuenta con: TextBox1(=DNI), TextBox2(=AyN) y
' CommandButton1(=botón de búsqueda)
UserForm1.Show
UserForm1.Hide
Unload UserForm1
End Sub
Mientras que como código del
UserForm1 tienes:
Código:
Private Sub CommandButton1_Click()
Dim RangeDNI As Object
Dim DNI As String, AyN As String
Dim Respuesta As Single
' En A1: DNI. En B1: AyN
[A1:B1].ClearContents
TextBox2.Value = ""
DNI = TextBox1.Text
Application.ScreenUpdating = False
Workbooks.Open FileName:="C:\Aaa\Prueba2.xls"
Set RangeDNI = Cells.Find(What:=DNI, LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If RangeDNI Is Nothing Then
Respuesta = MsgBox("DNI no hallado")
GoTo Fin
End If
' Tomo el valor de AyN (DNI no hace falta pues ya lo tengo)
AyN = RangeDNI.Offset(0, 1).Value
' Asigno AyN al TextBox2
TextBox2.Value = AyN
'Asigno DNI y AyN a las celda A1 y B1 respectivamente
[Prueba1.xls!A1].Value = DNI
[Prueba1.xls!B1].Value = AyN
Fin:
ActiveWindow.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub
Asigna la macro "
Sub BuscaDNIyNOMBRE" a un botón de macro y verás que además de buscarse el valor de DNI que ingreses en el
TextBox1 en "
Prueba2.xls", se desplegará un mensaje de advertencia cuando el DNI entrado no se encuentre en la base de datos.
Creo que tienes para "entretenerte" un buen rato y de paso compara con tu código para encontrar por qué no se llega a ver en las celdas la información.
Suerte y luego cuentas como te fue...