VBA XL97 et String

  • Initiateur de la discussion Gilles
  • Date de début
G

Gilles

Guest
Bonjour,
Je ne connais pas le VB/VBA.
Je cherche une fonction toute simple et je ne trouve pas (ni dans l'aide ni sur internet, ni sur ce forum) ... je dois vraiment être bigleux !!!

Alors : je voudrais faire un test sur un caractere a l'interieur d'une chaine :
"
Dim Chaine As String
X=1
Chaine = ActiveCell.Value
If Chaine[X] <> "" Then ...
"

Mon pb : Chaine[X] ne "compile" pas !!! Quel est la notation pour acceder a l'interieur d'une chaine sous XL97 ???

Merci,
Gilles.
 
M

myDearFriend

Guest
Bonjour Gilles, Papaye, le Forum.

Dim Chaine as String
Chaine = "Gilles"

Left(Chaine,X) te donnera les X caractères de Gauche.
par ex : Left(Chaine, 3) te donnera "Gil"

Right(Chaine,X) te donnera les X caractères de Droite.
par ex : Right(Chaine, 3) te donnera "les"

Mid(Chaine,Début,X) te donnera les X caractères à partir de Début
par ex : Mid(Chaine, 3, 2) te donnera "le"

Pour rechercher une chaine de caractères dans une autre, tu peux utiliser la fonction InStr (voir le fil <http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=87399&t=87382>)

Cordialement.
Didier_mDF
 
G

Gilles

Guest
Merci Didier,
En desespoir de cause, c'est ce que j'avais mis dans mon prog. mais ca me paraissait bizzarre qu'il n'y ai pas de moyen d'adresser 1 caractere d'une string (comme en pascal, en C ...) du style Chaine(X) ou Chaine[X] ... enfin comme un tableau, quoi :-(((

J'ai donc fait une boucle avec une iterration avec un left(Chaine, I, 1) comme ca, je recupere 1 seul caractere a chaque fois (comme je voulais faire depuis le debut) ... mais c pas tres pratique comme syntaxe pour un langage !

Enfin, si tu confirmes que ca n'est pas possible sous Excel ... tu connais mieux le bestiau que moi :)

Merci pour votre aide ! Ce forum (comme bcp de forum, d'ailleurs) est vraiment super et super utile !

A+
Gilles.
 
M

myDearFriend

Guest
Bonsoir Gilles,

Je pense que tu veux dire "J'ai donc fait une boucle avec une iterration avec un MID(Chaine, I, 1)..."

J'ai oublié de te dire que Mid, utilisé comme instruction, permet également de remplacer des caractères dans une chaine :

Mid(VariableChaine, Début, Longeur) = CaractèresDeRemplacement


Il existe également la fonction Len() qui retourne la longeur d'une chaine :

Len(VariableChaine) = NombreDeCaractèresDansChaine


Bonne continuation.

Cordialement.
Didier_mDF
 
G

Gilles

Guest
Non, non, c'est bien un LEFT vu que je souhaitait simplement "lire" chaque caractere d'une chaine les uns apres les autres avec une boucle (je ne voulais pas les remplacer).

En tout cas, merci bcp.

A+
Gilles.
 

Discussions similaires

Réponses
3
Affichages
491

Statistiques des forums

Discussions
312 391
Messages
2 087 945
Membres
103 681
dernier inscrit
Lafite84