Utiliser Substitue pour espacer tous les caractères.

Résolu
Thekevinvolcatinat Messages postés 31 Statut Membre -  
JvDo Messages postés 2012 Statut Membre -
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 15478 Statut Contributeur 4 726
 
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 31 Statut Membre 1
 
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 15478 Statut Contributeur 4 726
 
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 967 Statut Membre 182
 
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 2012 Statut Membre 859
 
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 25847 Statut Contributeur 7 279
 
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 31 Statut Membre 1
 
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 2012 Statut Membre 859
 
Bonsoir,

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

Cordialement
0