Poursuivons notre tour d'horizon des classiques incontournables de l'algorithmie. Un moment décisif dans l'étude est celui ou l'on aborde la question des tableaux, entrainant automatiquement des questions de typage, dimensionnement, tri, et autres interrogations...
Il vous sera alors impossible d'échapper au probléme dit du "palindrome", comme vous le savez, il s'agit d'une expression lisible indifféremment de gauche à droite ou de droite à gauche, conformément au titre de cet article.
Le code suivant vérifiera si le contenu de la cellule A1 contient ou non un "palindrome", mais il ne sera pas utile de manipuler des tableaux de variables puisqu'il existe une fonction VBA nommée StrReverse() qui inverse automatiquement le contenu d'une chaîne de caractères en langage VBA.
Sub palindrome()
Dim chaine As String
Dim chaine2 As String
chaine = Trim(Application.Substitute(Range("a1").Value, " ", ""))
'==> Trim() La chaine est nettoyé des espaces placés éventuellement devant ou derriére l'expression
'==> application.substitute()
'Les espaces entre les mots sont supprimés quand vous ignorez une fonction VBA, utilisez
'la fonction excel qui devient alors une méthode de l'objet application
chaine2 = StrReverse(chaine)
'il ne reste plus alors que la comparaison
If chaine = chaine2 Then
MsgBox "La chaine contenu en a1" _
& Chr(10) & "est un palindrome" _
, vbOKOnly + vbCritical, "palindrome"
Else
MsgBox "La chaine contenu en a1" _
& Chr(10) & "n'est pas un palindrome" _
, vbOKOnly + vbCritical, "palindrome"
End If
End Sub
A la semaine prochaine...
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire