Besoin d'aide pour VBA

Bonjour,

J'aurais besoin d'aide pour écrire 2 programmes en VBA à l'aide de tableaux, car j'ai l'impression que je n'ai pas les connaissances et les outils nécessaires pour y résoudre.
1. Je dois écrire un programme vérifiant si une phrase est un tautogramme càd si tous les mots de la phrase commencent par la même lettre.
2. Je dois écrire un programme vérifiant si un mot est un palindrome càd qui peut aussi bien se lire à l'endroit qu'à l'envers.

Merci de votre aide,
Configuration: Windows XP
Firefox 3.0.8

3 réponses

  1. 0
    1. Bonjour,

      Le problème, c'est que j'ai écrit mon programme en entier, mais il est faux parce j'ai toujours le message " La phrase n'est pas un tautogramme " alors que j'ai l'impression de tout bien faire correctement !!! Comment je pourrais résoudre ce problème en langage VBA car cela me semble bien compliquer !!!!!!!!!

      Merci par avance de votre aide,
      0
  2. Deux méthodes pour corriger ce genre de problèmes:

    1. Le debugage en affichant régulièrement vos variables.
    2. Mettez votre code 's'il est petit), et nous allons essayer de vous aider.
    0
    1. Voilà mon programme !!!!!!!!!!!!!!! J'utilise Visual Basic Editor dans Excel .

      Const taille_max = 500
      Dim T(taille_max) As String
      Dim i As Integer, taille_logique As Integer
      Dim j As Integer

      Do
      taille_logique = InputBox(" Nombre de mots dans la phrase? ")
      Loop Until taille_logique <= taille_max
      j = 0

      For i = 1 To taille_logique
      T(i) = InputBox(" Entrez le mot " & i)
      j = j + 1
      Do
      T(1) = X
      T(2) = Y
      T(3) = Z
      j = j + 1
      Loop Until j = taille_logique

      If j = 1 Then
      T(1) = T(2) = T(3) = X
      j = j + 1
      Else
      j = 0
      End If
      Next i

      If j = 1 Then
      MsgBox (" La phrase est un tautogramme ")
      Else
      MsgBox (" La phrase n' est pas un tautogramme ")
      End If

      Merci par avance,
      0
    2. @bonbonPremière constatation, sans avoir analysé, tes variables X, Y et Z ne sont pas déclarées.

      Deuxième constatation : "T(1) = T(2) = T(3) = X", ça ne marchera pas comme ça ... !!!

      Troisième constatation : As-tu essayer en entrant 1 comme nombre de mots dans la phrase ? je pense que tu dois faire une jolie boucle sans fin avec "Loop Until j = taille_logique" puisque J est toujours supérieur à 1 en entrant dans la boucle. Ô_o

      Ensuite, des questions :
      1) pourquoi déclarer une taille max de mots à saisir ?
      2) que représente T ? Pourquoi faire T(i) = InputBox() et ensuite T(1) = X, T(2) = Y et T(3) = Z ? Si j'entre 10 mots dans ma phrase, tu traites comment les 7 autres mots ? ^^

      As tu écrit un algorithme en pseudo code avant de te lancer dans ton programme ? Il faut d'abord le faire avant de coder ...
      0
    3. @Polux31Bonsoir,

      J'ai bien sûr écrit mon algorithme avant de me lancer dans l'écriture du programme, mais mon plus gros problème, c'est de savoir comment je peux déclarer que toute une phrase commence par la même lettre.
      Merci de votre aide,
      0
    4. @bonbonTu ne dois pas déclarer que tous les mots commencent par la même lettre ... l'exercice consiste à chercher justement si toutes les initiales des mots d'une phrase sont identiques ...

      Peux tu nous faire voir ton algo ?
      0
    5. @Polux31Bonjour,

      J'ai réussi à faire fonctionner mon programme, mais la procédure ne me semble pas très facile d'utilisation; Comment pourrais-le le rendre plus simple ????

      Const taille_max = 500
      Dim T(taille_max) As String
      Dim i As Integer, taille_logique As Integer, nb_lettre_mots As Integer, nb_lettre_phrase As Integer
      Dim j As Integer, k As Integer
      Dim mot As String
      Dim phrase As String
      Dim première_lettre_mot As String
      Dim première_lettre_phrase As String

      Do
      taille_logique = InputBox("Nombre de mots de la phrase")
      Loop Until taille_logique <= taille_max

      nb_lettre_phrase = 0
      k = 1
      première_lettre_phrase = InputBox("Par quelle lettre commence la phrase?")

      For i = 1 To taille_logique
      nb_lettre_mots = InputBox("Nombre de lettres du mot " & i)
      nb_lettre_phrase = nb_lettre_phrase + nb_lettre_mots

      For j = 1 To nb_lettre_mots
      T(j) = InputBox("Entrez la lettre " & j)
      première_lettre_mot = T(1)
      Next j

      If première_lettre_mot = première_lettre_phrase Then
      k = k + 1
      Else
      k = k
      End If
      Next i

      If k = i Then
      MsgBox ("La phrase est un tautogramme")
      Else
      MsgBox ("La phrase n'est pas un tautogramme")
      End If
      0
  3. Je serai également heureux de voir le code utilisé. Ca doit tenir en une vingtaine de lignes dans les 2 cas.

    ;o)
    0