Bonjour,
Je me permets de poster ma question, bien que en réfléchissant et en me relisant, j'ai trouvé une autre solution pour la saisie
Cependant la question reste intéressante.
J'ai un userform où l'utilisateur scanne des objets. chaque scan verrouille la zone de saisie et passe à la suivante.
Je vérifie au fil de l'eau que l'objet n'a pas déjà été scanné
J'ai ajouté un checkbox pour déverrouiller une zone et refaire la saisie en cas de besoin. Cela fonctionne.
(ce sont des objets mis en boite).
Maintenant je vais scanner 32 boites à mettre sur une palette !
Je cherche à avoir une boucle de check plutot que d'écrire 64 private sub. c'est pas tant l'effort que le risque d'oubli ou d'erreur.
Et comme je fait le controle au fur et à mesure, je ne peux pas faire une boucle sur les controls.
en fait je cherche à faire
Mon code actuel (extrait)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private sub change_objets 1 2 3 4 ....32
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Coque_1_Change() If Len(Me.Coque_1.Value) = 18 Then For i = Nb_Coques To 1 Step -1 If i <> 1 Then If Me.Controls("Coque_" & i).Value <> "" And Me.Controls("Coque_" & i).Value = Me.Coque_1.Value Then MsgBox ("Attention coques déjà saisie, resaisir "): Me.Coque_1 = "": Exit Sub End If Next Me.Coque_1.Locked = True Me.Coque_2.SetFocus End If End SubJ'ai vu une possibilité, mais qui me parait plus compliquée que d'ecrire mes 64 privates sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub CheckBox1_Click() If Me.CheckBox1 = True Then Me.Coque_1.Locked = False: Me.Coque_1 = "": Me.CheckBox1 = False: Me.Coque_1.SetFocus End Sub
https://www.mrexcel.com/board/thread...hanges.820733/
Comme expliqué au début, je vais opter pour une solution beaucoup plus simple à savoir une zone de saisie, sur laquelle je fais mon controle avant de copier le contenu de la zone dans les différentes box.
et pour corriger je vais mettre un checkbox supplémentaire qui me permettra de lancer un bouclage sur tous les checkbox pour voir lequel est cliqué.
Merci pour vos conseils
Denis
Partager