Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer deux espaces en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

13GIBE59

XLDnaute Accro
Bonjour le forum.

Dans le fichier joint, je souhaite supprimer en vba les deux espaces qui se trouvent devant le code de la colonne B.

Mon code ne supprime qu'un espace...:

Sub supprespaces()
Dim X As Long
For X = 2 To Range("B65536").End(xlUp).Row
Range("B" & X) = Replace(Range("B" & X), Chr(160), "")
Next X
End Sub

Et la réitération de la macro ne donne rien, il reste toujours un espace de trop...

J'ai essayé :
Code:
Range("B" & X) = Replace(Range("B" & X), Chr(160) & Chr(160), "")

Sans succès, j'ai essayé de doubler :Range("B" & X) = Replace(Range("B" & X), Chr(160), "")

là aussi, chou blanc.

Quelqu'un a-t'il une idée ?

Merci d'avance.
 

Pièces jointes

Re : Supprimer deux espaces en vba

Bonjour le Forum,
Bonjour 13GIBE59,

Je ne sais pas le faire en VBA mais il me semble que tu as dans tes donnée un espace en caractère 160 et un en caractère 32 peut être cela t'aidera a trouver la solution car ta macro ne parle pas du CAR(32)

Cordialement
 
Re : Supprimer deux espaces en vba

Bonjour Jocelyn,

merci pour ta réponse qui m'apprend (comme d'habitude) quelque chose : qu'est-ce que le Chr 32 ?

Cela dit, avec :

Code:
Sub supprespaces()
Dim X As Long
For X = 2 To Range("B65536").End(xlUp).Row
        Range("B" & X) = Replace(Range("B" & X), Chr(160), "")
        Range("B" & X) = Replace(Range("B" & X), Chr(32), "")
Next X
End Sub

ça marche parfaitement, merci !
 

Pièces jointes

Dernière édition:
Re : Supprimer deux espaces en vba

salut

Code:
Sub supprespaces()
  Dim X As Long
  For X = 1 To Range("B65536").End(xlUp).Row
    Range("B" & X) = Replace(Range("B" & X), Chr(160), "")
    Range("B" & X) = LTrim(Range("B" & X))
  Next X
End Sub
Ltrim supprime l'espace (code ASCII =32) à gauche
 
Re : Supprimer deux espaces en vba

re,

Le car(32) en formule ou peut être chr(32) en VBA mais la pas sur est un espace insécable

voila ce qu'en dit wikipédia

Une espace insécable est un caractère typographique consistant en une espace que l’on intercale entre deux mots (ou un mot et une ponctuation) qui ne doivent pas être séparés par un éventuel retour à la ligne automatique. L’espace insécable permet d’éviter qu’un mot ou une ponctuation soit rejeté et isolé en début de ligne lorsque cela nuirait à la fluidité de la lecture.
Le code typographique français recommande, contrairement à d’autres langues telles que l’anglais, une espace insécable[SUP]1[/SUP] devant les signes de ponctuation doubles (point-virgule, point d’interrogation, point d’exclamation, deux-points), entre les guillemets et le texte qu’ils renferment, ainsi que comme séparateur des groupes de caractères (séparateur de groupes de trois chiffres dans les nombres par tranches de mille pour la partie entière et la partie décimale[SUP]2[/SUP], séparateur sans valeur facilitant la lecture des numéros de téléphone[SUP]3[/SUP] ou des numéros et codes d’identification, etc.).

EDIT : Bonjour SI...
 
Dernière édition:
Re : Supprimer deux espaces en vba

Bonjour Jean-Bernard

Salut Jocelyn

Code:
Sub supprespaces()
Dim X As Long
For X = 2 To Range("B65536").End(xlUp).Row
  Range("B" & X) = Replace(Replace(Range("B" & X), Chr(160), ""), Chr(32), "")
Next X
End Sub
 
Re : Supprimer deux espaces en vba


Merci pour cet éclairage, cependant encore obscur pour moi...🙂 Plusieurs lectures m'aideront...😕
 
Re : Supprimer deux espaces en vba


Bonjour 13GIBE59,

Votre code fonctionne aussi parfaitement chez moi, cependant, il me supprime tous les espaces de mes cellulles, je veux juste qu'il me supprime les deux premiers espaces.
Je ne trouve pas de solution 🙁 , pourriez-vous m'aider ?
 
Re : Supprimer deux espaces en vba

Bonjour le fil

Avec rechercher-remplacer

Tu copies tes deux espaces tu les colles dans rechercher, tu laisse remplacer vide, tu sélectionnes la colonne sur laquelle tu veux agir et tu fais remplacer tout.

A+


Désolé, mal réveillé pas vu "en vba"
 
Dernière édition:
Re : Supprimer deux espaces en vba

salut

tu peux passer par LTrim pour des espaces "normaux" (voir aide)
Variante :
Code:
Sub supprespaces()
  Dim R As Range
  For Each R In Range("B1", [B6000].End(xlUp))
    R = Replace(LTrim(R), Chr(160), "")
  Next
End Sub
 
Re : Supprimer deux espaces en vba


Superbe !! ça marche, merci Si...

@Jiheme : Merci tout de même, mais je chercher à remplacer les espaces en utilisant un code pour éviter de devoir le faire à chaque fois 🙂.
 
Re : Supprimer deux espaces en vba

Re

pour ne remplacer que les premieres occurences

Code:
Sub supprespaces()
Dim X As Long
For X = 2 To Range("B65536").End(xlUp).Row
  Range("B" & X) = Replace(Range("B" & X), Chr(160), "", 1, 1)
  Range("B" & X) = Replace(Range("B" & X), Chr(32), "", 1, 1)
Next X
End Sub

Arf !!

En retard moi !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
410
Réponses
10
Affichages
905
Réponses
7
Affichages
921
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
953
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…