Retroceder   Foro Ayuda Excel > Dudas y consultas sobre Excel > Macros y programación VBA
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack Herramientas Desplegado
  #1  
Antiguo 13/06/08, 19:53:34
Principiante
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 28
Post Devolver Dirrecion De Celda Con Un Texto Especifico

BUENOS DIAS A TODOS
DESEO HACER UNA MACRO QUE ME INDIQUE LA DIRECCION DE UN DATO EN UN LIBRO DE 12 HOJAS DIFERENTES, ENTONCES DESEO BUSCAR LOS QUE TENGAN n/a Y QUE EM DIGA LA POSICION ES POSIBLE ESO?? PORFAVOR SI ME PUEDEN AYUDAR LES AGRADEZCO

ALEJO
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #2  
Antiguo 17/06/08, 04:56:26
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Lightbulb Facil

Haz un bucle the la siguiente forma mas o menos:


for each hojas in thisworkbook.worksheets
hojas.activate

for each celda in hojas

on error resume next
if celda.value = "n/a" then
msgbox celda.address
...












next hojas
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #3  
Antiguo 17/06/08, 23:30:43
Principiante
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 28
Predeterminado

si eso era pero no hay alguna forma de que encuentre las celdas y me copie en algun la direccionpor ejemplo en otra hoja_??
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #4  
Antiguo 18/06/08, 04:16:00
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Predeterminado Si claro

Solo tienes que experimentar con estos objetos y veras lo facil que es manejarlos, si quieres buscar alguno o no tienes claro la jerarquia presiona F2 e iras al buscador de objetos. y tambien encuentras algo con el viejo F1. O puedes preguntar ya tratare de responderte....







y bueno pues como no es del otro mundo hay te dejo el codigo para que veas lo facil que era...

---------------------------------------------------------------------------------
Código:
Sub EncuentraNAS()

Dim Hojas 
Dim Celda As Range

i = 1

For Each Hojas In ThisWorkbook.Worksheets

On Error GoTo inicio

Hojas.Activate

Set Celda = Hojas.Range("A1")

For j = 1 To 150 '65536 es el maximo
    For k = 1 To 100 '256 es el maximo

If Celda.Cells(j, k).Value = "n/a" Then
'//
Celda.Cells(j, k).Select
Range("Hoja1!A1").Cells(i, 1).Value = "<=>" & Celda.Worksheet.Name & "!" & Celda.Cells(j, k).Address 
 '//Debes identificar bien el rango, si dejas '=' quedara como vinculo.
i = i + 1
 '------------------------------------------
 
End If

Next k
Next j

inicio:
If Err Then
Err.Clear

End If
Next Hojas
End Sub
------------------------------------------------------------------------------------------------------------

Última edición por Efasor fecha: 02/07/08 a las 05:52:39. Razón: Me falto poner un pedazo
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #5  
Antiguo 24/06/08, 17:29:06
Principiante
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 28
Predeterminado

buen, pero ahora tengo otra pregunta como puedo buscar lo mismo pero un libro completo no por hojas, esose puede=?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #6  
Antiguo 24/06/08, 18:43:29
Principiante
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 28
Predeterminado

Pregunta, es posible que me devulva el valor de de la celda proxima,
es decir si tengo N/A en a1 que me devuelva en lo que hay en b1 sera que offsetcell funciona es que no la he manejado mucho entonces nose como funciona bien gracias si em pueden colaborar
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #7  
Antiguo 25/06/08, 01:30:39
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Predeterminado Respuesta 1

Cita:
Empezado por alejosro Ver Mensaje
buen, pero ahora tengo otra pregunta como puedo buscar lo mismo pero un libro completo no por hojas, esose puede=?
Bueno si vas a buscar en un libro completo forsozamente lo deberas hacer hoja por hoja, igua que en la hoja deberas hacerlo celda a celda.

El macro te sirve para todo el libro, si lo que quieres es que desde un libro te abra varios libros deberas crear un objeto workbook para cada libro, o abrir libro a libro y correr el macro.

