Programmation sur Excel

Résolu
loster62 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'aimerai créer un programme sur Excel mais je n'y arrive pas. Mon programme serai de remplacer des lettres par d'autres pour coder des messages. Je vous explique: lorsque je tape "a" , je voudrai que ça soit écrit "d" dans la case. Par exemple, si j'écris "j'aime les maths" je voudrai que cela change mon texte en "m'dlph ohv pdwkv". J=M/A=D/I=L/M=P/H=K/ ... Je décale l'alphabet de 4 crans.
Pouvez vous m'aider ?
Si vous ne me comprenez pas poser moi des questions .

9 réponses

mély30 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   2
 
exemple ta cellule ou veut faire apparaitre est c9

=SI(c9="a";"d";SI(c9="b";"e";SI(c9="c";"f";SI(..............................................................................))))));"")
0
loster62
 
Bonsoir,
J'ai suivi ta méthode, cela marche. Mais il faut que je tape une lettre par case car si j'écris "abc", Excel me met "FAUX". C'est déjà très bien (je te remercie). Tu ne saurais pas par hasard si il y a un moyen pour pouvoir tout écrire dans la même case. Si tu ne sais pas ou que l'on ne peut pas, ce n'est pas grave.
Merci
Cordialement
Benoît
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Le plus simple est de prendre une fonction personnalisée que tu insères dans un module VBA.
Public Function decal(czi As String) As String
Dim i As Integer
Dim c As Variant
For i = 1 To Len(czi)
    c = Asc(Mid(czi, i, 1))
    If c > 86 And c < 91 Or c > 118 And c < 123 Then c = c - 26
    decal = decal & Chr(c + 4)
Next i
End Function

Ensuite tu saisis ton texte dans une cellule et dans une autre cellule tu mets ta fonction :
=decal(A1)

tu remplaces A1 par l'adresse de ton texte.
0
loster62
 
Bonjour,
J'ai tapé votre fonction dans un module VBA. Je pensais qu'ensuite il fallait cliquer sur "Exécution" puis sur "Exécuter Sub/UserForm" mais cela ne marche pas. Il me demande les "macros". Je ne sais pas comment faire. Pouvez vous m'aider, s'il vous plaît?
Je vous remercie pour tout ce que vous avez déjà fait.
Cordialement
Benoît
0

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

Posez votre question
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Je ne sais pas comment faire. Pouvez vous m'aider, s'il vous plaît?

Peut-être lire la fin de mon message précédent car une fonction personnelle fonctionne exactement comme une fonction excel.

Ensuite tu saisis ton texte dans une cellule et dans une autre cellule tu mets ta fonction :

=decal(A1)

tu remplaces A1 par l'adresse de ton texte.
0
loster62
 
Bonjour,
Excusez moi, je n'y arrivait pas. Maintenant j'ai réussit à faire marcher le programme. Tout va nikel. Merci
J'aimerai faire le programme inverse pour décoder le message mais lorsque je remplace le "+" par le "-" , ce qui est normal, ça me le décode pas tout à fait bien. Il y a des caractères comme "]". Savez vous comment fait-on pour rester qu'avec les lettres ?
Cordialement
Loster62
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Savez vous comment fait-on pour rester qu'avec les lettres ?

Il y avait une petite astuce dans le codage pour passer de "z" à "a" et rester dans les lettres.
Donc pour décoder il faut faire l'astuce inverse et passer de "a" à "z".
Public Function decod(czi As String) As String
Dim i As Integer
Dim c As Variant
For i = 1 To Len(czi)
    c = Asc(Mid(czi, i, 1)) ' de "A" à  "D" et de "a" à  "d" on change pour "w" à "z"
    If c > 64 And c < 69 Or c > 96 And c < 101 Then c = c + 26
    decod = decod & Chr(c - 4)
Next i
End Function
0
loster62
 
Bonsoir
Je vous remercie vivement. Tout marche nikel. Vous m'avez été d'une grande aide. Merci
Cordialement
Benoît
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Très heureux de t'avoir aidé et à bientôt peut-être...
0