Problème avec l'actualisation des fontions récursives créer sous VBA.

aloison

XLDnaute Nouveau
Bonjour à tous!

Je connais un peu excel (je ne m'en sert pas tous les jours!) et là je débute avec VBA, j'ai commencé aujourd'hui.
Jusqu'à présent j'ai trouvé les réponses à mes questions sur internet mais pour mon problème je n'ai rien trouvé, c'est donc pour ça que je fais appel à vous.

Comme vous l'avez peut-être déjà compris, j'ai créer une fonction dans un module en VBA (en ayant fait 'alt'+'F11' pour accéder à Microsoft Visual Basic à partir de ma feuille excel).
Cette fonction est récursive, c'est à dire qu'elle fait appel à elle même. Elle possède plusieurs paramètres d'entrés.

J'ai remarqué que tant que que je n'utilise pas la récurrence de ma fonction, l'actualisation s'effectue automatiquement.
Par contre, si ma fonction fait appel à elle-même, lorsque je change les paramètres (contenus dans des champs de mon classeur excel) la fonction ne se met pas à jour et la valeur du champ ne change pas! J'ai l'impression que le problème vient de là mais je ne suis pas sûr que ce soit ça ...

Pour vous permettre de mieux comprendre, j'ai fait un excel d'exemple pour que vous puissiez tester par vous même car je voulais simplifier le problème et poster le code mais c'est trop compliqué à expliquer comme ça dans le forum.
Donc normalement, j'essaye de joindre un excel nommé 'exemple.xls' au sujet.:p

Je vous explique rapidement le but de l'excel : j'ai une liste d'élève avec à côté de leur nom, l'instrument que l'élève joue.

Moi, je souhaite afficher dans une autre colonne, les élèves qui font du sax par exemple, et dans une autre colonne, ceux qui font de la flute et 'tout ça' grâce à ma fonction vba :p nommé "AlexChercheDataType(DataType, AddrChamp, ValeurChamp, StartLine, Offset)"

J'utilise une colonne en plus contenant un 'identifiant' de l'élève afin de toujours chercher l'élève suivant qui fait l'instrument choisi.

Comme test (qui ne marche pas chez moi et que vous pouvez essayer), essayez de faire :
- remplacer l'instrument de "Eleve 2" = 'sax' par 'flute'
=> vous verrez alors que la liste de 'flute' en colonne G et H se met à jour mais pas celle de 'sax' en colonne E et F!!!:eek:
- remplacer l'instrument de "Eleve 19" = 'sax' par 'flute'
=> vous verrez alors qu'aucune liste se met à jour...:eek::eek:
- remplacer l'instrument de "Eleve 15" = 'flute' par 'sax'
=> vous verrez alors qu'aucune liste se met à jour... :eek::eek:
- remplacer l'instrument de "Eleve 1" puis "Eleve 2" puis "Eleve 3" puis etc.. par l'instrument 'sax' un par un
=> vous verrez alors que la liste de 'sax ' en colonne E et F se met à jour mais pas celle de 'flute' en colonne G et H!!!:eek:

Pour que la liste de sax ou de flute de mette à jour, je suis obligé de re-valider les cases E2 et G2, et ensuite d'étendre la formule sur les lignes d'en dessous... et ça ne me va pas du tout.
Je voudrais que les champs des colonnes E,F,G,H s'actualisent automatiquement dès le changement de la colonne 'Instrument :' (colonne C)!! Savez-vous comment faire??:confused:

(Déjà, est-ce que vous constatez la même chose que moi?:eek:)

Si vous avez des questions ou des conseils, n'hésitez pas! (je rappel que je suis débutant sur excel et vba mais pas en programmation :D)

Merci.
 

Pièces jointes

  • Exemple.xls
    45 KB · Affichages: 199
  • Exemple.xls
    45 KB · Affichages: 208
  • Exemple.xls
    45 KB · Affichages: 205

JNP

XLDnaute Barbatruc
Re : Problème avec l'actualisation des fontions récursives créer sous VBA.

Bonjour Aloison et bienvenue :),
Pour un débutant, belle fonction ;).
Il semblerait qu'il manque juste un Application.Volatile au début de ta fonction, et à ce moment là, ça fonctionne chez moi.
Bonne soirée :cool:
 

aloison

XLDnaute Nouveau
Re : Problème avec l'actualisation des fontions récursives créer sous VBA.

Merci JNP!
Un grand merci et un grand bravo!! Tu as résolu mon problème! :D
En rajoutant Application.Volatile au début de ma fonction, ça fonctionne à merveille!
Bonne soirée à toi aussi! :)
 

Discussions similaires

Réponses
5
Affichages
254

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 155
dernier inscrit
lombrik