A voir également:
- Besoin d'aide pour VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Autofill vba ✓ - Forum Excel
3 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
18 avril 2009 à 13:45
18 avril 2009 à 13:45
Bonjour,
Voir réponse ici http://www.commentcamarche.net/forum/affich 12062178 ecriture programme en vba
Voir réponse ici http://www.commentcamarche.net/forum/affich 12062178 ecriture programme en vba
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
122
18 avril 2009 à 14:43
18 avril 2009 à 14:43
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.
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.
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,
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,
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
>
bonbon
18 avril 2009 à 19:18
18 avril 2009 à 19:18
Premiè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 ...
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 ...
bonbon
>
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
18 avril 2009 à 19:45
18 avril 2009 à 19:45
Bonsoir,
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,
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,
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
>
bonbon
18 avril 2009 à 20:57
18 avril 2009 à 20:57
Tu 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 ?
Peux tu nous faire voir ton algo ?
bonbon
>
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
19 avril 2009 à 15:24
19 avril 2009 à 15:24
Bonjour,
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
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
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
18 avril 2009 à 15:48
18 avril 2009 à 15:48
Je serai également heureux de voir le code utilisé. Ca doit tenir en une vingtaine de lignes dans les 2 cas.
;o)
;o)
18 avril 2009 à 14:11
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,