Foros del Web » Soporte técnico » Ofimática »

Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista

Estas en el tema de Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista en el foro de Ofimática en Foros del Web. HOLA A TODOS. TENGO UNA HOJA DE CALCULO CON UN FORMULARIO QUE BUSCA DATOS EN UNA LISTA.. TENGO ESTA MACRO: Private Sub CommandButton1_Click() On Error ...
  #1 (permalink)  
Antiguo 03/08/2007, 18:09
 
Fecha de Ingreso: octubre-2004
Mensajes: 26
Antigüedad: 14 años, 11 meses
Puntos: 0
Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista

HOLA A TODOS. TENGO UNA HOJA DE CALCULO CON UN FORMULARIO QUE BUSCA DATOS EN UNA LISTA.. TENGO ESTA MACRO:

Private Sub CommandButton1_Click()

On Error GoTo noencontro

[a1].Select
[A:A].Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

ActiveCell.Offset(0, 1).Select
TextBox2 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox3 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox4 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox5 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox6 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox7 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox8 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox9 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox10 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox11 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox12 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox13 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox14 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox15 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox81 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox16 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox17 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox18 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox19 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox20 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox21 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox22 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox23 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox24 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox25 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox26 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox27 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox28 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox29 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox30 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox31 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox32 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox33 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox34 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox35 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox36 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox37 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox38 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox39 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox40 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox41 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox42 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox43 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox44 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox45 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox46 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox47 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox48 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox49 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox50 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox51 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox52 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox53 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox54 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox55 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox56 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox57 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox58 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox59 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox60 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox61 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox62 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox63 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox64 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox65 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox66 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox67 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox68 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox69 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox70 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox71 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox72 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox73 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox74 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox75 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox76 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox77 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox78 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox79 = ActiveCell
ActiveCell.Offset(0, 1).Select
TextBox80 = ActiveCell


Exit Sub

noencontro:

MsgBox "No hay coincidencias"


End Sub

DE ESTA MANERA BUSCA, ENCUENTRA EL NUMERO, Y ME DEVUELVE TODOS LOS DATOS A UN FORMULARIO.. PERFECTO.. PERO.. QUISIERA QUE ME AYUDARAN A MODIFICAR LA MACRO.. PARA QUE ME PERMITA MODIFICAR LOS DATOS QUE ME DEVUELVE, Y QUE ESTOS SE EJECUTEN EN LA HOJA DE CALCULO (BASE DE DATOS) DE DONDE LAS TOMA POR EJEMPLO
C O L U M N A S
--A-----B-------C----D------E-----F----G----H-----I-----J------
filas
1 SR---Nombre-Direcc-Ciudad-Estad-Pais-Telef-Edad-Email- comentarios
2
3

ok.. yo doy la orden a la macro de buscar "1" en la columna "A:A", entonces me devuelve todos los datos siguientes:el nombre direccion etc etc.

ahora... yo quiero que cuando me este mostrando los datos por ejemplo.. la edad (que se ubica en la celda H1).. que supongamos fuera 30 años, yo pudiera modificar de 30 a 31 años, y entonces la celda H1, cambiara a 31...
eso es lo que quiero hacer.. se que debe ser mucho trabajo.. asi que me conformo con que me pasaran el codigo de una sola linea..y yo desarrollo las demas.. por ejemplo.. la de como modificar SR, que es A1, y yo desarrollar el codigo para nombre direccion ciudad estado pais telefono edad email y comentarios...
Ojala y me puedan Ayudar...

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 04/08/2007, 20:19
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 12 años, 5 meses
Puntos: 88
Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista

Primero permíteme sugerirte un cambio a tu macro de modo de "reducir a la mitad" tu código:
Código:
TextBox2 = ActiveCell.Offset(0, 1)
TextBox3 = ActiveCell.Offset(0, 2)
TextBox4 = ActiveCell.Offset(0, 3)
Y a partir del cambio anterior, se deduce -rápidamente- lo que deseas realizar:
Código:
ActiveCell.Offset(0, 1) = TextBox2
ActiveCell.Offset(0, 2) = TextBox3
ActiveCell.Offset(0, 3) = TextBox4
Saludos
...
  #3 (permalink)  
Antiguo 06/08/2007, 17:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 26
Antigüedad: 14 años, 11 meses
Puntos: 0
Re: Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista

gracias.. ya cambie mi codigo a como me recomendaste y funciona perfecto.. pero.. tengo una duda..
donde me indicas el siguiente codigo:
ActiveCell.Offset(0, 1) = TextBox2
ActiveCell.Offset(0, 2) = TextBox3
ActiveCell.Offset(0, 3) = TextBox4 etc etc..

este codigo lo capturo inmediatamente despues de mi codigo anterior:

TextBox2 = ActiveCell.Offset(0, 1)
TextBox3 = ActiveCell.Offset(0, 2)
TextBox4 = ActiveCell.Offset(0, 3)

osea.. aqui capturaria el codigo de arriba?
no necesita nada mas..? o el codigo : TextBox2 = ActiveCell.Offset (0,1) va dentro del:

Private Sub TextBox2_change()

TextBox2 = ActiveCell.Offset (0,1)

? lo que pasa es que lo hice como menciono aqui:


Private Sub CommandButton1_Click()

On Error GoTo noencontro

[A1].Select
[A:A].Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

TextBox2 = ActiveCell.Offset(0, 1)
TextBox3 = ActiveCell.Offset(0, 2)
TextBox4 = ActiveCell.Offset(0, 3)
TextBox5 = ActiveCell.Offset(0, 4)
TextBox6 = ActiveCell.Offset(0, 5)
TextBox7 = ActiveCell.Offset(0, 6)
TextBox8 = ActiveCell.Offset(0, 7)
TextBox9 = ActiveCell.Offset(0, 8)
TextBox10 = ActiveCell.Offset(0, 9)
TextBox11 = ActiveCell.Offset(0, 10)
TextBox12 = ActiveCell.Offset(0, 11)
TextBox13 = ActiveCell.Offset(0, 12)
TextBox14 = ActiveCell.Offset(0, 13)
TextBox15 = ActiveCell.Offset(0, 14)
TextBox16 = ActiveCell.Offset(0, 16)
TextBox17 = ActiveCell.Offset(0, 17)
TextBox18 = ActiveCell.Offset(0, 18)
TextBox19 = ActiveCell.Offset(0, 19)
TextBox20 = ActiveCell.Offset(0, 20)
TextBox21 = ActiveCell.Offset(0, 21)
TextBox22 = ActiveCell.Offset(0, 22)
TextBox23 = ActiveCell.Offset(0, 23)
TextBox24 = ActiveCell.Offset(0, 24)
TextBox25 = ActiveCell.Offset(0, 25)
TextBox26 = ActiveCell.Offset(0, 26)
TextBox27 = ActiveCell.Offset(0, 27)
TextBox28 = ActiveCell.Offset(0, 28)
TextBox29 = ActiveCell.Offset(0, 29)
TextBox30 = ActiveCell.Offset(0, 30)
TextBox31 = ActiveCell.Offset(0, 31)
TextBox32 = ActiveCell.Offset(0, 32)
TextBox33 = ActiveCell.Offset(0, 33)
TextBox34 = ActiveCell.Offset(0, 34)
TextBox35 = ActiveCell.Offset(0, 35)
TextBox36 = ActiveCell.Offset(0, 36)
TextBox37 = ActiveCell.Offset(0, 37)
TextBox38 = ActiveCell.Offset(0, 38)
TextBox39 = ActiveCell.Offset(0, 39)
TextBox40 = ActiveCell.Offset(0, 40)
TextBox41 = ActiveCell.Offset(0, 41)
TextBox42 = ActiveCell.Offset(0, 42)
TextBox43 = ActiveCell.Offset(0, 43)
TextBox44 = ActiveCell.Offset(0, 44)
TextBox45 = ActiveCell.Offset(0, 45)
TextBox46 = ActiveCell.Offset(0, 46)
TextBox47 = ActiveCell.Offset(0, 47)
TextBox48 = ActiveCell.Offset(0, 48)
TextBox49 = ActiveCell.Offset(0, 49)
TextBox50 = ActiveCell.Offset(0, 50)
TextBox51 = ActiveCell.Offset(0, 51)
TextBox52 = ActiveCell.Offset(0, 52)
TextBox53 = ActiveCell.Offset(0, 53)
TextBox54 = ActiveCell.Offset(0, 54)
TextBox55 = ActiveCell.Offset(0, 55)
TextBox56 = ActiveCell.Offset(0, 56)
TextBox57 = ActiveCell.Offset(0, 57)
TextBox58 = ActiveCell.Offset(0, 58)
TextBox59 = ActiveCell.Offset(0, 59)
TextBox60 = ActiveCell.Offset(0, 60)
TextBox61 = ActiveCell.Offset(0, 61)
TextBox62 = ActiveCell.Offset(0, 62)
TextBox63 = ActiveCell.Offset(0, 63)
TextBox64 = ActiveCell.Offset(0, 64)
TextBox65 = ActiveCell.Offset(0, 65)
TextBox66 = ActiveCell.Offset(0, 66)
TextBox67 = ActiveCell.Offset(0, 67)
TextBox68 = ActiveCell.Offset(0, 68)
TextBox69 = ActiveCell.Offset(0, 69)
TextBox70 = ActiveCell.Offset(0, 70)
TextBox71 = ActiveCell.Offset(0, 71)
TextBox72 = ActiveCell.Offset(0, 72)
TextBox73 = ActiveCell.Offset(0, 73)
TextBox74 = ActiveCell.Offset(0, 74)
TextBox75 = ActiveCell.Offset(0, 75)
TextBox76 = ActiveCell.Offset(0, 76)
TextBox77 = ActiveCell.Offset(0, 77)
TextBox78 = ActiveCell.Offset(0, 78)
TextBox79 = ActiveCell.Offset(0, 79)
TextBox80 = ActiveCell.Offset(0, 80)
TextBox81 = ActiveCell.Offset(0, 15)

