Se connecter avec
S'enregistrer | Connectez-vous

problème de format sur VBA

Dernière réponse : dans Programmation

Bonsoir,
Novice sur VBA, j'ai un petit problème, si vous pouvez m'aider.
J’ai un tableau de plusieurs colonne où la première nous indique la période, qui doit être sous le format YYYY_MM (exp : 2007_02 ou 2007_11)
Je voudrai savoir si on pouvais créer une macro qui me permettrait de repérer les lignes dont les périodes ne sont pas sous ses formats ( exp : 200_03 ou 2007_134) , pour les modifier par la suite ou les supprimer.
merci d'avance
cordialement

Autres pages sur : probleme format vba

Lassé par la pub ? Créez un compte
Expert Programmation

>>Novice sur VBA
:/  Plus maintenant, hein ! ;) 

Pour parcourir la colonne, pas de problème tu devrais savoir faire.
Pour savoir quoi faire quand une date bonne ou mauvaise est détectée, je te laisse ce soin.

Voyons donc la détection :

Je te propose pour chaque date, de vérifier les 7 caractères, les uns après les autres. Dès qu'une erreur est détectée, la date n'est pas ok.

  1. Function VerifYYYY_MM(s As String) As Boolean
  2. ' // Vérification du format YYYY_MM
  3. Dim c As String
  4. Dim i As Integer
  5.  
  6. VerifDate = False
  7.  
  8. ' // D'abord, on vérifie qu'on a le format 9999_99
  9. For i = 1 To 7
  10. c = Mid(s & "XXXXXXX", i, 1)
  11. Select Case i
  12. Case 1, 2, 3, 4, 6, 7: If c < "0" Or c > "9" Then Exit Function
  13. Case 5: If c <> "_" Then Exit Function
  14. End Select
  15. Next
  16.  
  17. ' // Puis on vérifie que la première partie est une année comprise entre 2000 et 2008
  18. i = CInt(Mid(s, 1, 4))
  19. If 2000 > i Or i > 2008 Then Exit Function
  20.  
  21. ' // Et que la seconde est un mois.
  22. i = CInt(Mid(s, 6, 2))
  23. If 0 > i Or i > 12 Then Exit Function
  24.  
  25. VerifDate = True
  26. End Function


Je te demande juste de comprendre pourquoi j'ai ajouté "XXXXXXX". ;) 
Expert Programmation

Oups !

Petite* erreur de MA part. A toi de la trouver :o 
Grosse* erreur de TA part. Utilise l'Option Explicit !!!! :fou: 

(En réparant ta grosse* erreur tu trouveras ma petite* erreur ;)  )



* question de point-de-vue.
Lassé par la pub ? Créez un compte