GRABAR DATOS DE UN FORMULARIO EN UNA MATRIZ

2 envíos / 0 nuevos
Último envío
maristega22
Imagen de maristega22
Offline
última acción: Hace 1 año 9 meses
alta: 17/02/2017 - 21:35
Puntos: 25
GRABAR DATOS DE UN FORMULARIO EN UNA MATRIZ

Saludos,

 

Necesito de su valiosa ayuda tengo un trabajo que presentar.

El problema es basicamente que tengo un formulario con 2 combo box en uno selecciono el encabezado de la columna y en el otro selecciono el encabezado de la fila, tengo un caja de texto en la cual ingreso una cantidad, 1 un boton guardar.

 

La Idea es que luego de ingresa la cantidad, y presionar el boton Guardar se grabe el valor en la celda donde se intercepten la columna y la fila.

 

ejemploEjemplo

 

AdjuntoTamaño
Image icon Ejemplo del problema103.6 KB

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 1 día 12 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 11110
Tienes la función MATCH que

Tienes la función MATCH que te dará la posición de la fila y de la columna que necesitas. Entonces tienes la función CELLS para colocar ahí el valor.

    Dim col As Integer
    Dim fila As Integer
    col = WorksheetFunction.Match(ValorA, Range("2:2"), 0)
    fila = WorksheetFunction.Match(ValorB, Range("A:A"), 0)
    Cells(col, fila).Value = valorC

 

En este ejemplo, tienes que tomar el valor que selecciones en el primer combo y meterlo en la variabla ValorA. Lo mismo con el segundo combo y la variable ValorB. Y el valor tecleado en el textbox lo metes en VariableC

 

Lo que hace es buscar coincidencia de cada valor y te dice el elemento del vector donde busca en el que se encuentra el valor. Asegúrate de que pones como tercer parámetro el valor 0, que significa coincidencia exacta. Si pones 1 o -1 te puede dar resultados diferentes.

Si el resultado que introduces en col es 4, eso significa que ha encontrado tu valor en la columna D.

Lo mismo con la fila.

Asegúrate también de que mantienes el valor dentro de Range para que se aplique a la fila/columna entera. Esto es porque si empiezas en una columna que no sea la A o en una fila que no sea la 1, el valor que te devuelva no será el mismo. Si empiezas a contar desde la columna D, entonces el valor 1 será la columna D, que es la primera de tu rango. Si lo tienes que hacer así, recuerda sumarle al valor col el desplazamiento que necesitas. En nuestro ejemplo, col sería el valor calculado + 3, de manera que cuando te devuelva 1, el valor almacenado en col será 4, que sí es la columna D.

 

Finalmente, lo único que queda es introducir el valor del form en la celda correspondiente así calculada.

 

Creo que me he ido un poco por los cerros de Úbeda, si tienes alguna duda, sigue preguntando e intentaré ser algo más concreto.

 

Un saludo