Mostrar siguiente pregunta al hacer click

5 envíos / 0 nuevos
Último envío
FixFox
Imagen de FixFox
Offline
última acción: Hace 5 años 11 meses
alta: 24/01/2018 - 21:34
Puntos: 160
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 6 horas 2 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
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.

 

 

------
Ya sé Excel, pero necesito más.

FixFox
Imagen de FixFox
Offline
última acción: Hace 5 años 11 meses
alta: 24/01/2018 - 21:34
Puntos: 160
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

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 6 horas 2 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
La función de ejemplo que te

La función de ejemplo que te he puesto lee el contenido de una pregunta, una pregunta que identificas con su número, que es lo que le pasas como argumento al procedimiento.

Si quieres mostrar la siguiente pregunta al pulsar un spin button, tienes que hacer qeu cuando se pulse ese spinbutton llame a la función que carga la pregunta.

por ejemplo, en tus eventos del Spin Button podrías hacer algo así:

Private Sub SpinButton1_SpinDown()

    Hoja1.Range("E8") = Hoja1.Range("E8") - 1

    MuestraPregunta (Hoja1.Range("E8").Value)

End Sub

 

Private Sub SpinButton1_SpinUp()

    Hoja1.Range("E8") = Hoja1.Range("E8") + 1

    MuestraPregunta (Hoja1.Range("E8").Value)

End Sub

 

 

 

------
Ya sé Excel, pero necesito más.

FixFox
Imagen de FixFox
Offline
última acción: Hace 5 años 11 meses
alta: 24/01/2018 - 21:34
Puntos: 160
Agradeciendo tema resuelto

Gracias Maestro Pacomejia, con lo ultimo he podido resolver este tema y muchos otros tambien, 

ese modo de codigficar la variable (una instruccion) y luego el rango no lo habia conocido , muchas gracias por tus enseñanzas

Este tema se ha resuelto

Para aprender hay que preguntar