VBA Excel: inputbox, vbcancel et date
Aude
-
fabien25000 Messages postés 697 Statut Membre -
fabien25000 Messages postés 697 Statut Membre -
Bonjour,
Je travaille sur Excel 2013 et je rencontre une difficulté avec la fonction "Annuler" de mon inputbox.
En effet, j'ai créé une inputbox où saisir la date d'échéance d'un projet dans la prochaine cellule vide de ma colonne B. Tout se passe bien lorsque des dates conformes sont tapées dans l'inputbox et validées: la date apparaît bien et au bon endroit.
En revanche, lorsque je décide d'annuler ma saisie dans l'inputbox, la date "00/01/1900" apparaît quand même dans la prochaine cellule vide, alors que je voudrais qu'elle reste vide, puisque j'ai annulé.
Par ailleurs, j'aimerais pouvoir m'assurer que seule une date (ou du moins une information numérique) puisse être renseignée, raison pour laquelle j'ai utilisé 'application.inputbox'; or quand une donnée alphabétique est entrée, le message "Nombre non valide" apparaît alors que j'aimerais le remplacer par "Format non valide" par exemple; comment faire?
Voici mon code:
Quelqu'un aurait-il des pistes pour résoudre ce problème? Le fichier est disponible ici: https://www.cjoint.com/c/IECnq2N4Rws
Je vous en remercie infiniment!
Aude
Je travaille sur Excel 2013 et je rencontre une difficulté avec la fonction "Annuler" de mon inputbox.
En effet, j'ai créé une inputbox où saisir la date d'échéance d'un projet dans la prochaine cellule vide de ma colonne B. Tout se passe bien lorsque des dates conformes sont tapées dans l'inputbox et validées: la date apparaît bien et au bon endroit.
En revanche, lorsque je décide d'annuler ma saisie dans l'inputbox, la date "00/01/1900" apparaît quand même dans la prochaine cellule vide, alors que je voudrais qu'elle reste vide, puisque j'ai annulé.
Par ailleurs, j'aimerais pouvoir m'assurer que seule une date (ou du moins une information numérique) puisse être renseignée, raison pour laquelle j'ai utilisé 'application.inputbox'; or quand une donnée alphabétique est entrée, le message "Nombre non valide" apparaît alors que j'aimerais le remplacer par "Format non valide" par exemple; comment faire?
Voici mon code:
Sub test2()
Dim NBL1 As Long, nom As Date
nom = Application.InputBox("Quelle est la date de référence?" & vbLf & vbLf & "L'indiquer au format JJ/MM/AAAA", "Date", Type:=1)
If nom = vbCancel Then
Exit Sub
Else
NBL1 = Range("C1").End(xlDown).Offset(1, 0).Row
Range("C" & NBL1).Value = CDate(nom)
Range("C" & NBL1).NumberFormat = "dd/mm/yyyy;@"
End If
End Sub
Quelqu'un aurait-il des pistes pour résoudre ce problème? Le fichier est disponible ici: https://www.cjoint.com/c/IECnq2N4Rws
Je vous en remercie infiniment!
Aude
2 réponses
-
Bonjour,
il me semble que le problème du bouton annuler des inputbox est assez récurent selon ce que l'on attend des inputbox
pourquoi ne pas simplement créer un userforme pour remplacer ta inputbox?(dans lequel tu pourras tester facilement la valeur saisie surafterupdate
par exemple)
-
Bonjour fabien25000,
Et merci pour votre message!
J'ai donc creusé la piste du userform et la page https://www.commentcamarche.net/faq/46730-vba-mon-tout-premier-userform-debutants-extremes m'a permis de remplacer mon inputbox par le userform qui semble effectivement plus approprié.
Je cherche à présent à mettre en place le contrôle du format de la date à saisir.
Merci encore! -
-
-
-
-