incrémentation d'une formule nommée

andré

XLDnaute Barbatruc
Bonjour à vous tous,

Comment écrire une formule nommée, dont le dernier caractère est un chiffre, de façon à incrémenter celui-ci lors d'une copie vers la droite ?

Peut-être un peu nébuleux ?
La pièce jointe vous montre ce que j'essaie de faire, sans y parvenir.

Ândré.

[file name=IncrementationFormuleNommeeV1.zip size=3049]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/IncrementationFormuleNommeeV1.zip[/file]
 

andré

XLDnaute Barbatruc
Salut Stéphane,

Nous parlons la même langue, mais nous ne donnons peut-être pas la même signification aux mots.

Chez nous (en Belgique), lorsque nous disons 'c'est toujours ça de pris sur l'ennemi', nous entendons par là qu'apprendre est un combat au cours duqel nous essayons de ravir à l'ennemi (puisque c'est un combat) la connaissance qu'il possède et que nous voulons acquérir.

En d'autres termes, nous entendons par là : 'Merci, j'ai à nouveau appris quelque chose de plus, mais heureusement que je t'ai quelque peu taquiné l'esprit, faute de quoi tu ne me l'aurais jamais dit.'

Ta formule est sensationnelle, je l'ai donc enregistrée et je la resortirai à le première occasion, me souvenant de son auteur.

C'est avec plaisir que je consacrerai aussi 30 mn de mon temps, mais alors pour t'offrir une bonne petite Duvel (lol).

Crois bien que mon message était tout amical, mais les timides ont souvent du mal à s'exprimer.

Ândré.
 
R

Ram6

Guest
Je te renvoie ton fichier excel avec une idée de soluce [file name=IncrementationFormuleNommeeV1_20050726030806.zip size=9230]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/IncrementationFormuleNommeeV1_20050726030806.zip[/file]
 

Pièces jointes

  • IncrementationFormuleNommeeV1_20050726030806.zip
    9 KB · Affichages: 7

Ti_

Nous a quitté
Repose en paix
Salut à tous

J'avais bien trouvé une solution tout en formules nommées (quoique je ne pense pas que ce soit une bonne solution parce que ça ne marche que sur une seule cellule de référence), mais au delà de 12 caractères extraits, je plantais systématiquement Excel qui semblait tourner en boucle. J'ai bien dû user du Ctrl-Alt-Suppr plus de 20 fois, et ça m'a incité à abandonner cette solution.

Edition : en relisant les différents posts, je vois que Jean-Marie avait donné une solution équivalente à la mienne, à base de CHOISIR, mais je confirme que ça plante au delà de 10/12 arguments. Ensuite j'ai modifié ma formule avec une suite de :
SI(Col=1;SubTi0;'') & SI(Col=2;SubTi1;'') & etc... mais ça induit le même plantage qu'avec CHOISIR.

C'est pourquoi André, je te propose cette petite fonction personnalisée qui fera ça somme toute beaucoup plus rapidement qu'une formule nommée (une fois n'est pas coutume !)

Function CarSansDoublon(ByVal Mot$, ByVal Index%) 'Ti
Dim Bcle%
Application.Volatile
For Bcle = 1 To Index - 1
Mot = Replace(Mot, Left$(Mot, 1), '')
Next Bcle
CarSansDoublon = Left$(Mot, 1)
End Function

à copier dans un module.

Ensuite, dans une cellule Excel, on l'appelle ainsi
=carsansdoublon($A$1;COLONNES($A$1:A1))
et tu peux étirer sur autant de colonnes que tu veux...

Evidemment, il est possible de faire ça sans VBA ni formule nommée, mais dans ce cas, personnellement je passerais simplement par une ligne intermédiaire :
en A1 le mot à décomposer
en B1 on met =SUBSTITUE(A1;GAUCHE(A1;1);'')
et on tire sur autant de colonnes que nécessaire.

Puis en A2, on met =GAUCHE(A1;1), qu'on étire sur les colonnes suivantes.

Mon principe étant que, dans Excel, passer par une ligne supplémentaire permet souvent d'accélérer grandement les calculs en s'affranchissant de formules matricielles justement dispendieuses en temps de calcul.

**********

Sinon, pour en revenir à la fonction Eval, on peut aussi l'écrire simplement en VBA, sans avoir à installer toute une macro complémentaire :

Function Eval(formule$)
Eval = Evaluate(formule)
End Function
 

Statistiques des forums

Discussions
312 508
Messages
2 089 137
Membres
104 045
dernier inscrit
Megajoules