ActiveCell.Offset(0, 1) = TextBox2
ActiveCell.Offset(0, 2) = TextBox3
ActiveCell.Offset(0, 3) = TextBox4
ActiveCell.Offset(0, 4) = TextBox5
ActiveCell.Offset(0, 5) = TextBox6
ActiveCell.Offset(0, 6) = TextBox7
ActiveCell.Offset(0, 7) = TextBox8
ActiveCell.Offset(0, 8) = TextBox9
ActiveCell.Offset(0, 9) = TextBox10
ActiveCell.Offset(0, 10) = TextBox11
ActiveCell.Offset(0, 11) = TextBox12
ActiveCell.Offset(0, 12) = TextBox13
ActiveCell.Offset(0, 13) = TextBox14
ActiveCell.Offset(0, 14) = TextBox15
ActiveCell.Offset(0, 15) = TextBox16
ActiveCell.Offset(0, 16) = TextBox17
ActiveCell.Offset(0, 17) = TextBox18
ActiveCell.Offset(0, 18) = TextBox19
ActiveCell.Offset(0, 19) = TextBox20
ActiveCell.Offset(0, 20) = TextBox21
ActiveCell.Offset(0, 21) = TextBox22
ActiveCell.Offset(0, 22) = TextBox23
ActiveCell.Offset(0, 23) = TextBox24
ActiveCell.Offset(0, 24) = TextBox25
ActiveCell.Offset(0, 25) = TextBox26
ActiveCell.Offset(0, 26) = TextBox27
ActiveCell.Offset(0, 27) = TextBox28
ActiveCell.Offset(0, 28) = TextBox29
ActiveCell.Offset(0, 29) = TextBox30
ActiveCell.Offset(0, 30) = TextBox31
ActiveCell.Offset(0, 31) = TextBox32
ActiveCell.Offset(0, 32) = TextBox33
ActiveCell.Offset(0, 33) = TextBox34
ActiveCell.Offset(0, 34) = TextBox35
ActiveCell.Offset(0, 35) = TextBox36
ActiveCell.Offset(0, 36) = TextBox37
ActiveCell.Offset(0, 37) = TextBox38
ActiveCell.Offset(0, 38) = TextBox39
ActiveCell.Offset(0, 39) = TextBox40
ActiveCell.Offset(0, 40) = TextBox41
ActiveCell.Offset(0, 41) = TextBox42
ActiveCell.Offset(0, 42) = TextBox43
ActiveCell.Offset(0, 43) = TextBox44
ActiveCell.Offset(0, 44) = TextBox45
ActiveCell.Offset(0, 45) = TextBox46
ActiveCell.Offset(0, 46) = TextBox47
ActiveCell.Offset(0, 47) = TextBox48
ActiveCell.Offset(0, 48) = TextBox49
ActiveCell.Offset(0, 49) = TextBox50
ActiveCell.Offset(0, 50) = TextBox51
ActiveCell.Offset(0, 51) = TextBox52
ActiveCell.Offset(0, 52) = TextBox53
ActiveCell.Offset(0, 53) = TextBox54
ActiveCell.Offset(0, 54) = TextBox55
ActiveCell.Offset(0, 55) = TextBox56
ActiveCell.Offset(0, 56) = TextBox57
ActiveCell.Offset(0, 57) = TextBox58
ActiveCell.Offset(0, 58) = TextBox59
ActiveCell.Offset(0, 59) = TextBox60
ActiveCell.Offset(0, 60) = TextBox61
ActiveCell.Offset(0, 61) = TextBox62
ActiveCell.Offset(0, 62) = TextBox63
ActiveCell.Offset(0, 63) = TextBox64
ActiveCell.Offset(0, 64) = TextBox65
ActiveCell.Offset(0, 65) = TextBox66
ActiveCell.Offset(0, 66) = TextBox67
ActiveCell.Offset(0, 67) = TextBox68
ActiveCell.Offset(0, 68) = TextBox69
ActiveCell.Offset(0, 69) = TextBox70
ActiveCell.Offset(0, 70) = TextBox71
ActiveCell.Offset(0, 71) = TextBox72
ActiveCell.Offset(0, 72) = TextBox73
ActiveCell.Offset(0, 73) = TextBox74
ActiveCell.Offset(0, 74) = TextBox75
ActiveCell.Offset(0, 75) = TextBox76
ActiveCell.Offset(0, 76) = TextBox77
ActiveCell.Offset(0, 77) = TextBox78
ActiveCell.Offset(0, 78) = TextBox79
ActiveCell.Offset(0, 79) = TextBox80
ActiveCell.Offset(0, 80) = TextBox81



Exit Sub

noencontro:

MsgBox "No hay coincidencias"


End Sub

pero al querer modificar un textBox no se modifica la celda de donde toma el valor...
no se si he sido claro o lo confundi mas amigo.. espero y me pueda ayudar..

saludos y gracias de antemano !
  #4 (permalink)  
Antiguo 06/08/2007, 18:28
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 12 años, 5 meses
Puntos: 88
De acuerdo Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista

Cita:
Iniciado por mrocf Ver Mensaje
Primero permíteme sugerirte un cambio a tu macro de modo de "reducir a la mitad" tu código:
Código:
TextBox2 = ActiveCell.Offset(0, 1)
TextBox3 = ActiveCell.Offset(0, 2)
TextBox4 = ActiveCell.Offset(0, 3)
Y a partir del cambio anterior, se deduce -rápidamente- lo que deseas realizar:
Código:
ActiveCell.Offset(0, 1) = TextBox2
ActiveCell.Offset(0, 2) = TextBox3
ActiveCell.Offset(0, 3) = TextBox4
La idea es:
1º) Tienes un botón de macro que encuentra el registro y lo despliega en los TEXTBOX (primer conjunto de instrucciones);

2º) Realizas TODOS los cambios que consideres oportuno en TODOS los campos del registro; y

3º) Mediante OTRO botón de macro, trasladas los valores de los TEXTBOX a las celdas correspondientes mediante el segundo conjunto de instrucciones.
  #5 (permalink)  
Antiguo 06/08/2007, 20:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 26
Antigüedad: 14 años, 11 meses
Puntos: 0
Re: Ayuda Con Un Formulario Y Una Macro Que Busca Datos En Una Lista

Muchisimas Gracias Amigo! Por Fin Quedo .... No Saben Del Problemon Que Me Saco Por Su Asesoria !


Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:32.