Résolu Codage de César (VBA)

beru

Habitué
Pas mal de mondes sont prêt à t'aider sur ce forum ... mais il faut bien entendu que ce soit toi qui crée ton code et venir avec si un soucis se présente à tes yeux :)
 

chekoff91

Nouveau membre
C'est ce que je vois =P Mais, j'essaie de l'écrire, mais pour l'instant je n'arrive pas. :(
 

chekoff91

Nouveau membre
Je me plante déjà quelque part pour le 1.

Function Declettre() As String
Dim decalage As Integer, LResultat As Integer, DecResultat As Integer
Dim lettre As String

[cpp]
LResultat = Asc("lettre")
[/cpp]

ASC calcule juste "l", mais pas la lettre que je met après dans Sub lettretest(), j'ai essayé ("(lettre)"), dans ce cas là il calcule "(". Quand j'enlève les guillemets cela ne fonction pas du tout. Si je met directement une lettre dans Asc, exemple
Asc("A") il la calcule bien en affichant 65, mais après dans DecResultat, même si je choisi un décalage de 4, le résultat = 65 et pas 69.
Quoi faire ? :(

Msgbox (LResultat)
[cpp]
DecResultat = LResultat + decalage
[/cpp]
Msgbox (DecResultat)
[cpp]
Declettre = Chr("DecResulta")
[/cpp]
End Function

Sub lettretest()
Dim decalage As Integer
Dim lettre As String
lettre = InputBox("Entrez une lettre en maj")
decalage = InputBox("décalage")
MsgBox (Declettre)
End Sub
 

beru

Habitué
Meilleure réponse
Re,

Alors si tu nous donnes du code et que tu veux qu'il soit lu, tu as intérêt à le placer entre des balises (selon les règles du forum). Si tu ne vois pas comment, je t'invite à lire ce petit post :

Et comme je ne suis pas vache, je vais tout de même te donner un petite info, Si tu veux utiliser une variable, tu ne dois pas mettre de guillemets

Code:
LResultat = Asc("lettre" )

Là tu vas remplir la variable LResultat avec le code ascii de la première lettre du mot "lettre" à savoir le "l"


Code:
LResultat = Asc(lettre)

Là tu vas remplir la variable LResultat avec le code ascii de la première lettre du mot stocké dans la variable lettre
 

chekoff91

Nouveau membre



C'est gentil de ta part, merci beaucoup pour les infos. J'ai réussie à faire 1. Maintenant je vais attaquer la suite. :p
 

chekoff91

Nouveau membre
[fixed] Function Cesar(lettre As String, decalage As Integer) as string

Dim LResult As Integer
Dim Declettre As String
Dim DecResult As Integer, Decresult2 As Integer

LResult = Asc(lettre)
DecResult = (LResult + decalage)

If DecResult > 90 Then
DecResult = CInt((Fix((DecResult - 65) Mod 26)) + 65)
End If

Declettre = Chr(DecResult)
Cesar = Declettre
End Function

Sub testCesar()
Dim lettre As String, decalage As Integer
lettre = InputBox("Entrez une lettre en MAJ")
decalage = CInt(InputBox("décalage"))
MsgBox (Cesar(lettre, decalage))
End Sub[/fixed]

Voici ce que j'ai réussi à faire jusqu'à présent. Est-ce que quelqu'un pourrait me donner une idée sur la question 3.

[cpp] 3.Ecrire une macro qui demande à l'utilisateur de saisir un mot en majuscules et la valeur du décalage. Ce programme doit isoler chaque lettre et reconstituer ainsi le mot codé.[/cpp]

Comment fait-on pour isoler chaque lettre ?
 

beru

Habitué
Pour t'aider à la question 3, je te conseille de te renseigner sur les fonctions Len() et Mid()
Le premier te permettra déterminer le nombre de lettres d'un mot et le second te permettra de sélectionner une lettre dans un mot.
Bonne chasse
 

zeb

Modérateur
Salut,

Si c'est un autre problème, merci de faire un autre sujet, celui-ci étant résolu.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 810
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut