.       .   

 .   

   . Accueil          .

 Connexion   

 S'inscrire   

 FAQ   

 Recherche    Documents  

 Annuaire   

Photos     Détente      Banque     Chat         Forum        . .                  .    .




 

VBA : traitements des chaines de caractères

25 septembre 2007

-  Nécessité de ces traitements

Les données manipulées par un programme sont essentiellement de type numérique ou chaîne de caractères.

Si les types numériques sont très utilisés par les programmes scientifiques, le type chaîne est incontournable pour des étudiants en Lettres et Sciences Humaines.

Une variable chaîne de caractères se déclare de type String.

Exemple 1 :

Dim MotProposé As String

La variable contient alors une chaîne de longueur variable selon l’affectation qui suivra.

Exemple 2 :

Dim Lettre As String * 1

La variable contient alors une chaîne de longueur 1 c’est à dire un seul caractère.

Exemple 3 :

Dim Adresse As String * 30

La variable contient alors une chaîne de longueur 30. Si l’on n’affecte que 18 caractères dans une telle chaîne, le reste est rempli d’espaces. Si l’on affecte plus de 30 caractères le surplus est tronqué.

Comparaison des chaînes de caractères

Longueur d’une chaîne :

La longueur d’une chaîne est donnée par la fonction Len.

Exemple :

Phrase = "Alea jacta est."

La fonction Len(Phrase) retournera la valeur 15.

Il est évident que si deux chaînes de caractères n’ont pas la même longueur elles sont différentes. Par contre deux chaînes de même longueur ne sont pas forcément identiques.

Comparaison binaire :

On compare deux chaînes par la fonction StrComp.

Elle renvoie la valeur numérique 0 si les deux chaînes sont rigoureusement identiques et la valeur numérique 1 si les chaînes diffèrent même par un seul octet.

Exemple :

Phrase1 = "My tailor is rich."

Phrase2 = "My Tailor is rich."

Phrase3 = " My tailor is rich."

La fonction StrComp(Phrase1,Phrase2) retournera la valeur ...

La fonction StrComp(Phrase1,Phrase3) retournera la valeur ...

Recherche d’une chaîne de caractères

  • La fonction InStr permet de rechercher si une chaîne de caractères existe à l’intérieur d’une autre chaîne de caractères. Cette fonction retourne la position de la première occurrence de la chaîne recherchée. Syntaxe :

InStr(Chaîne1, Chaîne2)

Chaîne1 est la chaîne de caractères à traiter (sur laquelle porte la recherche).

Chaîne2 est la chaîne de caractères recherchée dans Chaîne1.

Exemple :

Chaîne1 = "Sed lex dura lex" ’ Auteur inconnu

Chaîne2 = "lex"

Chaîne3 = "gex"

La fonction InStr(Chaîne1,Chaîne2) retournera la valeur ".........."

La fonction InStr(Chaîne1,Chaîne3) retournera la valeur 0.

  • La fonction Ucase met tout le texte en majuscules et permet de rechercher indépendamment une lettre minuscule ou majuscule.
  • La fonction Lcase met tout le texte en minuscules et permet...

-  Extraction d’une chaîne de caractères

  • La fonction Right donne la partie droite d’une chaîne de caractères. Le nombre de caractères de cette partie doit être précisé. Exemple :

Chaîne = "To be or not to be" ’Shakespeare

La fonction Right(Chaîne,5) retournera la valeur ".........."

  • La fonction Left donne la partie gauche d’une chaîne de caractères. Le nombre de caractères de cette partie doit être précisé. Exemple :

Chaîne = "To do is to be" ’Platon

La fonction Left(Chaîne,5) retournera la valeur ".........."

  • La fonction Mid extrait une partie d’une chaîne de caractères. Le nombre de caractères de cette partie doit être précisé ainsi que la position du premier caractère extrait.

Syntaxe :

Mid(Texte, Position, Nombre)

Texte est la chaîne de caractère à traiter.

Position est la position dans la chaîne à partir de laquelle il faut extraire des caractères.

Nombre est le nombre de caractères à extraire.

Exemple :

Chaîne = "Do bee do bee do" ’Frank Sinatra

La fonction Mid(Chaîne,4,2) retournera la valeur "...."

La fonction Mid(Chaîne,8,9) retournera la valeur "............"

-  Applications

La plupart des problèmes sur les chaînes de caractères se traitent à l’aide des fonctions ci-dessus. Leur maniement est assez délicat et les résultats quelquefois difficiles à prévoir. Seule la pratique de leur programmation vous permettra d’en vérifier l’efficacité.

Exemple1 :

Que fait ce programme :

Dim Vers, Mot As String

Dim Position As Integer

Vers = "Pour qui sont ces serpents qui sifflent sur vos têtes ?"

Mot = InputBox("Taper le mot à rechercher")

Position = InStr(Vers, Mot)

If Position = 0 Then

MsgBox("Pas trouvé !")

Else

MsgBox("Trouvé à la position " & Position)

End If

Exemple2 :

Ce programme compte le nombre d’espaces dans une phrase.

Dim Phrase, Caractère As String

Dim Compteur, Longueur, i As Integer

Phrase = InputBox("Tapez votre phrase")

Longueur = Len (Phrase)

For i = 1 To Longueur

Caractère = Mid(Phrase, i, 1)

If Caractère = " " Then Compteur = Compteur + 1

Next i

MsgBox("Cette phrase contient " & Compteur & " espaces.")


[ Imprimer cet article ] [ Haut ]

 
 
 
Commentez cet article



   
 

 
   

 
  Envoyer à un ami
Destinataire  :
(entrez l'email du destinataire)

De la part de 
(entrez votre nom)

(entrez votre email)



[ Imprimer cet article ]

Rechercher :
 

 
Autres articles

VBA : analyse et programmation
VBA - compléments et programmation
VBA : les structures de contrôle
VBA : interactivité, variables et conditions
VBA : les structures conditionnelles
VBA : tablaux et boucles
Excel : quelques fonctions avancées
Informatique : Les astuces de base
Excel : utilisation et astuces
Programmation VBA - introduction
Macros SAS
Initiation au logiciel SAS
Création de site Internet avec Dreamweaver
Créer votre site Internet avec FrontPage
Initiation aux réseaux
Les bases du réseau Internet
Les virus informatiques


[ Haut ]
 

 

   Contact                                                    © Niant - Copyrightdepot.com                                          CNIL 

Positionnement et Statistiques Gratuites

SPIP , bloOg