[vba] recherche de caracteres dans une chaîne

  • Auteur de la discussion littlerainbow
  • Date de début

littlerainbow

Habitué
Je souhaiterai trouver une cellule dont le contenu commence par une date (jj/mm/aaaa) mais la cellule contient aussi autre chose après, elle est en format standard (pas format date). Je ne sais pas comment faire, la date étant variable (je ne cherche pas une date précise).
Comment faire pour rechercher par exemple une cellule qui contient un slash en 3e et 6e position de la chaîne de caractères?
L'idéal étant de rechercher ces slash en 3e et 6e position et vérifier qu'il s'agit bien de chiffres avant et après les slash...
Merci d'avance pour vos réponses!



 

Nova13

Habitué
Tout dépend de tes conditions de tests...
Sinon pour connaitre si les "/" sont en 3ème et 6ème positions, c'est la même méthode que l'autre jour pour chercher les "\" dans un chemin de fichier.

[cpp]case=range("Xn")

if InStr(1, case, "/") = 3
et
if InStr(4, case, "/") = 6[/cpp]
après ce n'est qu'un simple test pour savoir si les caractères sont numeriques ou non.
Avec
[cpp]if IsNumeric(tachainedecarac) then[/cpp]
tu devrais arriver à pas mal de truc

EDIT: pas case, c'est un mot réservé
 

littlerainbow

Habitué
ça correspond à quoi le 1 et le 4 qui sont dans "Instr" ?
(à part ça je vois comment faire, merci encore une fois)
 

zeb

Modérateur
RTFM :o
Argh..... Interdit de poser une question dont la réponse est triviale : lire le manuel.
 

Nova13

Habitué
InStr("Place du caractère où va commencer la comparaison","chaine de caractère à comparer","caractère à comparer","1 ne tient pas compte des majus/minuscules - 0 (par défaut) tient compte des majus/minuscules")

Comme l'a dit si joliement zeb : RTFM (maintenant que je sais ce que ca veut dire :kaola: )

Cet exemple utilise la fonction InStr pour renvoyer la position de la première occurrence d’une chaîne dans une autre chaîne.

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' Chaîne dans laquelle s’effectue la recherche.
SearchChar = "P" ' Recherche la chaîne "P".

' Une comparaison sans respect des majuscules et des minuscules
'commence à la position 4 et renvoie 6.
MyPos = Instr(4, SearchString, SearchChar, 1)

' Une comparaison avec respect des majuscules et des minuscules
'commence à la position 1 et renvoie 9.
MyPos = Instr(1, SearchString, SearchChar, 0)

'Par défaut (lorsque le dernier argument est omis),
'la recherche respecte les majuscules et les minuscules.
MyPos = Instr(SearchString, SearchChar) ' Renvoie 9.

MyPos = Instr(1, SearchString, "W") ' Renvoie 0.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 049
Membres
1 586 392
Dernier membre
jpaulNonDispo
Partager cette page
Haut