Busqueda de datos en varios hojas

11/07/2009 - 00:11 por Anonimo | Informe spam
Un saludo. Excel 2007 mediante vba.

que instrucción tendría que utilizar para encontrar todos los datos que
tengan en celda por ejemplo el valor "REOCIN" y que me meta la direccion
address en un matriz de dimension variable.

Son 40 hojas y lo que pretendo es hacer un resumen en la ultima hoja.

lo que quiero, resumiendo es que por ejemplo en una matriz llamada
direccion(1)= hoja1!c$4$, direccion(2)= hoja2!$c$2

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/07/2009 - 01:26 | Informe spam
hola, !

Excel 2007 mediante vba.
que instruccion tendria que utilizar para encontrar todos los datos que tengan en celda
por ejemplo el valor "REOCIN" y que me meta la direccion address en un matriz de dimension variable.
Son 40 hojas y lo que pretendo es hacer un resumen en la ultima hoja.
lo que quiero, resumiendo es que por ejemplo en una matriz llamada
direccion(1)= hoja1!c$4$, direccion(2)= hoja2!$c$2



ve si puedes adaptar una macro como las de estas conversaciones:
-> http://tinyurl.com/mv8ddq
-> http://tinyurl.com/nkqttz

y/o prueba complementos de terceros (p.e.)
- Stephen Bullen: http://www.bmsltd.co.uk/DLCount/DLC...eplace.exe
- Jan Karel Pieterse: http://www.bmsltd.co.uk/DLCount/DLC...exFind.zip

saludos,
hector.
Respuesta Responder a este mensaje
#2 Anonimo
11/07/2009 - 09:37 | Informe spam
Me vienen bien para aprender, pero no veo la forma de poner la direccion
address en una matriz.

"Héctor Miguel" escribió en el mensaje de
noticias news:
hola, !

Excel 2007 mediante vba.
que instruccion tendria que utilizar para encontrar todos los datos que
tengan en celda
por ejemplo el valor "REOCIN" y que me meta la direccion address en un
matriz de dimension variable.
Son 40 hojas y lo que pretendo es hacer un resumen en la ultima hoja.
lo que quiero, resumiendo es que por ejemplo en una matriz llamada
direccion(1)= hoja1!c$4$, direccion(2)= hoja2!$c$2



ve si puedes adaptar una macro como las de estas conversaciones:
-> http://tinyurl.com/mv8ddq
-> http://tinyurl.com/nkqttz

y/o prueba complementos de terceros (p.e.)
- Stephen Bullen:
http://www.bmsltd.co.uk/DLCount/DLC...eplace.exe
- Jan Karel Pieterse:
http://www.bmsltd.co.uk/DLCount/DLC...exFind.zip

saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
11/07/2009 - 09:49 | Informe spam
hola, !

Me vienen bien para aprender, pero no veo la forma de poner la direccion address en una matriz.



cual/es probaste y con que adaptaciones ?

saludos,
hector.

__ previos __
Excel 2007 mediante vba.
que instruccion tendria que utilizar para encontrar todos los datos que tengan en celda
por ejemplo el valor "REOCIN" y que me meta la direccion address en un matriz de dimension variable.
Son 40 hojas y lo que pretendo es hacer un resumen en la ultima hoja.
lo que quiero, resumiendo es que por ejemplo en una matriz llamada direccion(1)= hoja1!c$4$, direccion(2)= hoja2!$c$2



ve si puedes adaptar una macro como las de estas conversaciones:
-> http://tinyurl.com/mv8ddq
-> http://tinyurl.com/nkqttz

y/o prueba complementos de terceros (p.e.)
- Stephen Bullen: http://www.bmsltd.co.uk/DLCount/DLC...eplace.exe
- Jan Karel Pieterse: http://www.bmsltd.co.uk/DLCount/DLC...exFind.zip
Respuesta Responder a este mensaje
#4 Héctor Miguel
11/07/2009 - 10:33 | Informe spam
hola, !

(en via de mientras...) no se como actuarias con la "matriz", pero ve si te sirve este procedimiento "antiguo"
(necesitas adaptarlo a una matriz en lugar de un msgbox o poner los datos directamente en tu hoja de resumen)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub Buscar_En_Hojas()
Dim Hoja As Worksheet, Celda As Range, Primero As String, _
Buscando As String, Mensaje As String, Localizado As String
Buscando = Trim(InputBox("Indica la variable a buscar", "Buscando en todas las hojas..."))
If Buscando = "" Then Exit Sub
Mensaje = Buscando & " se encuentra en:"
For Each Hoja In Worksheets
Set Celda = Hoja.Cells.Find(Buscando)
If Not Celda Is Nothing Then
Primero = Celda.Address
Do
Localizado = Localizado & vbCr & "'" & Hoja.Name & "'!" & Celda.Address(0, 0)
Set Celda = Hoja.Cells.FindNext(Celda)
Loop While Not Celda Is Nothing And Celda.Address <> Primero
End If
Next
Set Celda = Nothing
If Localizado = "" Then Localizado = vbCr & "ninguna de las hojas !!!"
MsgBox Mensaje & Localizado
End Sub
Respuesta Responder a este mensaje
#5 Anonimo
11/07/2009 - 10:48 | Informe spam
Gracias Hector, tu ultimo ejemplo me ha servido para intentar comprender lo
que explicas.

Una duda, ¿por que esta frase: Celda.Address(0, 0)?

Y habría alguna forma de meter ese msg en una matriz?


Es por lo siguiente. Lo que quiero es que según halle la dirección donde
esta me guarde en una variable de una matriz el valor que esta 3 celdas a su
derecha, con offset(0,3) supongo, pero estoy bloqueado y algo atascado y no
me sale.

De momento lo hago con bucles, pero es muy costoso en tiempo porque igual
hablamos de un monton de hojas, y lo que pretendo es que busque la palabra
"cualquier" y me ponga en una matriz el valor de la celda que esta 3 celdas
a su derecha. De tal forma que en una hoja resumen pueda poner en columnas
consecutivas como para hacer una tabla cada palabra que busque.

Por ejemplo, en una hoja resumen que ponga:

PALABRA BUSCAR HOJA1 HOJA2 HOJA3 HOJA4

JOSE 2 4
5 5
ANDRES 4 4 4
4
PEDRO 2 3 2
1



"Héctor Miguel" escribió en el mensaje de
noticias news:
hola, !

(en via de mientras...) no se como actuarias con la "matriz", pero ve si
te sirve este procedimiento "antiguo"
(necesitas adaptarlo a una matriz en lugar de un msgbox o poner los datos
directamente en tu hoja de resumen)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub Buscar_En_Hojas()
Dim Hoja As Worksheet, Celda As Range, Primero As String, _
Buscando As String, Mensaje As String, Localizado As String
Buscando = Trim(InputBox("Indica la variable a buscar", "Buscando en
todas las hojas..."))
If Buscando = "" Then Exit Sub
Mensaje = Buscando & " se encuentra en:"
For Each Hoja In Worksheets
Set Celda = Hoja.Cells.Find(Buscando)
If Not Celda Is Nothing Then
Primero = Celda.Address
Do
Localizado = Localizado & vbCr & "'" & Hoja.Name & "'!" &
Celda.Address(0, 0)
Set Celda = Hoja.Cells.FindNext(Celda)
Loop While Not Celda Is Nothing And Celda.Address <> Primero
End If
Next
Set Celda = Nothing
If Localizado = "" Then Localizado = vbCr & "ninguna de las hojas !!!"
MsgBox Mensaje & Localizado
End Sub

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida