EXCEL programmation
Fermé
shor4
Messages postés
3
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 août 2008
-
24 août 2008 à 20:58
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 - 25 août 2008 à 05:36
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 - 25 août 2008 à 05:36
A voir également:
- EXCEL programmation
- Liste déroulante excel - Guide
- Formule excel - Guide
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
- Tableau croisé dynamique excel - Guide
5 réponses
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...
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...
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
240
24 août 2008 à 21:06
24 août 2008 à 21:06
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
fonction ecrite à main levée, non testée
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
shor4
Messages postés
3
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 août 2008
24 août 2008 à 21:31
24 août 2008 à 21:31
Par exemple : avec le mot kayak , sans visual basic car je ne peux pas faire de macro ni utiliser visual basic
shor4
Messages postés
3
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
24 août 2008
24 août 2008 à 21:36
24 août 2008 à 21:36
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
240
25 août 2008 à 05:36
25 août 2008 à 05:36
Bonjour
en a1 ton mot à tester, en B1 cette formule
tu tires vers la droite cette formule jusqu'à la colonne AY (prevu pour 50 caracteres)
en AZ tu mets :
tu peux masquer tes colonnes B à AY
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