Bonjour madefemre,
Comme dis hier, j'aimerais améliorer la saisie des données au niveau du transfert des lignes des listes box : liste Liste_ArriveeQuai vers Liste_MiseAquai.
Lors du transfert , j'ai 4 inputbox qui s'affichent l'un aprés l'autre :
le premier demande l'heure de mise à quai
le deuxième demande le numero de quai
le troisième demande le nombre de colis
le quatrième et dernière demande l 'immatriculation
Je souhaiterais, que ces 4 inputbox ne s'affichent plus les uns aprés les autres mais tous en même temps dans une sorte d'encadrement.
Et c'est dans cette encadrement, que l'on referencerait l'heure de mise à quai; le numero de quai, le nombre de colis et enfin l'immatriculation.
On ne toucherait pas aux conditions en cas de fausse manip.
Par contre, j'aimerais , que le bouton annuler de cette encadrement permet d'annuler le tranfert de la ligne ( cas où la personne se rend compte qu'il s'est trompé de ligne au moment ou il commence à réferencer les inputbox)
Actuellement, lorsque le 1er inputbox (heure de mise à quai) s'affiche, je suis contraint de mettre une heure. Je ne peux pas annuler l'enregistrement. Si je clic sur "annuler" , j'ai mon message box qui s'affiche "La valeur saisie n'est pas une heure" ,"Veuillez recommencer la saisie".
Au niveau du 2ième inputbox, le clic sur "annuler" ne met pas un terme au transfert de la ligne mais me fait passer à l'inputbox suivant
Même chose pour le 3 ieme inputbox.
Et au niveau du 4ième inputbox, lorsque je clic sur "annuler", le tranfert final s'opere.
Pour palier à cette problèmatique, j'ai crée un condition qui dit que si je n'inscrit rien dans l'inputbox, alors la réponse est -2
Ce n'est pas terrible mais bon c'est tout ce que j'ai pu trouvé..
Ci dessous , la procédure où sont inseré les inputbox
tu as aussi les fonctions appélées par les inputbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private Sub ArriveeMiseAQuai_Click() Dim valNbQuai As Integer Dim ValNbColis As Integer Dim varImmatriculation As String If ListeSelection(Liste_ArriveeQuai) Then 'Copie les élements sélectionnés vers la liste de droite HeureMiseAQuai = SaisieHeureMiseAQuai valNbQuai = SaisieQuai ValNbColis = SaisieColis varImmatriculation = SaisieImmat 'Attention ici on considère que la personne a saisi les valeurs correspondants aux champs. Il n'y a pas de gestion d'erreur. Il faudrait rajouter des IF pour vérifier la qualité des valeurs saisies. TransposerElementMisAQuai Liste_ArriveeQuai, Liste_MiseAquai, HeureMiseAQuai, valNbQuai, ValNbColis, varImmatriculation, True Else MsgBox "la date saisie est incorrecte !" End If 'End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Function SaisieHeureMiseAQuai() Dim Chaine As Date BoxSaisie: Chaine = InputBox("Saisir l'heure de mise à quai au format hh:mm" & _ Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _ Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Heure de mise à quai?", "0") If Not IsDate(Chaine) Then MsgBox "La valeur saisie n'est pas une heure" + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie" GoTo BoxSaisie Else SaisieHeureMiseAQuai = CDate(Chaine) End If End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Function SaisieQuai() Dim Chaine As String BoxSaisie: Chaine = InputBox("Saisir le numéro de quai pour la remorque" & _ Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _ Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Numéro de quai?", "0") If Chaine = "" Then Chaine = -2 Exit Function Else If Not IsNumeric(Chaine) Then MsgBox "La valeur saisie n'est pas un nombre." + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie" GoTo BoxSaisie End If If Not (CInt(Chaine) > 0 And CInt(Chaine) < 65) Then MsgBox "Le numéro de quai doit être compris entre 1 et 52." + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie" GoTo BoxSaisie Else SaisieQuai = CInt(Chaine) End If End If End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Function SaisieColis() As Integer Dim Chaine As String BoxSaisie: Chaine = InputBox("Saisir le nombre de colis transportés" & _ Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _ Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Nombre de colis?", "0") If Chaine = "" Then Chaine = -2 SaisieColis = CInt(Chaine) Else If Not IsNumeric(Chaine) Then MsgBox "La valeur saisie n'est pas un nombre." + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie" GoTo BoxSaisie Else SaisieColis = CInt(Chaine) End If End If End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Function SaisieImmat() As String Dim Chaine As String BoxSaisie: Chaine = InputBox("Saisir l'immatriculation de la remorque." & _ Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _ Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Immatriculation?", "0") If Chaine = "" Then Chaine = -2 SaisieImmat = Chaine Else SaisieImmat = UCase(Chaine) End If End Function
Partager