Visual Basic para Aplicaciones - BUSCAR DATOS EXCEL EN FORMULARIO WORD

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 5 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder