Inicio > Microsoft Excel > paramisolo > Buscar Nombre de Clientes para Factura

Buscar Nombre de Clientes para Factura

Experto:
Usuario:
Fecha: 07/10/2009
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
03/09/2009
ceollin, usuario preguntando en Microsoft Excel
Usuario
Este es mi planteamiento.
Quero realizar un Userfrom el cual me haga la buzqueda de clientes
en otro libro donde tengo la base de estos datos y el numero de cliente con el que lo capture,
Este es mi ejemplo... TexBox1 para introducior el nombre o las iniciales a buzcar,
Un ListBox donde pueda ver las opciones de los similares que estoy queriendo encontrar
(nombres de los clientes), y un texbox2 donde me mustre el numero de cliente que seleccione en el ListBox.
Claro estos datos se encuentran en el libro de FACTURACION.
Este es el ejemplo de mi Libro CLIENTES los tengo de este modo:
A5=No. Cliente ;
A6= Nombre de Cliente
(A7= Calle ; A8=Numero ; A9=Ciudad ; A10=Entidad ; A11= RFC ; A12= Telefono
* los cuales me gustaria concatenar en otro texBox para confirmar los datos para la factura *)
Agradeceria me ayudaran con este asunto ya que soy un novato en esto de los Userfrom..
Gracias desde Mexico... Ce Ollin
04/09/2009
ceollin, experto respondiendo en Microsoft Excel
Experto
Hola, quisiera que me aclararas si desconoces todo para realizar el trabajo que solicitas, porque para explicarte todo el proceso podemos llevarnos varios dias.
Aclarame hasta donde sabrías hacer tú solo, crear el userform, dibujar los controles etc... y a partir de ello puedo irte enviando los codigos para asignar a cada control, con lo que comentas necesitarias tener en el userform,
1 Textbox para poner la busqueda
1 Textbox para mostrar el numero de cliente
1 Textbox para la concatenacion
1 Listbox para que te muestre la lista de los que coincidan en la busqueda
1 Boton para ejecutar la busqueda
1 Boton dibujado en la hoja para iniciar el userform
Aclarame lo solicitado y vamos por pasos.
>Un saludo
>Julio
05/09/2009
ceollin, usuario preguntando en Microsoft Excel
Usuario
Recientemente he estado checando el uso del Userfrom y me realizaria cosas que con el simple macero me limitaria de ahi que me tengo que ver en este punto para aprender el uso de este... pero lo tomo con esmero porque se que me dara los resultados que estoy buscando.
Mira en realidad si entiendo los puntos que me colocas de Textbox, Listbox y el boton para ejecutar.  Hasta ahi voy vien, claro tambien la colocacion del macro en la hoja de excel para la ejecucion de tal. En el punto que estoy atorado es que se poco de el lenguage de Visuial, lo que he aprendido es con la ejecucion de los macros que se pueden crear desde Excel y modificarlos con VBA.
Espero ser un poco mas especifico
Espero no incomodar.... checare tu respuesta hasta el dia lunes 7 de Sep. que es donde puedo checar los mensajes por medio del trabajo. 
Gracias.. Ce Ollin desde Mexico
06/09/2009
ceollin, experto respondiendo en Microsoft Excel
Experto
Hola, voy a suponer que el nombre de tus Libros son Libro Base y Libro Formulario (tus los cambias), en el Textbox1 pones el nombre a buscar, el Textbox2 te muestra el Nro de Cliente, TextBox3 te pone los datos concatenados.
1º Codigo en el Userform1:
Private Sub Userform1_Initialize()
ChDir "C:\Documents and Settings\Usuario\Escritorio"
    Workbooks.Open Filename:= _
        "C:\Documents and Settings\Usuario\Escritorio\Libro Base.xls"
End Sub
'Cambia el usuario y la ruta donde se encuentra el Libro Base
2º Codigo en el TextBox1:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Range("A1").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Selection.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
celda = ActiveCell.Address
ListBox1.AddItem ActiveCell.Value
Selection.FindNext(After:=ActiveCell).Activate
Do While ActiveCell.Address <> celda
ListBox1.AddItem ActiveCell.Value
    Selection.FindNext(After:=ActiveCell).Activate
Loop
End Sub
'Pones en el Textbox1 un nombre y al pulsar enter se te llenara el Listbox1 con la lista de todos los nombres que contengan esas letras
3º Codigo en el boton Buscar (CommandButton1)
Private Sub CommandButton1_Click()
Range("A1").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
If ListBox1.Text = "" Then
MsgBox "Debe seleccionar un valor en la lista"
Exit Sub
End If
Selection.Find(What:=ListBox1, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
TextBox2.Value = ActiveCell.Offset(0, 1).Value
TextBox3.Value = ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value & " " &ActiveCell.Offset(0,2).Value & " " & ActiveCell.Offset(0, 3).Value& " " & ActiveCell.Offset(0, 4).Value& " " & ActiveCell.Offset(0, 5).Value& " " & ActiveCell.Offset(0, 6).Value& " " & ActiveCell.Offset(0, 7).Value& " " & ActiveCell.Offset(0, 8).Value
End Sub
'Si no has elegido un valor del Listbox1 te lanzará un aviso para que elijas uno y vuelvas a pulsar el boton buscar, te pondrá en el TextBox2 el numero de cliente y en el TextBox3 la concatenacion de las celdas de esa fila.
Y ahora un segundo boton para limpiar todo y volver a buscar:
Private Sub CommandButton2_Click()
TextBox1.Value = Empty
TextBox2.Value = Empty
TextBox3.Value = Empty
ListBox1.Clear
End Sub
A ver si te va sirviendo.
>Un saludo
>Julio
08/09/2009
ceollin, usuario preguntando en Microsoft Excel
Usuario
Estoy casi al 100 en realidad en este momento estario al 90%, con los sig. detalles.
Logre hacer que me buzque los nombres y corregi solo unos espacios de la concatenacion.
mi problema esta en que no puedo lograr que me buzque los nombres en el libro de clientes, (los logre ejecutar en mi hoja de prototipo) y otra es como le puedo hacer para que me de el numero de cliente, el detalle es que este numero lo tengo primero como consecutivo antes que el nombre .
       A           B                D               E
# cliente  - Nombre  - Direccion -  Ciudad
Agradeceria tu opinion
Gracias ... Ce Ollin saludos desde  MX
11/09/2009
ceollin, usuario preguntando en Microsoft Excel
Usuario
Que tal julio...
Mira asi es como me ha dado mejor resultado el Userfrom para la buzqueda de datos en otro libro de excel.
Private Sub Userform1_Initialize()
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
ChDir "K:\DirasaMX"
Workbooks.Open Filename:= _
"K:\DirasaMX\1_BuscarNombres.xls"
Range("B1").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Selection.Find(What:=TextBox1, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
celda = ActiveCell.Address
ListBox1.AddItem ActiveCell.Value
Selection.FindNext(After:=ActiveCell).Activate
Do While ActiveCell.Address <> celda
ListBox1.AddItem ActiveCell.Value
Selection.FindNext(After:=ActiveCell).Activate
Loop
End Sub
'Pones en el Textbox1 un nombre y al pulsar enter se te llenara el Listbox1 con la lista de todos los nombres que contengan esas letras
Private Sub CommandButton1_Click()
Range("B1").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
If ListBox1.Text = "" Then
MsgBox "Debe seleccionar un valor en la lista"
Exit Sub
End If
Selection.Find(What:=ListBox1, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
TextBox2.Value = ActiveCell.Offset(0, 1).Value
TextBox3.Value = ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value & " " & ActiveCell.Offset(0, 2).Value & " " & ActiveCell.Offset(0, 3).Value & " " & ActiveCell.Offset(0, 4).Value & " " & ActiveCell.Offset(0, 5).Value & " " & ActiveCell.Offset(0, 6).Value & " " & ActiveCell.Offset(0, 7).Value & " " & ActiveCell.Offset(0, 8).Value
End Sub
'Si no has elegido un valor del Listbox1 te lanzará un aviso para que elijas uno y vuelvas a pulsar el boton buscar, te pondrá en el TextBox2 el numero de cliente y en el TextBox3 la concatenacion de las celdas de esa fila.
Private Sub CommandButton2_Click()
TextBox1.Value = Empty
TextBox2.Value = Empty
TextBox3.Value = Empty
ListBox1.Clear
End Sub
Pero hay dos detalles:
1. Al colocar una inicial (la cual no he capturtado algun nombre con este) me da nombres pero que esta letra esta en una segunda o tercera posicion del monbre...Ejemplo
TexBox1_ buzco "H" (no tengo capturado ningun nombre con esta letra)
 ListBox1_Muestra "abraham" o "sermath"
como puedo corregir este detalle.
2. Como puedo hacer para cerrar la ventana del libro de excel que abre el  Userform.
no se si se pueda, que al momento de cerrar la Sub ventanal (con el boton "X") del userform se cierre el libro que tiene abierto para la consulta de datos 
Agradeceria tu opinion 
Gracias Desde MX  ...  Ce ollin
24/09/2009
ceollin, experto respondiendo en Microsoft Excel
Experto
Hola amigos, no soy el experto, por desgracia esta convaleciente de una intervencion quirurgica que le imposibilita ponerse en el ordenador.
Me ha encargado que os comunique que finaliceis las consultas, y las dirijais a otros expertos para evitar tenerlas pendientes mucho tiempo sin contestacion.
Siente mucho no poder ayudaros de momento, cuando vuelva a estar disponible lo vereis por su estado en la Web.
Disculpar por no poder continuar con la ayuda.
Un saludo para todos de su parte.
25/09/2009
ceollin, usuario preguntando en Microsoft Excel
Usuario
Agradezco que te tomes la molestia de avisarnos, en realidad me preguntava el porque no contestaba a los mensajes julio, bueno. desde mexico te mandamos un saludo a ti que nos mandas el mensage, y a julio muchos saludos y una pronta recuperacion de todo corazon, y savemos que sera fuerte y saldra pronto de este reto que le pone la vida.......
Muchos saludos, que se de su tiempo julio y le haremos llegar nuestros mejores deceos..
Se despide Ce ollin.
25/09/2009
ceollin, experto respondiendo en Microsoft Excel
Experto
Muchas gracias por vuestros deseos, se los haré llegar, que Dios os bendiga a todos.Gracias.
07/10/2009
ceollin, usuario preguntando en Microsoft Excel
Usuario
Agradezco toda la atencion que me brindaste Experto, me a sido de gran ayuda, pero ante toodo que te mejores y savemos que seguiremos en contacto...
Los mejores deseos.
Ce Ollin desde MX....Suerte y Nuevamente gracias
Enlaces patrocinados