No considero neceasrio hacer las modificaciones al macro a menos que la cantidad de libros sea enorme.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #8  
Antiguo 25/06/08, 01:35:43
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Predeterminado

Cita:
Empezado por alejosro Ver Mensaje
Pregunta, es posible que me devulva el valor de de la celda proxima,
es decir si tengo N/A en a1 que me devuelva en lo que hay en b1 sera que offsetcell funciona es que no la he manejado mucho entonces nose como funciona bien gracias si em pueden colaborar
No necesitas complicarte tanto simplemente:

'// Para que te ubiques en el codigo y haces el cambio asi:
If Celda.Cells(j, k).Value = "n/a" Then
'//
Celda.Cells(j, k).Select
'//Range("Hoja1!A1").Cells(i, 1).Value = "<=>" & Celda.Worksheet.Name & "!" & '//Celda.Cells(j, k).Address este es codigo que devuelve la direccion

Range("Hoja1!A1").Cells(i, 1).Value = Celda.Cells(j, k+1).value
'//Asi modificado que devuelve el valor de la celda proxima, fijate en el k+1, es como si fuera una mtris de mxn y las posiciones son j,k...

Mira en la ayuda de VB y con unas pequeñas modificaciones haras maravillas, como sabes cualquier duda puedes preh¡guntar.

Última edición por Efasor fecha: 25/06/08 a las 01:37:59.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #9  
Antiguo 25/06/08, 17:12:24
Principiante
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 28
Predeterminado

hola. si gracias, pero yo lo ahbia intetando con un offset, pero ahora bien

es que tengo es otro problema,
Tengo unos datos en la columna a (100datos) y queiro que la macro coja el primeroque esta en a1 y lo busque en las hojasy que igual me devuelva la direccion, y que despues coja els egundo en a2 y vuelva a buscar y haga todo el proceso asi hasta lso 100 datos,

yo he intetado con unos bucles anidados pero no funciona quedebo hacer
algo asi llevo
Dim Hojas
Dim Celda As Range
Sub Busqueda()

i = 1
k = 1

For Each Hojas In ThisWorkbook.Worksheets

On Error GoTo inicio

Hojas.Activate

Set Celda = Hojas.Range("A1")

For j = 1 To 500 '65536 es el maximo
For k = 1 To 40 '256 es el maximo

If Celda.Cells(j, k).Value = "79733080" Then
'//
Celda.Cells(j, k).Select
Range("Hoja1!A1").Cells(i, 1).Value = "<=>" & Celda.Cells(j, k).Value & Celda.Cells(j, k).AddressLocal(RowAbsolute:=False, ColumnAbsolute:=False)
Range("Hoja1!B1").Cells(i, 1).Value = Celda.Cells(j, k).Offset(0, 1).Value
'"<=>" && Celda.Cells(j, k).AddressLocal(RowAbsolute:=False, ColumnAbsolute:=False)
'Range("Hoja1!C1").Cells(i, 1).Value = Celda.Cells(j, k).Value
'"<=>" & Celda.Worksheet.Name & "!" & Celda.Cells(j, k).AddressLocal(RowAbsolute:=False, ColumnAbsolute:=False)
'//Debes identificar bien el rango, si dejas '=' quedara como vinculo.
i = i + 1
k = k + 1
'------------------------------------------

End If

Next k
Next j

inicio:
If Err Then
Err.Clear

End If
Next Hojas
End Sub

si me pude ayudar gracias =)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #10  
Antiguo 25/06/08, 17:52:47
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Predeterminado Tipo de datos

El problema es muy simple le dices

if celda.value = "78548555" '//Estas buscando un texto con el numero ese

debes hacer los siguiente:

if celda.value = 78548555 '//Sin las comillas y debera funcionar.

Si lo que quires es buscar diferentes valores, amarral a una celda y no tendras problasmas con comillas y es:

if celda.value = range("Hoja1!B1").cells(1,1).value
'//y en la celda b1 de la hoja 1 pones el valor que buscas. si quieres variso valores haces un bucle.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT +2. Ahora son las 01:00:49.


© Ayuda Excel

Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

1 2 3 4 5 6 7