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

[SOLUCIONADO] como buscar un registro en otras paginas con una macro en excel

Estas en el tema de como buscar un registro en otras paginas con una macro en excel en el foro de Ofimática en Foros del Web. Buen día, el problema que tengo es el siguiente. tengo un documento en excel con tres hojas principales, la primera es un menú, la segunda ...
  #1 (permalink)  
Antiguo 06/04/2015, 07:12
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Pregunta

Buen día, el problema que tengo es el siguiente.
tengo un documento en excel con tres hojas principales, la primera es un menú, la segunda (productos) es donde tengo el problema, en esta pagina se me genera una linea cada vez que ingreso un nuevo producto con los campos, código, descripción, presentación, existencia y vinculo a partir de la fila 2. una vez que creo el producto se me genera una pagina nueva idéntica a mi hoja1, la cual es una hoja de kardex. ahora bien, en mi hoja productos genero un vinculo automáticamente que seria un hypervinculo a esa nueva hoja que lleva el mismo nombre del código del nuevo producto (se genera automáticamente), el problema es que no encuentro la manera de realizar una búsqueda que me actualice la existencia cada vez que entre a mi pagina productos, osea, debería buscar el código del producto en todas las paginas del libro (que tienen el mismo nombre del código de cada producto), menos las tres primeras, y traer la información de la celda f8 de cada pagina según sea el caso a la columna "d" de la pagina productos, claro en la linea que le corresponda.
Yo genere un código que me actualiza la hoja productos, lo que no he podido hacer es la búsqueda.
otra cosa es que me gustaría poder ordenar la pagina productos una vez que ingrese un producto nuevo.
soy nuevo en el uso de las macros
muchas gracias de antemano.

cada hoja donde debe hacer la búsqueda lleva el nombre del código de dicho producto y dentro de la hoja en la celda e5 esta el código

Última edición por BrujoNic; 06/04/2015 a las 10:34
  #2 (permalink)  
Antiguo 08/04/2015, 16:58
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Código vb:
Ver original
  1. Sub busquedaentodashojas()
  2. '
  3. ' busquedaentodashojas Macro
  4. '
  5.  
  6. '
  7.    Cells.Find(What:="factura", After:=ActiveCell, LookIn:=xlFormulas, _
  8.         LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
  9.         MatchCase:=False, SearchFormat:=False).Activate
  10.     Sheets("nombredetuhoja1").Select
  11.     Cells.FindNext(After:=ActiveCell).Activate
  12.     Cells.FindNext(After:=ActiveCell).Activate
  13.     Sheets("nombredetuhoja2").Select
  14.     Cells.FindNext(After:=ActiveCell).Activate
  15.     Sheets("nombredetuhoja3").Select
  16.     Cells.FindNext(After:=ActiveCell).Activate
  17. End Sub


Puedes empezar implementado este metodo, puedes crear un ciclo para que recorra todas las hojas en lugar de escribir cada nombre, tambien puedes indicarle que "tome" el valor de la celda que hablas...
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #3 (permalink)  
Antiguo 09/04/2015, 06:18
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

buen dia monimo, muchas gracias por tomarte tu tiempo en responder... mira la verdad es que lo que no he podido hacer es el ciclo para que lea todos las hojas del libro, no se como hacer para que el nombre de la hoja sea una variable, recuerda que al crear un producto este me crea una hoja de kardex, por lo cual el libro se le agregan y eliminan hojas, es por esto que debe ser una variable, otra cosa, la busqueda no es con una celda activa, porque el debe actualizar solo los datos de la existencia que estan en la columna d, deacuerdo al codigo del producto, cada hoja del kardex tiene el mismo nombre del codigo del producto, el tato que busco esta en la celda e5 de cada hoja, y la hoja productos se me ordena automaticamente... gracias
  #4 (permalink)  
Antiguo 09/04/2015, 08:35
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Hola, bueno es solo el ejemplo para que te des una idea de como lo puedes hacer. Dime si tienes conocimientos de programación o cero? Esto es para no cometer el error de asumir que entiendes ciertas cosas que para mí son obvias (por que soy programadora) y tal vez tú no tengas idea y no solo por el hecho de ser "nuevo en el uso de las macros".

