Microsoft 365 Comment remplacer des espaces en trop par un retour à la ligne ? (avec une formule)

Automatik

XLDnaute Nouveau
Bonjour tout le monde,

Je fais de nouveau appel à vous car j'ai un problème.

J'ai des cellules dans lesquelles il y a de nombreux espaces entre des mots.
Cela a été fait parce que la personne ne savait pas faire de retour à la ligne.
Sauf que moi quand je récupère ces cellules évidemment ça me remet tous les espaces, et comme mes cellules ne font pas la même taille je suis obligé de les supprimer moi-même et de remplacer par un retour à la ligne ?

J'ai essayé avec: SUPPRESPACE et CAR(10) mais je n'arrive pas à les mettre en lien...

Quelqu'un connaîtrait-il la solution ?

Alban
 

Pièces jointes

  • Exemple.xlsx
    11.1 KB · Affichages: 11
Dernière édition:
Solution
Bonjour le fil, le forum

une proposition en formule, à partir de 3 espaces successifs, pour intégrer les erreurs possibles de saisie à 2 espaces. Les espaces d'erreur de saisie sont traités par le SUPPRESPACE.
Traite de 3 jusqu'à 362 espaces consécutifs pour un retour à la ligne.
VB:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUPPRESPACE(SUBSTITUE(A4;"   ";"|"));"|||||";"|");"||||";"|");"|||";"|");"||";"|");"| ";"|");"|";CAR(10))

Cordialement, @+

[édition : petite amélioration de la formule]

1663063578086.png

Automatik

XLDnaute Nouveau
ha bah oui, mais là, si les gens ne sont pas capables d'écrire en Français.. on ne peut plus rien pour eux...
Soit notre ami se tape les corrections à la main, soit il impose un contrôle de saisie dans le document d'origine...
et si en plus il faut ouvrir les 10 fichiers envoyés à chaque post.. on est pas sorti
Bonjour @vgendron, oui je vais empêcher la saisie de plusieurs espaces, c'est plus simple mais bon pour les erreurs déjà faites je vais devoir m'en occuper quand même c'est pour ça que je cherchais une solution quand même..
 

Automatik

XLDnaute Nouveau
Bonjour à tous.
@fanch55 a dit :

Effectivement, c'est difficile de contrôler la saisie des utilisateurs. Mais comme le dit @vgendron

Cependant, en imaginant qu'il arrive que l'on saisisse par erreur 2 espaces, soit, mais 3 c'est vraiment le faire exprès. Du coup, j'ai corrigé ma macro du post#21 en mettant 3 espaces. On pourrait même pousser le bouchon avec 4 espaces ....

La cellule a testée est en A4 et le résultat sera en B4
VB:
Sub TestRetourLigne()
    xCpt = 0
    xChaine = [A4]
    xDecoupe = Split(xChaine, "   ")    '3 espaces
    For F = 0 To UBound(xDecoupe)
        If xDecoupe(F) <> Empty Then
            xCpt = xCpt + 1
            If xCpt = 1 Then
                xResult = xResult & xDecoupe(F)
            Else
                xResult = xResult & Chr(10) & LTrim(xDecoupe(F))
            End If
        End If
    Next F
    [D4] = xResult
End Sub
Ca donne un résultat qui correspond pas mal. Non !!!!
@+ Lolote83
Bonjour @Lolote83,
Merci de ta réponse mais dans mon cas ce n'est vraiment pas des espaces rajoutés par erreurs.. Ils ont été rajoutés pour faire un retour à la ligne avec le bouton "Revenir à la ligne automatiquement"..
 

Automatik

XLDnaute Nouveau
Bonjour le fil

[Retour d'expérience]
Cela ressemble fort à...
Ma-mon collègue qui mets des espaces dans ses cellules pour qu'à l'écran ou à l'impression, cela rende "bien"
Que par exemple, le bloc adresse soit "pile poil" raccord avec la fenêtre transparente de l'enveloppe...etc
Et quand j'ose lui suggérer un conseil, il m'est répondu
"On a toujours fait comme cela!"
Quand je suis arrivé dans le service en 1983, c'est Micheline qui m'a appris"

NB: J'ai pas connu Micheline, mais si cela avait été le cas, je lui aurai parlé d'une base Excel bien proprette et d'un document Word de publipostage
Mais je suis pas loin de penser qu'aussitôt Micheline m'aurait répondu :" Ah mais non, quand je suis entré en 1981, Colette m'a montré comment rédiger le document sur WordStar l'imprimer puis ensuite l'insérer dans la machine à écrire pour taper l'adresse !!!
[/Retour d'expérience]

Pour revenir à 2022 et à la question, je suggère Excel+Word Publipostage, comme une piste à étudier
(ce qui permet d'avoir des documents "normalisés" et "automatisés")

NB: Sinon, j'allais faire comme mapomme (que je salue au passage (*)) mais en plus "guedin", tout en raccourcis clavier
(de A à Z)
Mais c'était trop long à formaliser

(*) je salue aussi les vieux de la vieille qu'on croise dans ce fil
(Ils se reconnaitront ;))
Bonjour @Staple1600,
En gros c'est ça ! 😂
Je lui ai expliqué plusieurs fois mais ça ne rentre pas apparemment alors j'essaye de faire avec 😅, la solution pour moi la plus simple pour pas que la prochaine fois ça arrive de nouveau, c'est d'afficher un message du genre "Attention la cellule XX contient une erreur, veuillez saisir de nouveau votre texte et veillez à ne pas mettre plusieurs espaces d'affilée. Pour rappel: Le retour à la ligne s'effectue comme cela: ALT+ENTRÉE"

C'est ce qui me paraît le plus simple.
 

fanch55

XLDnaute Barbatruc
Je lui ai expliqué plusieurs fois mais ça ne rentre pas apparemment alors j'essaye de faire avec 😅, la solution pour moi la plus simple pour pas que la prochaine fois ça arrive de nouveau, c'est d'afficher un message du genre "Attention la cellule XX contient une erreur, veuillez saisir de nouveau votre texte et veillez à ne pas mettre plusieurs espaces d'affilée. Pour rappel: Le retour à la ligne s'effectue comme cela: ALT+ENTRÉE"

C'est ce qui me paraît le plus simple.
Le plus simple en ce cas ce serait peut-être de scinder la cellule initiale en 3 cellules ... 🤔
 

vgendron

XLDnaute Barbatruc
J'imagine que le fichier exemple que tu as posté n'est qu'une toute petite partie du fichier rempli par tes collègues et sur lequel tu travailles...
peut etre que si tu postes le fichier "complet" sans donnée confidentielle, on pourrait te proposer une solution plus adéquate. avec pourquoi pas des formulaires de saisie (avec ca, on peut controler et aider l'utilisateur dans la saisie des infos)
 

Automatik

XLDnaute Nouveau
J'imagine que le fichier exemple que tu as posté n'est qu'une toute petite partie du fichier rempli par tes collègues et sur lequel tu travailles...
peut etre que si tu postes le fichier "complet" sans donnée confidentielle, on pourrait te proposer une solution plus adéquate. avec pourquoi pas des formulaires de saisie (avec ca, on peut controler et aider l'utilisateur dans la saisie des infos)
@vgendron, En fait moi, je prends l'information "nom du projet+ adresse" (et d'autres infos..) qui se trouve dans un fichier différent pour chaque projet. Donc j'ai fait un autre fichier avec des formules qui récupèrent toutes ces infos dans chaque fichier présent sur un dossier précis (en gros c'est comme si ça faisait les copier-coller à ma place).
Et dans mon fichier j'aimerais rajouter la formule qui permet d'enlever les espaces et les remplacer par un saut de ligne. Actuellement je le fais à la main.

Ps: les macros ne marchent pas car je travaille sur un SharePoint donc j'évite les macros sinon je dois l'enregistrer sur mon bureau pour pouvoir faire les macros puis le remettre et changer le format et tout et tout donc ce n'est pas très pratique.

Dis-moi si ce n'est pas clair
 

vgendron

XLDnaute Barbatruc
à bien y réfléchir.. on est bien d'accord que l'exemple que tu as donné n'est pas vraiment représentatif des données que tu traites réellement...

ton collègue ne tape pas "Nom du projet Adresse du projet CP"
mais plutot:
projetX 15 rue de machin truc 65000

dans ce cas.. si le CodePostal est TOUJOURS un CP de France==> on peut facilement extraire les 5 chiffres qui le composent
ensuite.. si l'adresse commence toujous par un numéro de rue.. idem
et donc, on peut en déduire le reste...
 

fanch55

XLDnaute Barbatruc
à bien y réfléchir.. on est bien d'accord que l'exemple que tu as donné n'est pas vraiment représentatif des données que tu traites réellement...

ton collègue ne tape pas "Nom du projet Adresse du projet CP"
mais plutot:
projetX 15 rue de machin truc 65000

dans ce cas.. si le CodePostal est TOUJOURS un CP de France==> on peut facilement extraire les 5 chiffres qui le composent
ensuite.. si l'adresse commence toujous par un numéro de rue.. idem
et donc, on peut en déduire le reste...
Je vais faire appel à la loi de Murphy :
12 rue du 6 juin 1944
Je présume que le code postal n'est pas seul, un code pouvant désigner plusieurs communes 🥴
 

Automatik

XLDnaute Nouveau
à bien y réfléchir.. on est bien d'accord que l'exemple que tu as donné n'est pas vraiment représentatif des données que tu traites réellement...

ton collègue ne tape pas "Nom du projet Adresse du projet CP"
mais plutot:
projetX 15 rue de machin truc 65000

dans ce cas.. si le CodePostal est TOUJOURS un CP de France==> on peut facilement extraire les 5 chiffres qui le composent
ensuite.. si l'adresse commence toujous par un numéro de rue.. idem
et donc, on peut en déduire le reste...
C'est vraiment juste remplacer une quantité indéfinie d'espaces en Retour à la ligne que je voudrais ..😄
Dans cette cellule, il peut y avoir d'autres informations par exemple: numéro de téléphone, adresse mail...
Merci de tous tes efforts en tout cas 💪

Sinon de mon côté j'ai essayé de remplacer les espaces en trop par un caractère tel que "#" et ensuite le reremplacer les "#' par CAR(10) mais rien n'y fait si je veux une formule qui marche le problème de base est que je ne peux pas connaître à l'avance le nombre d'espaces en trop ... le seul moyen encore possible, c'est de faire une formule gigantesque mais bon...
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Sinon de mon côté j'ai essayé de remplacer les espaces en trop par un caractère tel que "#" et ensuite le reremplacer les "#' par CAR(10) mais rien n'y fait si je veux une formule qui marche le problème de base est que je ne peux pas connaître à l'avance le nombre d'espaces en trop ... le seul moyen encore possible, c'est de faire une formule gigantesque mais bon...
C'est marrant, j'étais aussi parti sur l'idée de remplacer deux espaces consécutifs par un dièse... mais on se rend vite compte qu'on tourne en rond et que seule une macro résout le problème facilement. 😉

Le problème vient du fait que tu as plusieurs groupes d'espaces à remplacer, chaque groupe ayant une quantité différente d'espaces...
 

Discussions similaires

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83