FORUM Tom's Hardware » Programmation » VB / VBA / VBS » problème de format sur VBA
 

problème de format sur VBA

Il y a 259 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : problème de format sur VBA
 
Plus d'informations

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

zeb
Profil : Modérateur libre
Plus d'informations

>>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.

 
Code :
  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". ;)


Message édité par zeb le 27-02-2008 à 12:34:20

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Bonsoir,
je te remercie pour ton aide, mais j'ai essayé mais ça marche pas, je ais si ça va vient de moi :) ou du code.
qunt j'éxécute la formule ça me met tout le temps "faux"
merci

zeb
Profil : Modérateur libre
Plus d'informations

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.


Message édité par zeb le 28-02-2008 à 11:09:39

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » problème de format sur VBA
 

Annonces Google
Publicité