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 -
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 .
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 .
A voir également:
- Programmation sur Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
9 réponses
exemple ta cellule ou veut faire apparaitre est c9
=SI(c9="a";"d";SI(c9="b";"e";SI(c9="c";"f";SI(..............................................................................))))));"")
=SI(c9="a";"d";SI(c9="b";"e";SI(c9="c";"f";SI(..............................................................................))))));"")
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
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
bonjour
Le plus simple est de prendre une fonction personnalisée que tu insères dans un module VBA.
Ensuite tu saisis ton texte dans une cellule et dans une autre cellule tu mets ta fonction :
tu remplaces A1 par l'adresse de ton texte.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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
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
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".
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