Utiliser Substitue pour espacer tous les caractères.

Résolu/Fermé
Thekevinvolcatinat Messages postés 29 Date d'inscription dimanche 6 juillet 2014 Statut Membre Dernière intervention 8 novembre 2016 - 4 nov. 2016 à 18:19
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 8 nov. 2016 à 23:29
Bonsoir,

Mon sujet de TPE portant sur la cryptographie et le chiffrement, j'ai eu besoin d'utiliser un tableur, ainsi que différentes fonctions dont SUBSTITUE.
J'aimerais savoir comment modifier une chaîne de caractères, pour avoir des espaces entre chaque caractère.
Par exemple, si je tape " CHOCOLAT " dans la case A1, j'aimerais substituer le "" par " " dans A2 mais cela m'affiche le même message ( j'ai tapé =SUBSTITUE(A1;"";" ") )

Merci d'avance,
A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 nov. 2016 à 18:34
Bonjour,

Avec une fonction personnalisée à mettre dans un module :
Public Function Insère_espace(tex As String)
Dim car As Integer
Application.Volatile
For car = 1 To Len(tex)
    Insère_espace = Insère_espace & Mid(tex, car, 1) & " "
Next car
End Function
0
Thekevinvolcatinat Messages postés 29 Date d'inscription dimanche 6 juillet 2014 Statut Membre Dernière intervention 8 novembre 2016 1
4 nov. 2016 à 18:49
Bonjour @gbinforme, merci pour ta réponse si rapide, mais j'aimerais si possible utiliser une fonction telle que subtitue ou autre, pour parvenir à mettre ces espaces, car comme dit plus tôt, c'est pour un TPE, et il faudrait que je puisse expliquer la manière dont je m'y suis pris pour faire cela.

Si ça ne te dérange pas de me répondre à nouveau, merci d'avance.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 nov. 2016 à 21:42
Bonjour Thekevinvolcatinat,
Si je t'ai donné l'autre formule c'est que (Jusqu'à preuve du contraire !) je ne vois pas comment tu peux faire cela par formule.
Il y a des fonctions pour mettre les espaces, pour les supprimer mais pour les intercaler sur des mots de longueur variable cela me parait difficilement réalisable.
Ce qui fonctionne mais qui me laisse dubitatif c'est ceci :
=STXT(A1;1;1)&" "&STXT(A1;2;1)&" "&STXT(A1;3;1)&" "&STXT(A1;4;1)&" "&STXT(A1;5;1)&" "&STXT(A1;6;1)&" "&STXT(A1;7;1)&" "&STXT(A1;8;1)&" "&STXT(A1;9;1)

tu auras même
C H O C O L A T S
au pluriel !
0
The_boss_68 Messages postés 924 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 22 avril 2024 174
4 nov. 2016 à 22:25
Bonsoir Thekevinvolcatinat,

Bidouillage comme gbinforme, certainement en moins bien puisque c'est spécifique à un mot

=SUBSTITUE(STXT(A2;TROUVE("CHOCOLATS";A2);NBCAR(A2));"CHOCOLATS";"C H O C O L A T S")
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
Modifié par JvDo le 5/11/2016 à 03:56
Bonsoir à tous,

Si tu as accès à Morefunc de Laurent Longre, tu as la solution :
=MCONCAT(STXT(M18;LIGNE(INDIRECT("1:"&NBCAR(M18)));1)&" ")

je suppose que ton chocolat est en M18

Cordialement
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
5 nov. 2016 à 09:17
Bonjour,

vu que MCONCAT est en vba ça revient au même que de faire une fonction personnalisée ;-)
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Thekevinvolcatinat Messages postés 29 Date d'inscription dimanche 6 juillet 2014 Statut Membre Dernière intervention 8 novembre 2016 1
8 nov. 2016 à 22:16
Merci à tous pour vos réponses. Après mure réflexion, j'ai décidé d'essayer d'utiliser SUBITUE pour effectuer une tâche fastidieuse ( et qui fonctionne malgré tout finalement ) : ceci consiste à appliquer toutes les combinaisons possibles entre lettres et à rajouter espace entre celles ci avec la fonction SUBTITUE. Par exemple, : SUBTITUE(A1;"AA";"A A") , puis pareil de "AB" à "A B", jusqu'à Z, et j'ai donc fait ça avec toutes les lettres.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
8 nov. 2016 à 23:29
Bonsoir,

Tu n'avais besoin de faire tes SUBSTITUE() que sur les 25 lettres de l'alphabet.
Tu terminais par un SUPPRESPACE().

Cordialement
0