PB ReDim dans une fonction

man95

XLDnaute Occasionnel
Bonjour à vous tous,

J'ai récupérer sur le net (developpez.com) en cherchant à me cultiver sur VBA, un cours.

Dans ce document il y a une fonction que m’intéresse fortement. Elle permet d'afficher tous les jours fériés en fonction d'une année.

Mais quand je tente de l'utiliser j'ai une erreur (ReDim incorrect). Sachant que ce code provient d'un cours VBA je suis surpris.

Je vous joint le fichier afin que cela soit plus compréhensible

Je précise que j'ai fais le test sous 2003 & 2010.


Merci pour vos suggestions

Man
 

Pièces jointes

  • fonctions.xls
    26 KB · Affichages: 41
  • fonctions.xls
    26 KB · Affichages: 45
  • fonctions.xls
    26 KB · Affichages: 44

Papou-net

XLDnaute Barbatruc
Re : PB ReDim dans une fonction

Bonjour man95,

L'erreur est dûe au fait que tu ne peux avoir une variable (Feries) qui porte le même nom que sa fonction (ou que toute autre procédure).

Si tu renommes ta fonction en JFeries par exemple, tu règles ce problème. Par contre, je ne vois pas comment tu exploites le tableau dans ta feuille de calcul.

Si tu expliques un peu mieux le fonctionnement attendu de ton application, il sera certainement plus facile de t'aider.

A te lire.

Cordialement.

Edit : bonjour Philippe.
 

man95

XLDnaute Occasionnel
Re : PB ReDim dans une fonction

Bonjour phlaurent55, Papou-net,

Merci Laurent pour ce fichier que je vais garder précieusement.
Papou-net, pour être sincere comme je n'ai pas pu tester cette fonction, je ne sais pas encore comment l'utiliser mais je m'imaginais pouvoir l'utiliser dans un planning, des feuilles de congés, etc...

j'imaginais simplement en tapant dans la cellule (B1) JFeries(A1) avoir les onzes jours fériés de l'année qui s'affiche de B1 à B12

et surtout suis curieux de comprendre comment fonction ReDim

A bientôt

Man
 

Papou-net

XLDnaute Barbatruc
Re : PB ReDim dans une fonction

RE

Pour répondre à ta demande, Man, l'instruction ReDim sert à redimensionner un tableau en cours de déroulement d'un programme.

Dans ton cas, le nombre de jours fériés étant immuable, dans notre calendrier du moins, on peut se contenter d'un simple Dim.

Par contre, à la lecture de tes explications, j'ai modifié ton classeur pour que la plage B1:B11 se mette à jour automatiquement si tu modifies l'année en cellule B1. Seules les fêtes religieuses étant variables, j'ai conservé la fonction LundiPaques et j'ai transformé la fonction Feries en procédure JoursFeries. Cette macro enregistre les onze fêtes dans le tableau Feries(), procède au tri des dates (le lundi de Pâques pouvant se situer courant mai) et met à jour la plage B1:B11.

Espérant avoir répondu à tes attentes.

Cordialement.
 

Pièces jointes

  • Copie de fonctions-1.xls
    40 KB · Affichages: 37
Dernière édition:

man95

XLDnaute Occasionnel
Re : PB ReDim dans une fonction

Bonjour Papou-net

Merci pour ces explications et pour le travail effectué. Ta procédure se comporte comme je le souhaitais et ce que j'avais compris de la fonction Féries proposée dans le cours VBA

Bonne journée

Man
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS