BUSCAR DATOS EXCEL EN FORMULARIO WORD
Publicado por Juan76 (7 intervenciones) el 23/12/2015 18:08:51
Hola.
Tengo un userform en un libro de excel que me busca datos en la hoja1 (introduciendo el dato a buscar en el textbox1 y buscándolo en la columna A) y me coloca los resultados de la fila encontrada en los textbox2 y textbox3. El código es:
Ahora tengo un userform en Word idéntico al de excel y me gustaría saber como se puede modificar el código anterior para que haga lo mismo, es decir, que abra invisible la hoja de excel y al introducir el dato a buscar el el text1, ponga los resultados en los text2 y text3.
Gracias.
Tengo un userform en un libro de excel que me busca datos en la hoja1 (introduciendo el dato a buscar en el textbox1 y buscándolo en la columna A) y me coloca los resultados de la fila encontrada en los textbox2 y textbox3. El código es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Option Explicit
Private Sub CommandButton1_Click()
'
'Declaramos las variables.
Dim Nombre As Variant
Dim Nombre1 As Variant
Dim Rango As Range
Dim NombreBuscado As Variant
Dim Titulo As String
'
Titulo = "EXCELeINFO"
'
'En caso de error...
On Error GoTo ErrorHandler
'
Set Rango = Sheets(1).Range("A1").CurrentRegion
'
'Validamos si el valor es numérico.
NombreBuscado = Me.TextBox1.Value
If IsNumeric(NombreBuscado) Then
NombreBuscado = CDbl(NombreBuscado)
ElseIf IsDate(NombreBuscado) Then
'NombreBuscado = CDate(NombreBuscado)
NombreBuscado = CLng(CDate(NombreBuscado))
End If
'
'Asignamos a la variable Nombre el resultado del BUSCARV.
Nombre = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 2, 0)
Nombre1 = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 3, 0)
'
'Pasamos el resultado al cuadro de texto (TextBox).
With Me
.TextBox2.Value = Nombre ' Coloca en este text el valor de la columna 2, de la fila encontrada a partir de A1
.TextBox3.Value = Nombre1 ' Coloca en este text el valor de la columna 3, de la fila encontrada a partir de A1
.lblMensaje.Visible = False
.TextBox1.SetFocus
End With
'
Exit Sub
'
'De haberse encontrado un error mostramos mensajes.
ErrorHandler:
If Err.Number = 1004 Then
With Me
.lblMensaje.Caption = "El valor '" & NombreBuscado & "' no fue encontrado."
.lblMensaje.Visible = True
.TextBox1.SetFocus
End With
Else
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, Titulo
End If
End Sub
'
'
Private Sub UserForm_Initialize()
'
'Ocultamos controles.
With Me
.TextBox2.Enabled = False
.lblMensaje.Visible = False
End With
'
End Sub
'----------------------------------------------------------------------------------------------------
Ahora tengo un userform en Word idéntico al de excel y me gustaría saber como se puede modificar el código anterior para que haga lo mismo, es decir, que abra invisible la hoja de excel y al introducir el dato a buscar el el text1, ponga los resultados en los text2 y text3.
Gracias.
Valora esta pregunta


0