Comment supprimer des espace vide dans une chaine

Messages postés
264
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
23 mars 2012
- - Dernière réponse : biegontrand
Messages postés
5
Date d'inscription
vendredi 27 octobre 2006
Statut
Membre
Dernière intervention
9 mai 2011
- 21 avril 2011 à 16:28
Bonjour a tous, je cherche commnet supprimer les espace vide fans une chaine de caractere. ex: "bonjour a toi" avec espace
"bonjouratoi" snas espace

J'ai trouve la fonction trim mais cela ne vide pas les espace, juste a me dire quel fonction ou comment faire

Merci
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
10
Merci
d'accord avec pcpt, le do...until est inutile.

pas d'accord par contre avec la remarque sur le VbNullString, dont l'emploi est correct ici.

(VbNullstring, à ne pas confondre avec VbNullChar)

de plus, drelinqc Replace$ n'existe pas ^^
et le TextCompare (qui indique une recherche qui ignore la casse) est inutile ici, un espace majuscule, j'ai jamais vu ça ^^

je conclue donc en indiquant la ligne :

stChaine = "bonjour a toi"
stChaine = Replace(stChaine, " ", vbNullString)
MsgBox stChaine

PS:
Trim$ permet de supprimer les espaces a gauche et a droite de la chaine (comme dans " Bonjour ")
LTrim$ et RTrim$ ne 'nettoient' qu'un coté (Gauche ou droite)

Renfield
Admin CodeS-SourceS - MVP Visual Basic

Dire « Merci » 10

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 214 internautes nous ont dit merci ce mois-ci

Messages postés
2
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
23 janvier 2006
0
Merci
Voici une fonction qui pourrait être utilisé pour résoudre votre problème :


Dim stChaine As String

stChaine = "Chaine de caractere ici"

Do Until InStr(1, stChaine, Chr$(32)) = 0
stChaine = Replace$(stChaine, Chr$(32), vbNullString, , , vbTextCompare)
Loop

' Maintenant la variable stChaine est vidée de ses espaces
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
salut,

le do est inutile est le vbnullstring est un chr(0), donc pas bien ;)



stChaine = "bonjour a toi"

stChaine = Replace$(stChaine," ", "")
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
17
0
Merci
Renfield < Replace$ existe bel et bien, en VB6 du moins.

CR
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
Replace renvoie un String
Replace$ appelle Replace....

Replace$ n'apparait d'ailleurs pas dans l'explorateur d'objets (F2)
tapes
Replace$(
cliques dans le mot...
et presse Shift + F2

l'explorateur d'objet indique bien la fonction Replace...

Renfield
Admin CodeS-SourceS - MVP Visual Basic
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
17
0
Merci
OK ! comme vB6 est compliqué en fait !!!

CR
Messages postés
5
Date d'inscription
vendredi 27 octobre 2006
Statut
Membre
Dernière intervention
9 mai 2011
0
Merci
Salut à vous, j'aimerais savoir si la fonction Replace$() peut etre utilisée en VBA sous Excel 2000 ?
Moi j'ai un problème comme celui ci :

J'utilise la fonction CountIf(). En fait j'aimerais pouvoir compter le nombre de personnes appartenant à une entité (service) : par exemple "DG / CA /MED". Comme vous voyez ma chaine de caractère contient des espaces. Mais lorsque j'utilise la fonction CountIf() ca se passe bien jusqu'ici :

For Each z1 In zone1
Application.CountIf(z1.Offset(0, 23), "*DG" & "*") then x1 = x1 + 1
Next z1

Mais mon problème est que j'ai aussi des entités comme : "DGA / DT / TP" par exemple et donc ma fonction me compte également ces personnes alors que "DG" est différent de "DGA". S'il vous plait, comment puis je faire la différence entre les deux ? Merci d'avance.