Problème calcul avec onglets dans Excel !

Bonjour,

Désolé, le titre n’est pas explicite…mais pas trouvé mieux.
Mon problème se situe dans la feuille de calcul qui se nomme Mensuel.
Grâce à H11, je sélectionne le Mois qui m’intéresse.
Dans le tableau à droite, j’ai mis les numéros de semaines correspondant à chaque mois. Pour chaque semaine, j’ai un onglet (de 01 à 53). Je n’en ai mis que 4 dans ce fichier pour alléger le tout.
Dans le tableau, en colonne E, il me met les numéros de semaine en fonction du mois sélectionné en H11.
Mon problème se situe dans la colonne F (Nombre de clients). En fait, j’aurai besoin que le calcul se réfère à la feuille portant le numéro présent en colonne E.
Par exemple, pour la semaine 01, le calcul sera de trouver le nombre de cellules non vides dans la feuille 01 (donnée de la cellule E24) dans les cellules D18 : D43.

Cela donnerai : =NBVAL(‘01’!D18 : D43)

Mais ce que je veux, c’est remplacer ‘01’ dans ce calcul par la valeur de E24.

Si quelqu’un m’a suivi, merci pour son aide !!
Edité le 21/11/2007 à 17:07

Hello,

Je pense avoir cerne ton probleme. Et une solution reside dans la gestion des evenements selon moi. (Oui j’suis plus un codeur ;))
Tu vas devoir ecrire un peu de VisualBasic par contre avec cette solution.

Dans la partie code de ta feuille Mensuel ajoute l’evenement suivant qui est declenche a chaque changement de cellule.

Private Sub Worksheet_Change(ByVal Target As Range)

Dans cet evenement, il te faudra dans l’ordre :

  1. Verifier qu’il n’a ete appele que pour 1 cellule modifiee.
  2. Verifier que c’est bien celle de la DropDownList des mois.
  3. Modifier les valeurs des cellules H24:H27 avec la formule que tu souhaites en utilisant des Range.

Cette solution ressemble un peu a un canon pour tuer une mouche mais je suis sur qu’elle marchera. :super:

Si tu m’a pas compris hesite pas a demander plus de precisions.

[spoiler]J’peux meme t’ecrire le code direct si c’est demande gentillement.[/spoiler]
Edité le 05/10/2007 à 04:55

Merci, c’est bon, j’ai trouvé. Il me fallait ce code :


=NBVAL(INDIRECT(E24&"!$D$18:$D$43"))

Merci quand même !

De rien tout de meme :slight_smile:

Bien plus simple le code que tu as trouve par ailleurs.

Il faut que tu passes par une cellule intermédiaire (par exemple dans la colonne N) où tu construiras ta référence complète
Dans ton exemple, N24 serait ‘01’!D18 : D43, N25 ‘02’!D18 : D43 etc, les 0x construits à partir de la colonne E, bien sûr

Ensuite tu n’auras plus qu’à appliquer l’indirection :
=NBVAL(indirect(N24))

Voir la réponse dans mon précédent message !

on a dû se croiser !
effectivement, c’est encore plus simple comme tu as fait