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

Obtener un Valor de una matriz con tres parametros.

Estas en el tema de Obtener un Valor de una matriz con tres parametros. en el foro de Ofimática en Foros del Web. AG AH AI AJ AK 2 13 BAJA MEDIA ALTA CRITICA 3 PLATINO 2880 360 240 30 4 ORO 7200 1440 360 30 5 PLATA ...
  #1 (permalink)  
Antiguo 26/04/2010, 10:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Obtener un Valor de una matriz con tres parametros.

AG AH AI AJ AK
2 13 BAJA MEDIA ALTA CRITICA
3 PLATINO 2880 360 240 30
4 ORO 7200 1440 360 30
5 PLATA 4200 1800 600 30
6 BRONCE 6000 4200 1200 30

Tengo esta matriz en un celda, y necesito una función de una macro, que dado los siguientes valores, son valores de ejemplo :

AG2 = 13
AH2 = BAJA
AG4 = ORO

El valor a devolver es 7200

Otro ejemplo

AG2 = 13
AI2 = MEDIA
AG5 = PLATA

El valor a devolver es 1800

A ver si alguien me puede ayudar

Gracias
  #2 (permalink)  
Antiguo 26/04/2010, 14:32
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 17 años
Puntos: 69
Respuesta: Obtener un Valor de una matriz con tres parametros.

Código:
Cells.Find(What:=SELECCIONDEVALORESQESTANENELERENGLON, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
        rowt = ActiveCell.Row
        colt = ActiveCell.Column
		
		Cells.Find(What:=SELECCIONDEVALORESQESTANENCOLUMNA, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
        rowC = ActiveCell.Row
        colC = ActiveCell.Column

		
		TUCELDAES=CELLS(ROWT,COLC).VALUE
		MSGBOX(TUCELDAES)
  #3 (permalink)  
Antiguo 26/04/2010, 14:46
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 19 años
Puntos: 0
Respuesta: Obtener un Valor de una matriz con tres parametros.

A mi también me interesa, y no soy muy experto del tema, puede ser mas concreto cuando dices :

SELECCIONDEVALORESQESTANENELERENGLON ?
SELECCIONDEVALORESQESTANENCOLUMNA ?

TUCELDAES=CELLS(ROWT,COLC).VALUE ?
MSGBOX(TUCELDAES)

Vamos como quedaría dentro de un módulo

Function xxxx ()
(codigo)
End Function
  #4 (permalink)  
Antiguo 26/04/2010, 15:08
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 17 años
Puntos: 69
Respuesta: Obtener un Valor de una matriz con tres parametros.

pues me imagino q pides los valores de si es oro o es critico y eso. con un input box o no se como pidas esos valores entonces si el usuario escoge: "baja, media alta o critica" el texto iria en la variable q le puse de nombre:
SELECCIONDEVALORESQESTANENELERENGLON

y si escoge oro, platino etc ese valor iria en :
SELECCIONDEVALORESQESTANENCOLUMNA

digamos que

Código:
DIM SELECCIONDEVALORESQESTANENELERENGLON  AS STRING

DIM SELECCIONDEVALORESQESTANENELECOLUMNA AS STRING
Pero depende como haces q el usuario o la macro elija esos valores.
  #5 (permalink)  
Antiguo 27/04/2010, 01:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Respuesta: Obtener un Valor de una matriz con tres parametros.

Buenas,

Gracias por el código lo he estado probando no me devuelve los valores que toca, según la combinación que ponga me devuelve valores que no toca.

Mi necesidad es :

Aparte de la selección entre BAJA-MEDIA-ALTA-CRITICA y PLATINO-ORO-PLATA-BRONCE

El valor 13 es otro parametro a tener en cuenta, ya que tengo tres matrices con valores diferentes, me refiero a los números. Tenemos tres matrices, la 13, la 14 y la 15.

Se le indico la matriz 13, quiero recupear el valor de la combinación entre PLATINO-BAJA y que me devuelva 2880, que si cojo la matriz 14, a lo mejor la misma combinación es un valor diferente.

Espero que quede más claro esta explicación
  #6 (permalink)  
Antiguo 27/04/2010, 07:44
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 17 años
Puntos: 69
Respuesta: Obtener un Valor de una matriz con tres parametros.

ay a ver. Yo estoy suponiendo q tu matriz es así:

.........AG...........AH.........AI............AJ. ...........AK
2 .....13 ..............BAJA.....MEDIA.....ALTA ...CRITICA
3 .....PLATINO.....2880.....360.........240 ....30
4......ORO...........7200.....1440.......360 .....30
5......PLATA.........4200.....1800.......600 .....30
6......BRONCE......6000.....4200......1200 ....30

y que el 1,2,3,4 son los renglones correspondientes a excel y no a valores. Y que AG, AH etc son columnas de excel y no valores cierto?
Entonces si quieres escoger la matriz 13. haces esto:

Cells.Find(What:="13", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
rowt = ActiveCell.Row
colt = ActiveCell.Column
y despues recorres el renglon y las columnas, por ejemplo:

yo escojo media y plata y la matriz 13.

Cells.Find(What:="13", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
rowt = ActiveCell.Row
colt = ActiveCell.Column

mivariable1="MEDIA"
mivariable2="PLATA"
dim memuevo1 as integer
memuevo1=colt
memuevo2=rowt
do while mivariable1 <> cells(rowt,memuevo1).value
memuevo1=memuevo1+1
loop

'cuando encuentre MEDIA te dara la columna donde esta media ahora vemos el renglon

do while mivariable2 <> cells(memuevo2,colt).value
memuevo2=memuevo2+1
loop

'cuando encuentre PLATA se para y te devuelve el renglon, el valor que quieres se forma por la columna de memuevo1 y el renglon de memuevo2.

mivalor=cells(memuevo2,memuevo1).value
msgbox(mivalor)

Etiquetas: matriz, parametros, tres
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:20.