Puedes sustituir en lugar del nombre de la hoja el número por lo tanto el ciclo recorrería todas las hojas por numero así es mas fácil y ya puede ser variable. Si no, se puede programar tmb que al abrir el libro se recorran todas las hojas tomando el nombre de cada una y almacenandolo en un arreglo, o incluso ecribiéndolas en una hoja al final del libro. el cielo es el límite... vaya hay miles de soluciones solo hay que ser creativos.

El activecell se puede resolver de dos maneras: te cambias de hoja desde la macro con el ciclo y activas desde la macro una celda, la que quieras. O bien no incluyes el parametro "AFTER" y con esto la busqueda se inicia en la primera celda del lado izquierdo.

te dejo este link para el manejo de las hojas, para que sepas las distintas formas de referenciarlas :) por aquí seguiré:

Manejo de Hojas y libros en excel
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #5 (permalink)  
Antiguo 09/04/2015, 15:03
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

gracias monimo. la verdad mis conocimientos se remontan a gwbasic, o pascal, jajaja osea casi nulo, esto es muy nuevo... no se como mandarte un abjunto para que veas donde estoy trancado... sabes que hice la busqueda manual con un boton poniendo en una celda el nombre de la hoja y en otra el resultado de la busqueda que hago en su respectiva hoja y funciono, pero cuando lo quiero hacer automatico no puedo, me da error 13..
'ejecuta macro al abrir Hoja
Private Sub worksheet_activate()
Dim fila As Integer
Dim final As Integer
Dim registro As Integer



For fila = 1 To 1000
If Hoja3.Cells(fila, 1) = "" Then
final = fila
Exit For
End If
Next

For fila = 1 To 1000
If fila <> "" Then
Dim x As String
x = [hoja3.cells(fila,1)].Value
Hoja3.Cells(fila, 4) = Sheets(x).Range("f8").Value... aca me da el error 13
End If
Next



End Sub


gracias por lo que puedas hacer por mi... mañana veo lo que me mandaste, gracias por eso tambien
  #6 (permalink)  
Antiguo 09/04/2015, 15:24
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Dónde te marca el error? en que línea? ah ya ví, solo cambia el : If fila <> "" Then
por fila <> 0 PORQUE ESTAS TRATANDO DE COMPARAR UN iNTEGER CONTRA UN sTRING "" El error 13 es un "Type Mismatch"
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #7 (permalink)  
Antiguo 10/04/2015, 06:12
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

hola monimo, gracias por la respuesta, lo hice e igualmente me da error, ahora un error 400 y pico, dice que faltan elementos jajajjaa...
voy a ver el link que me enviastes!
  #8 (permalink)  
Antiguo 10/04/2015, 06:17
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

el error es el 424 y ahora es en la linea x = [hoja3.cells(fila,1)].Value
  #9 (permalink)  
Antiguo 10/04/2015, 08:50
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Cita:
Iniciado por fredduarte2003 Ver Mensaje
el error es el 424 y ahora es en la linea x = [hoja3.cells(fila,1)].Value
no será Hoja3... con mayúscula? por que si no estarías invocando otra hoja que no es...
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #10 (permalink)  
Antiguo 11/04/2015, 06:19
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

nada! puse en mayusculas la h y la c de cells, y sigue lo mismo
  #11 (permalink)  
Antiguo 13/04/2015, 06:35
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

he tratado con todos los bucles y rutinas posibles y no puedo hacerlo. puedo hacer la busqueda una por una, pero no de toda la tabla al mismo tiempo...
  #12 (permalink)  
Antiguo 13/04/2015, 09:36
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Cita:
Iniciado por fredduarte2003 Ver Mensaje
nada! puse en mayusculas la h y la c de cells, y sigue lo mismo
la l equitaste los corchetes tmb??
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #13 (permalink)  
Antiguo 14/04/2015, 06:17
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

hola monimo, si se los he quitado y nada, he intentado de todo y nada, la verdad que ya no se que mas puedo hacer, lastima que no te puedo pasar por aca el archivo para que lo veas
  #14 (permalink)  
Antiguo 14/04/2015, 09:17
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Cita:
Iniciado por fredduarte2003 Ver Mensaje
hola monimo, si se los he quitado y nada, he intentado de todo y nada, la verdad que ya no se que mas puedo hacer, lastima que no te puedo pasar por aca el archivo para que lo veas
Hola, volví a leer tu pregunta y no sé si mas bien lo que te sirva sea la formula INDIRECT de excel...en lugar de una macro...
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #15 (permalink)  
Antiguo 14/04/2015, 14:45
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

no he querido meter una formula, porque despues de agregar un producto ejecuto una rotina de ordenamiento de dicha tabla, ademas que tendria el mismo problema, recuerda que para buscar el dato que requiero debo colocar el nombre de la hoja donde buscarlo, y con una formula directa, como hago eso? si el nombre de la hoja es igual al codigo del producto?, ademas necesito la mismo rutina que no he podido crear, pues para eliminar productos debo eliminarlo de la hoja productos y eliminar la hoja, pero debo encontrar la hoja tambien... anda tu puedes ayudarme, recuerda que el cielo es el limite! jajaja... es lo unico que me falta!!
  #16 (permalink)  
Antiguo 15/04/2015, 15:03
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Cita:
Iniciado por fredduarte2003 Ver Mensaje
no he querido meter una formula, porque despues de agregar un producto ejecuto una rotina de ordenamiento de dicha tabla, ademas que tendria el mismo problema, recuerda que para buscar el dato que requiero debo colocar el nombre de la hoja donde buscarlo, y con una formula directa, como hago eso? si el nombre de la hoja es igual al codigo del producto?, ademas necesito la mismo rutina que no he podido crear, pues para eliminar productos debo eliminarlo de la hoja productos y eliminar la hoja, pero debo encontrar la hoja tambien... anda tu puedes ayudarme, recuerda que el cielo es el limite! jajaja... es lo unico que me falta!!

Es que justo esa fórmula sirve para poner el nombre de la hoja de manera dinámica...
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #17 (permalink)  
Antiguo 16/04/2015, 07:56
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

si tienes razon, ya la coloque y me funciona, solo que no es una macro, y la tengo que pegar en todas las filas de la tabla, cosa que no queria hacer!
  #18 (permalink)  
Antiguo 16/04/2015, 08:53
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

hola, una pregunta, estoy tratando de ingresar la formula mediante la macro al momento de crear el producto y coloco estas dos lineas
Separador = Application.International(xlListSeparator)
Hoja3.Cells(fila, 4).Formula = [=INDIRECTO("'" &me.txt_codproducto&"'!"&F$1)]
pero en la celda me sale #¿NOMBRE?... le quito la linea de separador=.. y me sigue saliendo lo mismo..
intente colocando una formula super normal y camino...
me.txt_codproducto es el nombre que debe colocar de la hoja y f1 la celda donde esta la celda de referencia a buscar. si la pruebo directamente en la celda camina a la perfección. imagino que no esta reconociendo la formula y por eso el error
  #19 (permalink)  
Antiguo 19/04/2015, 19:50
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

hola ya lo pude solucionar
  #20 (permalink)  
Antiguo 21/04/2015, 13:46
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 4 meses
Puntos: 69
Respuesta: como buscar un registro en otras paginas con una macro en excel

Cita:
Iniciado por fredduarte2003 Ver Mensaje
hola ya lo pude solucionar

Qué bien! entonces ya está todo solucionado?
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #21 (permalink)  
Antiguo 22/04/2015, 09:06
 
Fecha de Ingreso: abril-2015
Mensajes: 14
Antigüedad: 9 años
Puntos: 2
Respuesta: como buscar un registro en otras paginas con una macro en excel

por ahora si jajaja. gracias por todo, aca te dejo el codigo que estoy usando y corre perfectamente
Private Sub CommandButton1_Click()
For fila = 1 To 1000
If Hoja3.Cells(fila, 1) = "" Then
final = fila
Exit For
End If
Next
selecelda = 2
For selecelda = 2 To final
segundo:
Sheets("productos").Select
Cells(selecelda, 1).Select
aseleccionar = ActiveCell
Sheets(aseleccionar).Range("e1").Copy
Cells(selecelda, 4).PasteSpecial xlPasteValues
selecelda = selecelda + 1
If selecelda <> final Then GoTo segundo
Sheets("productos").Select
Next
Application.CutCopyMode = False

End Sub

Etiquetas: busqueda, excel, hojas, macros, programacion
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 22:12.