Private Sub Form_Activate() Me.KeyPreview = True For i = 0 To 3 Q(i).BackColor = vbYellow Q(i).Value = False Next End Sub Private Sub Form_KeyPress(KeyAscii As Integer) Select Case Val(Chr(KeyAscii)) Case 0 To 3 Q(Val(Chr(KeyAscii))).Value = True End Select End Sub Private Sub Q_Click(Index As Integer) For i = 0 To 3 If Q(i).Value = True Then Q(i).BackColor = vbRed Else Q(i).BackColor = vbYellow End If Next End Sub
Private Sub Q_Click(Index As Integer) For i = 0 To 4 If Q(i).Value = True Then Q(i).BackColor = &HFFFF& 'REP est le cadre où doit s'afficher l'image REP = Img(i) Else Q(i).BackColor = &H8000000F End If Next End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyNumpad1 If Img1 Then REP = Img1 L = "1" Q1.BackColor = &HFFFF& Q2.BackColor = &H8000000F Q3.BackColor = &H8000000F Q4.BackColor = &H8000000F Q5.BackColor = &H8000000F End If Case vbKeyNumpad2 If Img2 Then REP = Img2 ...
Grâce à l'ami pcfoutu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionCe ne serait pas "Q(1).BackColor = &HFFFF&" au lieu de "Q1.BackColor = &HFFFF&" ?
Pour ton autre affaire (utilisation du clavier numérique) :
La règle est toujours la même dans toutes les applis, groupes indexés ou non : déplacements d'un contrôle à l'autre par la touche tab. Clic par la touche ENTER
J'appelle à ce sujet ton attention sur la propriété TabIndex des contrôles (indexés ou non). Elle permet de déterminer l'ordre de "parcours" d'un contrôle à l'autre (et s'appelle tabindex car c'est toujours par touche tab)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyNumpad1 If Img1 Then REP = Img1
Pas du tout ! Ca, c'est résolu !
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode > 95 And KeyCode < 101 Then Q(KeyCode - 96).SetFocus End Sub Private Sub Form_Load() Me.KeyPreview = True End Sub Private Sub Q_GotFocus(Index As Integer) For i = 0 To 4 If i = Index Then Q(i).BackColor = vbYellow Else Q(i).BackColor = Me.BackColor End If Next i End Sub
Private Sub Q_GotFocus(Index As Integer) For i = 0 To 4 If i = Index Then Q(i).BackColor = vbYellow REP = Q(i).Caption Else Q(i).BackColor = Me.BackColor End If Next i End Sub
Select Case Val(Chr(KeyAscii)) Case 0 To 3 Q(Val(Chr(KeyAscii))).Value = True End Select
Ceci étant dit :
1) on mélange ici tout, à traiter deux choses (d'un côté le clavier et de l'autre les images) et ce n'est pas bon du tout, sur un forum
2) pour en revenir au clavier : il y a quand même mieux que de faire tout intercepter par le Form (ce qui peut priver de nombreuses autres choses), non ?
Je préfèrerais quant à moi l'utilisation de l'Ampersand/raccourci, mais alors avec ALT + A à D
Acive souligne les fonctions "ALT + A à D" puis enchaîne sur la reconnaissance vocale !
Entre nous, est-ce j'ai demandé votre aide pour ces 2 fonctions ?