para motivar a mis alumnos

10/11/2005 - 05:03 por titor | Informe spam
he pensado en aplicar examenes a mia alumnos, de tal forma que al escribir el
numero o datos de la solucion de algun problema en una celda, si esta
solucion es correcta se corra algun clip (tal vez de la galeria) ¿se puede?
alguna sugerencia?
AGRADEZCO LA AYUDA
 

Leer las respuestas

#1 Héctor Miguel
10/11/2005 - 06:52 | Informe spam
hola, titor !

... aplicar examenes a... alumnos, de... forma que al escribir el numero o datos de la solucion de algun problema en una celda
si esta solucion es correcta se corra algun clip (tal vez de la galeria) se puede? alguna sugerencia?



existen varias formas de lograr lo que deseas [p.e. tocar un sonido o -incluso- mostrar un 'clip' como mencionas] ;) [p.e.]

-> usando los eventos de 'la hoja' [o los del libro]...
el evento '_Change' [cuando 'dicha' celda cambia por 'entrada directa']
el evento '_Calculate' [cuando su resultado cambia por 'efectos de calculo' -en otras celdas-]
-> 'contras': usar los eventos [generalmente] 'destroza' la posibilidad de 'des-hacer' los cambios [inhibe el 'UnDo'] :((

-> para el caso de 'emitir' un sonido, es necesario hacer 'llamadas' a las API's del Windows MediaManager
y existen [al menos] tres 'sub-secciones' del WMM que se pueden utilizar:
- PlaySound -> 'mas util' cuando 'falla' la busqueda del archivo 'a tocar'
- sndPlaySound -> 'mas util' cuando 'necesitas' que la musica toque 'mientras la macro continua'
- mciExecute -> igual a la anterior, 'acepta' las extensiones 'midi' [como -largos- archivos mp3, midi, etc.]
=> NO TODOS los 'formatos de compresion' estan 'cubiertos' POR TODAS las opciones señaladas :( < [tal parece que todo tiene sus 'pros' y 'contras'] :((

-> [creo que...] una forma [de las 'mas versatiles y sencillas'] para lo que requieres [hablando de sonidos] es...
crear una funcion 'personalizada' [y 'llamarla' como a 'cualquier otra' funcion de hoja de calculo] ;)

con los siguientes 'supuestos' [y con la primera de las opciones: 'PlaySound']:
- A1 es la celda que se va a 'monitorear' [cualquier valor, texto, formula, etc.]
- A2 'tiene' el 'operador de comparacion' [p.e. =, >=, <>, etc.] => si vas a usar la igualdad, ANTEPON un apostrofo >'=< <- A3 contiene el dato 'contra' el cual se hara la 'comparacion'
- C1 es la 'ruta al archivo' que se tocara 'si se cumple' la condicion [p.e. C:\Windows\Media\Reciclaje de Windows XP.wav]
- C2 es la 'ruta al archivo' que se tocara 'si NO se cumple la condicion [p.e. C:\Windows\Media\Ir_end.wav] =>'opcional'<- C3 es la celda donde 'usaras' la funcion 'personalizada' p.e. =AvisarSiCumple(a1,a2,a3,c1,c2)
o puedes usar 'valores directos' en la funcion, p.e.: =AvisarSiCumple(a1,"=",36,c1,c2)
o puedes 'anidarla' dentro de otras funciones p.e. =si(a1="","",AvisarSiCumple(a1,a2,a3,c1,c2))
o... ??? [lo dejo a tu criterio] :))

- los 'argumentos' de la funcion son: =AvisarSiCumple(Comparar,Operador,Condicion,ArchivoSiCumple,ArchivoSiNoCumple)
- 'segun' el/los archivo/s que especifiques...
si NO 'existe/n'... 'tocara' un sonido 'asincrono' [speakers de la pc]
si SI 'existe/n'...
si 'se puede/n tocar'... se toca/n
si NO 'se puede/n tocar'... ni modo !!!... no hara 'sonido alguno' ;)

el codigo te lo adjunto en seguida [espero que sea +/- lo que solicitas] comentas?
saludos,
hector.

== en un modulo de codigo 'normal' =Private Declare Function _
Usar_PlaySound _
Lib "winmm.dll" _
Alias "PlaySoundA" ( _
ByVal Archivo As String, _
ByVal Modulo As Long, _
ByVal Bandera As Long) As Long
Function AvisarSiCumple(ByVal Comparar As Variant, _
ByVal Operador As String, _
ByVal Condicion As Variant, _
ByVal ArchivoSiCumple As String, _
Optional ByVal ArchivoSiNoCumple As String = "") As String
If Evaluate("""" & Comparar & """" & Operador & """" & Condicion & """") Then
Usar_PlaySound ArchivoSiCumple, 0&, &H1 Or &H20000
AvisarSiCumple = "Cumplio !!!"
ElseIf ArchivoSiNoCumple <> "" Then
Usar_PlaySound ArchivoSiNoCumple, 0&, &H1 Or &H20000
AvisarSiCumple = "NO Cumplio !!!"
Else: AvisarSiCumple = "NO Cumplio !!!"
End If
End Function

Preguntas similares