pier0
Messages postés67Date d'inscriptionmardi 19 juillet 2005StatutMembreDernière intervention 2 septembre 2005
-
25 août 2005 à 11:41
sacha1435
Messages postés94Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention12 octobre 2005
-
25 août 2005 à 13:05
Salut,
Je vient de réaliser 1 prog vba et j'aurais besoin de vos idées.
En fait mo program analyse un Planning (fichier .xls) et il doit récupérer les dates de ce Planning. Le module qui récupère les dates a été écris par un collègue donc je pe pas trop le modifier, j'ai juste à l'adapter.
En fait le pb c'est que dans le Planning une cellule peut contenir une date de la forme: JEUDI 01/09/05 ou bien du texte du genre : SI OK ENLEVER DE JEUDI
Le pb c'est que quand ya du texte le module de récupération des dates se plante et dans l'exemple cité au moment ou il cherche la date de jeudi il se trompe et récupère le texte SI OK ENLEVER DE JEUDI à la place.
Mon but est donc de trouver un moyen de différentier les cellules contenant un jour avec la date (JEUDI 01/09/05 ) avec les cellules contenant un jour avec du texte (SI OK ENLEVER DE JEUDI).J'ai plusieurs idées mais je ne sais pas vraiment quelle fonction vb utiliser:
idée 1: tester le contenu des cellules et compter le nb de carctère (avec quelle fonction VBA puis je le faire?????): si le nb de caractère est <17 il s'agit d'une date (VENDREDI 02/09/05->17 caractères) sinon il s'git du texte (en supposant que si il y a du texte il sera forcement composé de + de 17 caractères)
idée 2: tester le format de la cellule (comment faire????): si format date->c'est une date, si format différent de date->c'est du texte
idée 3: réussir à distinguer dans du texte que en plus du jour il y a plusieurs mots(SI OK ENLEVER DE JEUDI, en plus de jeudi il y a 4 mots ).Comment puis je faire
Si vous avez des idées elles sont les bienvenues.
Merci d'avance, Pier0
A voir également:
Besoin d'idées pertinentes : différentier des dates et du texte
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 25 août 2005 à 12:20
Je ne sait aps si toutes ces fonctions sont disponible en VBA mais en VB6, je feraiti cela :
Dim i as long
Dim Chaine as string
Chaine = "jeudi 01/09/05"
Dim NomJour as string, D as string
i = instr(chaine, " ")
NomJour = ucase(trim(left(chaine,i)))
D = trim(mid(chaine,i))
If IsDate(d) Then
If nomjour = ucase(weekdayname(weekday(d))) then
MsgBox chaine & " est un format de date OK"
else
Msgbox chaine & " n'est pas un format date correct : Nom du jour KO"
end if
Else
Msgbox chaine & " n'est pas un format date correct : Date absente de la chaine"
End If
J'ai aps VB sous la main, mais en VB6, ca doit le faire ca ...