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

Opcion FIND Excel VBA

Estas en el tema de Opcion FIND Excel VBA en el foro de Ofimática en Foros del Web. Hola amigos del foro: Desde una hoja de cálculo, quiero buscar una serie de valores (variable WELL2) en otra, para luego recuperar el valor de ...
  #1 (permalink)  
Antiguo 16/11/2008, 09:45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Opcion FIND Excel VBA

Hola amigos del foro:
Desde una hoja de cálculo, quiero buscar una serie de valores (variable WELL2) en otra, para luego recuperar el valor de unas celdas asociadas a este (variable B1), en la celda siguiente.
Lo consigo con el siguiente script:

Range("A15:A220").Find(What:=WELL2, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
B1= ActiveCell.Offset(0, 1).Value

Tengo un problema con la opción FIND, como programarlo, ya que cuando no encuetra el valor WELL2, y puede ocurrir, en vez de dejarlo en blanco e ir por el siguiente, se me queda colgado........

¿como puedo conseguir programarlo para que si no encuentra un valor de la variable WELL2 en el rango, no haga nada y continue el script?

Gracias
  #2 (permalink)  
Antiguo 16/11/2008, 10:22
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Opcion FIND Excel VBA

Más que colgar creo que debería dar un error al no encontrar coincidencias . Prueba así:
Código vb:
Ver original
  1. Dim Finding As Range
  2. Set Finding = Range("A15:A220").Find(What:=WELL2, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
  3. If Finding Is Nothing Then Exit Sub
  4. Finding.Activate
  5. B1= ActiveCell.Offset(0, 1).Value
Lo que hace es tomar el valor de retorno del método Find (un objeto Range) y comparar si es Nothing (cuando no se encuentra), y si así es salir del procedimiento.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/11/2008, 15:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Opcion FIND Excel VBA

No he comentado que la busqueda que señalaba iba dentro de una opción For...

Next

Estaba probando poniendo una Opción

On Error GoTo .....


Pero no doy con ella.... en el primer error me va bien, pero en el segundo peta
Mi Script (que no me funciona bien es:

For n = 2 to 90
On error GoTo Line46
Range("A15:A220").Find(What:=WELL2, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
B1= ActiveCell.Offset(0, 1).Value
Line 46:
Next

No domino la opción "On Error... " pero no se por que la primera vez que no encuentra un valor funciona, pero la segunda se queda

Gracias por la ayuda

pd: con el ejemplo anterior se me quedaba colgado igualmente al ir dentro de la opción for... next... : no hace bien los bucles.
  #4 (permalink)  
Antiguo 17/11/2008, 09:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Opcion FIND Excel VBA

¿Qué es eso de que "peta"?.

Prueba a poner On Error Resume Next antes del bucle For.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 26/04/2010, 09:03
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Opcion FIND Excel VBA

hola a todos!!! estoy desesperada!! tengo k hacer un trabajo para entregar en 2 dias y estoy en la mierda pk no entiendo nada de estoy de visual basic!!
tengo mi userform ya hecho, tengo mis datos en excel pero ahora tengo k programar los codigos para poder enlazar bien las 2 cosas y no tengo idea como!
miren estoy haciendo un mini programa para calcular los costos de transporte maritimo de containers, entonces lo primero k le sale al cliente es puerto de origen y puerto de destino, y cuando el los selecciona automaticamente deberia aparecerle debajo el itinerario del barco, si hace escalas o se va directo, entonces en una hoja excel yo puse las distintas combinaciones posibles de origen y llegada y en otra columna el itinerario k hara el barco. pero no tengo idea como hacer la programacion en vba para que me encuentre el itinerario que le corresponde segun las 2 condiciones que son el lugar de origen y ademas el de destino....
quien me puede ayudar!!!????????????'
helpppppppppppp
pleaseee les agradeceria un millon si alguien tiene idea de como lo tengo k hacer
chau gracias!
  #6 (permalink)  
Antiguo 27/04/2010, 12:22
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: Opcion FIND Excel VBA

Hola! buddyk9. Dos comentarios:

a) La sugerencia de "David" correcta y no veo que la hayas aplicado;

b) Ese bucle "For - Next" hace 89 veces lo mismo: ¿qué es -exactamente- lo que pretendías conseguir?.
Dicho de otro modo: ¿qué es lo que debería cambiar en cada búsqueda?

Saludos, Cacho.
  #7 (permalink)  
Antiguo 27/04/2010, 16:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Opcion FIND Excel VBA

Cita:
Iniciado por littlenana Ver Mensaje
hola a todos!!! estoy desesperada!! tengo k hacer un trabajo para entregar en 2 dias y estoy en la mierda pk no entiendo nada de estoy de visual basic!!
tengo mi userform ya hecho, tengo mis datos en excel pero ahora tengo k programar los codigos para poder enlazar bien las 2 cosas y no tengo idea como!
miren estoy haciendo un mini programa para calcular los costos de transporte maritimo de containers, entonces lo primero k le sale al cliente es puerto de origen y puerto de destino, y cuando el los selecciona automaticamente deberia aparecerle debajo el itinerario del barco, si hace escalas o se va directo, entonces en una hoja excel yo puse las distintas combinaciones posibles de origen y llegada y en otra columna el itinerario k hara el barco. pero no tengo idea como hacer la programacion en vba para que me encuentre el itinerario que le corresponde segun las 2 condiciones que son el lugar de origen y ademas el de destino....
quien me puede ayudar!!!????????????'
helpppppppppppp
pleaseee les agradeceria un millon si alguien tiene idea de como lo tengo k hacer
chau gracias!
Organiza tus ideas, que lo que has puesto aqui no se entiende. Eso te ayudará.
Por lo que cuentas, se puede hacer con opciónes if.... then (pero antes organiza las ideas).
__________________
Genética animal y veterinaria
  #8 (permalink)  
Antiguo 27/04/2010, 16:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Opcion FIND Excel VBA

Cita:
Iniciado por mrocf Ver Mensaje
Hola! buddyk9. Dos comentarios:

a) La sugerencia de "David" correcta y no veo que la hayas aplicado;

b) Ese bucle "For - Next" hace 89 veces lo mismo: ¿qué es -exactamente- lo que pretendías conseguir?.
Dicho de otro modo: ¿qué es lo que debería cambiar en cada búsqueda?

Saludos, Cacho.
no se como lo solucione, pero me funciona aplicando la opción FIND así:
Range("A8:A200").Find(What:=well1, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate

busca la variable well1 en el rango A8:A200 (por columnas)

En el código anterior, repite el bucle todas esas veces para que vaya cogiendo todos los valores de la variable "well1" que vienen definidos en un array. Compara los valores del array con los del rango.
Gracias por vuestra ayuda.
__________________
Genética animal y veterinaria
  #9 (permalink)  
Antiguo 28/04/2010, 11:01
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Opcion FIND Excel VBA

Cita:
Iniciado por buddyk9 Ver Mensaje
Organiza tus ideas, que lo que has puesto aqui no se entiende. Eso te ayudará.
Por lo que cuentas, se puede hacer con opciónes if.... then (pero antes organiza las ideas).
Buddyk9, me parece que el problema que plantea es el siguiente

Ella ingresa "origen" y "destino", y con esos dos datos la macro busca en una tabla de dos columnas lo que debe mostrar
-la 1era columna tiene todas las combinaciones de "içorigen" y "destino"
-la 2da columna tiene los itinerarios correspondientes

Me meto en la discusión por interesado jeje. yo tengo un problema similar

Tengo una tabla de clientes con dos columnas
la primera tiene el código del cliente, la segunda tiene la razón social

necesito armar una macro que, cuando el usuario ponga la razón social, devuelva el código

lo que armé hasta ahora es lo siguiente

--------------

Sub prueba2()

Dim cliente As Variant
Dim n, m, p As Range
Dim resultado As Variant
Dim i, j As Integer


cliente = InputBox("Ingrese la razón social", "Buscador de Código")
Set n = Sheets("maestro clientes").[C:C].Find(what:=cliente)
Sheets("maestro clientes").Select

If n Is Nothing Then
MsgBox ("No encontrada")
Else
resultado = Range(n.Address).Offset(0, -1).Value
MsgBox "El código es el siguiente --> " & UCase(resultado) & "."

End If

End Sub

---------------

El problema que me aparece ahora es el siguiente: los usuarios a veces no conocen la razón social con exactituda; conocen una parte del nombre.

Lo que necesito es que l amacro entonces me devuelva una lista con todos los clientes con razón social parecida y su código

Con "parecido" me no me refieron a un buscador muy complejo (por ejemplo que encuentre "ahora" si el usuario ingresó "aora"); `por ej

tabla de dato

codigo R.Social
x001 gato gato
x002 gato perro
x003 perro perro

si el usuario ingresa "gato", la lista que necesito que me devuelva la macro sería

R. Social Código
gato gato x001
gato perro x002


Desde ya, muchas gracias al que me pueda dar una mano
  #10 (permalink)  
Antiguo 28/04/2010, 11:35
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Respuesta: Opcion FIND Excel VBA

Cita:
Iniciado por le_alesito Ver Mensaje
Buddyk9, me parece que el problema que plantea es el siguiente

Ella ingresa "origen" y "destino", y con esos dos datos la macro busca en una tabla de dos columnas lo que debe mostrar
-la 1era columna tiene todas las combinaciones de "içorigen" y "destino"
-la 2da columna tiene los itinerarios correspondientes

Me meto en la discusión por interesado jeje. yo tengo un problema similar
El problema esque hay un tema abierto ya con esa cuestión. y le respondes o le preguntas q necesita bien y no responde.. solo pega ese mismo mensaje en otros temas ya abiertos q se refieren a otras cosas... entonces, o no le interesa o que onda...pero bueno..... incluso se llama: Triste
Programation VBA para programa de costos de transporte maritimo
littlenana el 26-abr-2010, 10:11
  #11 (permalink)  
Antiguo 28/04/2010, 12:37
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Opcion FIND Excel VBA

Hola! le_alesito.
Fíjate si te resulta de utilidad la siguiente variante:

Lista desplegable con autoauste

Saludos, Cacho.
  #12 (permalink)  
Antiguo 29/04/2010, 08:58
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Opcion FIND Excel VBA

Hola mrocf

muchísimias gracias!
Estoy intentando agregar lo que me pasaste a mi archivo. me viene al pelo

saludos!
  #13 (permalink)  
Antiguo 29/04/2010, 10:04
 
Fecha de Ingreso: abril-2010
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Opcion FIND Excel VBA

mrocf

todavia me rio con lo que pasa

pude agregar la lsita de tu archivo a mi archivo; y en ppio funciona......

el tema es el siguiente: cada vez que agrego o borro una letra (o número) la lsita se achica (SI, se achica, jaja) hasta virtualmente desaparecer

sabes que puede estar pasando?

desde ya, gracias
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 18:52.