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

XL 2019 Trouver l'espace ou le blanc dans le texte de chaque cellule

bauerjackob

XLDnaute Junior
bonjour
comment faire pour trouver et supprimer le blanc( les blancs) ou l espace (les espaces ) devant un texte dans une cellulle. merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour bauerjackob,
Un petit fichier test aurait été le bienvenu.
Ensuite, que voulez vous ?
1- Obtenir le contenu de cellule sans le blanc ?
2- Supprimer le premier blanc dans toutes les cellules ?
Le premier point peut être fait avec :
VB:
=STXT(A1;2;NBCAR(A1))
ou plus simple si on est sur que la chaine à moins de 1000 caractères :
=STXT(A1;2;1000)
mais demande une cellule pour le calcul. Ne peut pas être fait dans la cellule elle même.
Le second point peut être fait en VBA avec :
Code:
Sub SupEspace1()
    For Each c In [A1:B20]  ' à adapter
        If Left(c.Value, 1) = " " Then c.Value = Mid(c.Value, 2)
    Next c
End Sub
ou encore
Sub SupEspace2()
    For Each c In [A1:B20]  ' à adapter
        c.Value = Trim(c.Value)
    Next c
End Sub
Le premier module supprime un espace avant le mot.
Le second module supprime tous les espaces avant le mot.
Une troisième solution. Sélectionner la Plage puis faire Remplacer " " par rien.
Tout dépend de votre contexte.
 

patricktoulon

XLDnaute Barbatruc
bonjour
on fait toute la plage d'un coup
VB:
Function TrimLeftAllCellsInRange(ByRef RnG As Range)
'supprime les espace devant le premier caracteres equivalent de "Ltrim" in one shoot
    With RnG
    TrimLeftAllCellsInRange = Evaluate("IF(ISTEXT(" & .Address & "),MID(" & .Address & ",FIND(MID(TRIM(" & .Address & "),1,2)," & .Address & ",1),LEN(" & .Address & ")),REPT(" & .Address & ",1))")
End With
End Function

la sub pour appeler la fonction
VB:
Sub test()    'trim les valeurs dans la plage gauche et droite
    Dim DL, RnG As Range, tim&
     DL = Cells(Rows.Count, 3).End(xlUp).Row
    Set RnG = Sheets(1).Range("C1:C" & DL)
    tim = Timer 'on capture le time avant la modif
   RnG.Value = TrimLeftAllCellsInRange(RnG)
    MsgBox Format(Timer - tim, "#0.00") 'message du temps passé a réguler les espace 
End Sub

si tu veux :
j'ai aussi pour supprimer avant et après
j'ai aussi la régulation des espace avant /pendant et après
 

bauerjackob

XLDnaute Junior
bonjour Sylvanu et Patricktoulon
Comme ma BDD a 12000 lignes et 14 colonnes, l'opérateur de saisie a fait beaucoup d 'erreur en mettant des espaces max 3 devant les textes et je veux rectifier ces erreurs d'un coup. A noter que Ma base des donné est déjà régit par VBA.
 

bauerjackob

XLDnaute Junior
Bjr veux tu rectifier mon code dans ce fichier
 

Pièces jointes

  • linge.xlsx
    10.5 KB · Affichages: 0

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…