Mostrar siguiente pregunta al hacer click

3 envíos / 0 nuevos
Último envío
FixFox
Imagen de FixFox
Offline
última acción: Hace 21 horas 40 mins
alta: 24/01/2018 - 21:34
Puntos: 105
Mostrar siguiente pregunta al hacer click

Saludos amigos del foro, me he estancado en una instruccion de codigo que quiero que funcione.

en la primera hoja debo tener el resultado. En la hoja2 tendria muchas filas de datos de preguntas. Lo que quiero lograr es que en la hoja1 particularmente en la zona gris del archivo que subo se puedan ver las preguntas en la forma en que alli estan dispuestas las mismas que sean traidas de las filas de la hoja2 cada vez que se hace un click. He intentado con spinbutton o con commandbutton. Me gustaria que se recorran las las filas de preguntas solo hasta un limite indicado en la celda G2 (cantidad de preguntas) y el inicio seria lo indicado en la celda G5 (Inicio)

Agradezco anticipadamente su gentil colaboracion.

 

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 horas 29 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 8115
Como tienes las preguntas

Como tienes las preguntas numeradas 1,2,3,4,... se trataría de localizar la pregunta con ese número que te sirve de identificador y traer sus valores a la hoja 1.

Yo utilizaría BUSCARV para localizar la pregunta que interese. Puedes hacerlo poniendo las fórmulas en las celdas, o puedes hacerlo mediante código Application.Worksheerfunction.VLookUp(...) 

 

Otra opción es localizar la fila de la pregunta siguiente y copiar los valores, para eso te puede servir la función COINCIDIR (MATCH)

Por ejemplo, algo como esto:

Sub MuestraPregunta(Npregunta)

   Dim filaconlapregunta As Long

   filaconlapregunta = Application.WorksheetFunction.Match(Npregunta, Hoja2.Range("B:B"), 0) 'localizo la fila en la Hoja 2 donde está la pregunta que me interesa

   'Hoja1.Cells(10, 3) = Npregunta 'anoto el número de pregunta en la Hoja1 para saber cuál estoy mostrando (y saber cuál será la siguiente)

   Hoja1.Cells(10, 5) = Hoja2.Cells(filaconlapregunta, 5)

   Hoja1.Cells(11, 5) = Hoja2.Cells(filaconlapregunta, 6)

   Hoja1.Cells(13, 5) = Hoja2.Cells(filaconlapregunta, 7)

   Hoja1.Cells(14, 5) = Hoja2.Cells(filaconlapregunta, 8)

   Hoja1.Cells(15, 5) = Hoja2.Cells(filaconlapregunta, 9)

   Hoja1.Cells(16, 5) = Hoja2.Cells(filaconlapregunta, 10)

   Hoja1.Cells(13, 6) = Hoja2.Cells(filaconlapregunta, 11)

End Sub

 

Una vez tengas este procedimiento que carga una pregunta cualquiera, se trataría de llamarlo las veces que necesites

Por ejemplo con un procedimiento que compruebe el inicio y el número de preguntas a realizar que defines en la Hoja1, y que vaya anotando la cuenta en alguna celda para saber cuántas preguntas has realizado ya.

 

 

Data Tools Suite
datos y tablas con Excel

FixFox
Imagen de FixFox
Offline
última acción: Hace 21 horas 40 mins
alta: 24/01/2018 - 21:34
Puntos: 105
Saludos, la verdad no

Saludos, la verdad no comprendo como debe ir en definitiva trate de hacer lo que indicas pero no me resulta, trate de usar el spinbutton para avanzar hacia adelante y haceia atras, tampoco funciona. Entonces solo lo deje con la techa Next que esta en la hoja pero tampoco funciona al fin he estado probando asi:

Sub MuestraPregunta(Npregunta)

 

    Dim Npregunta As Integer

    Dim filaconlapregunta As Long

       Set Npregunta = Hoja1.Range("B10")  'Lo puse en B10, pues en C10 tengo el titulo de las celdas

      Application.Worksheerfunction.VLookUp(Hoja1.Range("B10"), Hoja2.Range("B5:L36"),5)

   filaconlapregunta = Application.WorksheetFunction.Match(Npregunta, Hoja2.Range("B:B"), 0)

   Hoja1.Cells(10, 2) = Npregunta

   Hoja1.Cells(10, 5) = Hoja2.Cells(filaconlapregunta, 5)

   Hoja1.Cells(11, 5) = Hoja2.Cells(filaconlapregunta, 6)

   Hoja1.Cells(13, 5) = Hoja2.Cells(filaconlapregunta, 7)

   Hoja1.Cells(14, 5) = Hoja2.Cells(filaconlapregunta, 8)

   Hoja1.Cells(15, 5) = Hoja2.Cells(filaconlapregunta, 9)

   Hoja1.Cells(16, 5) = Hoja2.Cells(filaconlapregunta, 10)

   Hoja1.Cells(13, 6) = Hoja2.Cells(filaconlapregunta, 11)

End sub
Espero que me puedas poner un poco mas claro la recomendacion , disculpame pues no he logrado comprender
Gracias por tu colaboracion

Para aprender hay que preguntar