Besoin d'idées pertinentes : différentier des dates et du texte

Résolu
pier0 Messages postés 67 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 2 septembre 2005 - 25 août 2005 à 11:41
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 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:

2 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
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 ...

Christophe
3
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
25 août 2005 à 13:05
Bonjour,

En VBA excel cela va fonctionner, du moins les fonction existe en VBA.

Sacha

\!/
00
!
0
Rejoignez-nous