Macro contrôle de donnée

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

roidurif

XLDnaute Occasionnel
Bonjour à toutes et à tous

Comment retranscrire en Macro qui verifie si :

- Le format date "début et fin" est jj/mm/aaaa => si Faux "Numéro célulle" dans onglet feuil2 (Format date jj/mm/aaaa)

- Toute Date début doit être identique à D2 et tout date de Fin doit être identique à E2 => Si faux, indiquer "Numéro célulle" dans onglet feuil2 (Incohérence date)

- Toute Date début et fin doit être rempli => Si date non renseigner, alors indiquer "Numéro célulle" dans onglet feuil2 (Manque date)


merci
 

Pièces jointes

Re : Macro contrôle de donnée

Merci Catrice pour la solution, j'avais un problème similaire pour un contrôle le format d'une donnée de date.

J'en profite pour ajouter une question, pourquoi ma première tentative de code plante avec un mismatch malgré le iserror ?
Code:
Public Sub test()
'Dim z As Date

a = "22/01/2009"
b = "22/1/2009"
c = "22/13/2009"
d = "22.01.2009"
e = "22,01,2009"

'changer la valeur de z pour les tests :
z = c


If Not IsError(CDate(z)) Then
    MsgBox z
End If

End Sub

Mentalement je pense de manière très simple : si tu arrives à convertir z en date, tu me le montres ; si tu plantes, tu ne fais rien. Où me trompe-je ?
-------------------------
Pour les paresseux, le code de contrôle qui m'intéressait était :
If X.NumberFormat <> "m/d/yyyy" Then
-------------------------
EDIT : et en fait je n'ai pas réussi à adapter ce code, ou bien il n'est pas assez large.
J'énonce mon problème : je veux être certain qu'une donnée entrée est compatible avec un format date.

En grattant j'ai fini par trouver ceci :
Code:
Public Sub test()
'Dim z As Date

a = "22/01/2009"
b = "22/1/2009"
c = "22/13/2009"
d = "22.01.2009"
e = "22,01,2009"
f = "foj"
g = 40000

'changer la valeur de z pour les tests :
z = e


If IsDate(z) Then
    MsgBox Format(z, "dd/mm/yyyy")
End If


End Sub

Où seuls a, b et e passent ce qui me convient. Mais est-ce suffisant ? Merci pour les éventuels commentaires / conseils.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

G
  • Question Question
Réponses
7
Affichages
1 K
S
Réponses
0
Affichages
1 K
samia89
S
M
Réponses
2
Affichages
1 K
C
Réponses
2
Affichages
2 K
C
Retour