EXCEL programmation

shor4 Messages postés 3 Statut Membre -  
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour à tous ,

Si quelqun s'y connais beaucoup des exel et qui a un petit peut de temps à me consacrer , il est mon homme xD.

Alors voila :

J'ai le mos kayak en A7 et je dois prouver en D7 que c'est un palindrome mais je ne sais pas comment faire , si quelqun saurais m'expliquer ce serai cool .

Merci d'avance
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. bérylion
     
    Salut

    sans fonction perso, je doute que ça soit possible directement.

    mais on peut bidouiller un truc du genre : https://www.cjoint.com/?izaFG8ZekB

    ATTENTION : les "espaces" faussent la donne !!
    il faut IMPERATIVEMENT les virer avant de faire les tests

    explication :
    selectionner autant de colonnes à droite de l'expression à tester que celle-ci compte de caractère (sans les espaces)
    ensuite écrire la formule : "=CODE(STXT($D7;COLONNE(INDIRECT("1:"&NBCAR($D$7)));1))" et valider par CTRL+MAJ+ENTREE (formule matricielle)
    de même, on selectionne autant de ligne sous l'expression à tester que celle-ci compte de caractère (tjs sans les " ")
    et on entre la formule matriceille suivante : "=CODE(STXT($D7;LIGNE(INDIRECT("1:"&NBCAR($D$7)));1))"

    enfin, on calcule la différence de chaque ligne et chaque colonne des résultats obtenus ;
    si les 2 diagonales ne comptent que des zéro, l'expression est un palindrome.

    enjoy...
    0
  2. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    etant donné que les palindrome ne son pas forcement de longueur exacte, NON, LAVAL, HE CA VA LA VACHE
    tu es dans l'obligatioon de faire une fonction personalisée en VBA fonction à mettre dans un module

    Function Est_Palindrome(ByVal mot as string) as boolean
          application.volatile
          dim nmot as string, i as integer
          Est_palindrome = false
          nmot = ""
          for i = len(mot) to 1 step -1
               nmot = nmot & mid(mot,i,1)
          next i
          if ucase(nmot) = ucase(mot) then Est_palindrome = true
    end function


    fonction ecrite à main levée, non testée
    -1
  3. shor4 Messages postés 3 Statut Membre
     
    Par exemple : avec le mot kayak , sans visual basic car je ne peux pas faire de macro ni utiliser visual basic
    -1
  4. shor4 Messages postés 3 Statut Membre
     
    Je ne sais pas si il y a une fonction ou encore moyen de lire le mot de droite à gauche et apres analyser les 2 case afin de savoir si oui ou non c'est un palindrome
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    en a1 ton mot à tester, en B1 cette formule
    =SI(COLONNE()=2;"";A1) & SI(COLONNE()-1>NBCAR(SUBSTITUE($A1;" ";""));"";STXT(SUBSTITUE($A1;" ";"");NBCAR(SUBSTITUE($A1;" ";""))-(COLONNE()-2);1))

    tu tires vers la droite cette formule jusqu'à la colonne AY (prevu pour 50 caracteres)
    en AZ tu mets :
    =SI(AY1=SUBSTITUE(A1;" ";"");VRAI;FAUX)


    tu peux masquer tes colonnes B à AY
    -1