Evaluar datos en un rango, vba

Estoy tratando de correr un programa que sea capaz de darme el precio de un tornillo, en este caso, dado el valor de un largo y ancho por el usuario. En otra hoja existe una matriz con largos y anchos con sus respectivos precios.
El largo y ancho dado debe coincidir con un par de la otra hoja [(ej: 16, 8)=20]
El largo y el ancho son las negritas, y el precio cursivo...
He declarado condiciones, for i(para largo), for j (para ancho), for each que (en el rango de los precios) pero por más que hago solo se queda en la primera celda del precio (20,88). No se que hacer, ayúdenme
ALGO ASÍ:
                                     ANCHO
LARGO
                  6,5 8 11
12,5 20,88 30 34
16 17 20 26
9,5 12 18 23

1 Respuesta

Respuesta
1
A los usuarios que no finalizan las consultas se ha decidido dejar de responderles.
Como tenés 1 sola consulta realizada, contás como se dice en Derecho del 'beneficio de la duda' (quizás no sabías que debías finalizar ;(
Por tal motivo haré 1 excepción dándote 1 nueva oportunidad, y aquí va una rutina que te devolverá el valor buscado.
Sub matriciando()
'desarrollada por Elsamatilde el 24/02/09
largo = ActiveSheet.Range("G2") 'AJUSTAR UBICACIÓN DEL DATO LARGO
ancho = ActiveSheet.Range("G3") 'AJUSTAR UBICACIÓN DEL DATO ANCHO
'la tabla se ubica a partir de A1
Set busco = ActiveSheet.Range("A1", Cells(Range("A65535").End(xlUp).Row, 1)).Find(largo, LookIn:=xlValues, LookAt:=xlWhole)
If Not busco Is Nothing Then
Set busco2 = ActiveSheet.Range("A1", Cells(1, Range("IV1").End(xlToLeft).Column)).Find(ancho, LookIn:=xlValues, LookAt:=xlWhole)
dato = Cells(busco.Row, busco2.Column).Value
MsgBox dato 'OPCIONAL
Hola Elsa, de verdad que no sabia lo de las reglas de la página. <Gracias por contestarme...
Ahora tu idea m ayudo en unas cosas, porque luego que hice la pregunte seguí intentándolo y ya me corre cuando lo ejecuto desde visual basic, pero se supone que a través de mi botón creado, al hacer click en esa página debería arrojarme el valor ahí mismo y no abrir la pantalla de visual basic, ¿qué crees pas?
Sera que me falta algo, ¿no se?
Esto ya parece una segunda pregunta, pero por favor ayudame y muchas gracias!
Private Sub precio_Click()
LargoUsu = Worksheets("hoja2").Range("a6")
DiameterUsu = Worksheets("hoja2").Range("b6")
For i = 7 To 32
largo = Worksheets("hoja1").Cells(i, 1).Value
If largo = LargoUsu Then
For j = 2 To 11
diametro = Worksheets("hoja1").Cells(5, j).Value
If diametro = DiameterUsu Then
For Each k In Worksheets("hoja1").Range("precios").Value
If k = Worksheets("hoja1").Cells(i, j) Then
Worksheets("hoja2").Range("c6").Value = k
End If
Next k
End If
Next j
End If
Next i
If k = "" Then
MsgBox "no hay disponibilidad de precios"
End If
End Sub
Esto fue lo que hice... pero no se que faltara para que al darle click al botón que tengo en mi hoja de excel, coloque el valor en la celda sin que se vaya a la hoja de visual basic... también hace todo el recorrido, y eso que solo introduzco datos que están en las primeras filas y columnas, así que como hago para cuando coincidan los datos de largo y ancho, busque el precio que coincida y ya...
Por faaa, gracias
Solicítame el ejemplo a mi correo (lo encontrarás en mi sitio), allí verás cómo y dónde coloqué el botón y la rutina.
No olvides recordarme tu alias o motivo de consulta
Sdos
Hola, eres un encanto, m diste muchísimas ideas para otras dudas que tenia, y para esta también...
Muy buena tu respuesta y tu tiempo para resolverla... Full excelente!
Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas