gestion des chaines de caracteres

gestion des chaines de caracteres - VB/VBA/VBS - Programmation

Marsh Posté le 09-04-2003 à 10:14:01    

Bonjour a tous,
J'ai plusieurs questions a vous poser:
 
1) tout d'abord j'aurais voulu savoir comment manipuler des chaines de caracteres.
Je m'explique, je suis en train de developper une application chargée de transcrire des feuilles de calculs Excel dans une base de donnée Access. Pour cela, j'utitlise VBA. Mais le probleme est que les feuilles de calculs ont chacune leur propre notaion. C'est a dire que dans l'une, des formules chimiques auront la forme "C2 H6 O" et dans une autre, la forme concatener "C2H6O". Ou encore dans l'une, les prix non net auront un point (6.3), et d'autre des virgules (6,3).
Donc comment faire pour realiser ceci? Merci de m'envoyer des exemples.
 
2) je voudrais separer automatiquement une chaine en deux si celle-ci possede un caractere defini. Exemple: je veux separer la chaine "ethanol, anhidre" dans deux variable, avec comme séparation une virgule et un espace. Comment faire?
 
Merci de me repondre
 

Reply

Marsh Posté le 09-04-2003 à 10:14:01   

Reply

Marsh Posté le 09-04-2003 à 10:47:17    

Toun a écrit :

Bonjour a tous,
J'ai plusieurs questions a vous poser:
 
1) tout d'abord j'aurais voulu savoir comment manipuler des chaines de caracteres.
Je m'explique, je suis en train de developper une application chargée de transcrire des feuilles de calculs Excel dans une base de donnée Access. Pour cela, j'utitlise VBA. Mais le probleme est que les feuilles de calculs ont chacune leur propre notaion. C'est a dire que dans l'une, des formules chimiques auront la forme "C2 H6 O" et dans une autre, la forme concatener "C2H6O". Ou encore dans l'une, les prix non net auront un point (6.3), et d'autre des virgules (6,3).
Donc comment faire pour realiser ceci? Merci de m'envoyer des exemples.
 
2) je voudrais separer automatiquement une chaine en deux si celle-ci possede un caractere defini. Exemple: je veux separer la chaine "ethanol, anhidre" dans deux variable, avec comme séparation une virgule et un espace. Comment faire?
 
Merci de me repondre
 
 

utilise la fonction mid pour rechercher tes occurences

Reply

Marsh Posté le 09-04-2003 à 10:51:15    

T'a pas un exemple plus concret stp.

Reply

Marsh Posté le 09-04-2003 à 11:09:35    

Par exemple disons que j'ai une chaine "bonjour, toi" et que je veux la separer en deux chaines ch1 = bonjour, et ch2 = toi avec comme separateur ", ". Comment faire? Si vous me donner du code, merci de me preciser la description des parametres
Merci

Reply

Marsh Posté le 09-04-2003 à 11:12:51    

Toun a écrit :

T'a pas un exemple plus concret stp.


tu converti ton nombre en chaine:
MyString = Str(-459.65)    ' Renvoie "-459,65".
MyString = Str(459.001)    ' Renvoie " 459,001".
 
InStr, fonction  :Renvoie une valeur de type Variant (Long) indiquant la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaîne.
 
Syntaxe: InStr([start, ]string1, string2[, compare])
 
tu as aussi la fonction supprespace() mais je connais pas son equivalent en anglais  si tu le connais tui fais: application.worksheetfunction.equivalent(tachaine)  pour supprimer les espaces  
 
 

Reply

Marsh Posté le 09-04-2003 à 11:20:23    

Merci beaucoup, j'ai compris. Encore un petit truc stp, si je veux remplacer un caractere par un autre, je fais comment?
 
Par exemple: 6.2 en 6,2  
 
Merci d'avance.

Reply

Marsh Posté le 09-04-2003 à 11:22:28    

Toun a écrit :

Par exemple disons que j'ai une chaine "bonjour, toi" et que je veux la separer en deux chaines ch1 = bonjour, et ch2 = toi avec comme separateur ", ". Comment faire? Si vous me donner du code, merci de me preciser la description des parametres
Merci

pour faire ça, tu dois utiliser la fonction split.
ex:
monTableau=split("Bonjour, toi", ", " )
 
 
sinon, pour triturer tes chaines de caractères tu auras besoins des fonctions left, right, mid, instr, split (jette un oeil dans l'aide VB pour voir leur fonctionnement).


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 09-04-2003 à 11:24:32    

Toun a écrit :

Merci beaucoup, j'ai compris. Encore un petit truc stp, si je veux remplacer un caractere par un autre, je fais comment?
 
Par exemple: 6.2 en 6,2  
 
Merci d'avance.


monNombre=replace("6.2", ".", "," )


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 09-04-2003 à 11:26:04    

Toun a écrit :

Par exemple disons que j'ai une chaine "bonjour, toi" et que je veux la separer en deux chaines ch1 = bonjour, et ch2 = toi avec comme separateur ", ". Comment faire? Si vous me donner du code, merci de me preciser la description des parametres
Merci


pos1= Instr(1, tachaine,",", 0)
ch1= left(tachaine,pos1 -1)
 
pos2=instr(pos1,tachaine,chr(32),0) donne la position du blanc
ch2= mid (tachaine,pos2 +1, len(tachaine)- ps2 )
 
 
pas testé
 
 

Reply

Marsh Posté le 09-04-2003 à 11:39:17    

Merci beaucoup a vous deux, vous m'avez bien aidé!
 :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed