BOnjour à tous,

Voilà 2 jours que je tourne en rond en essayant différents codes pour arriver une solution, mais sans succès.

En gros :
- j'ai un classeur Excel dans lequel il y a 12 feuilles correspondant à un mois (Janvier, février etc...).
- chacune de ces feuilles comporte un mini tableau contenant une liste de données et un total correspondant pour chaque ligne (ex d'une ligne : colonne 1 "121000" - colonne 2 "0,0095").
- j'ai une dernière feuille qui comporte un tableau gigangtesque de 27000 lignes avec pleins de colonnes et de trucs dedans, avec lesquel je dois justement remplir les différents mois sur les feuilles du classeur.


A partir de là, j'essaye tout simplement de créer une fonction qui va prendre en parametre un numéro de service (contenu dans le tableau d'une feuille mois) ainsi qu'un numéro de colonne (sur la feuille du tableau géant) sur lesquel je vais devoir me positionner pour trouver un total.

POur celà, je tente d'utiliser la fonction autofilter. Problème : si je fais une Sub avec les instructions, je peux voir que mon tableau est effectivement bien filtré, tout ça, mais si j'utilise autofilter dans une fonction, ça plante ! La function se termine sans erreur mais en s'arrétant à une instruction précise qui est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Dim CdC As Range
Set CdC = Worksheets("Tabelle1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
Pareil, si je demande ça, aucune réponse : (Données de ligne 1 colonne 19)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Msgbox Worksheets("Tabelle1").Cells(0, 19).Value
Le programme ne gérère pas d'erreur et en débuggant je vois juste le programme qui s'arrète à ces lignes. Je pense avoir à faire à un véritable bug Excel.
La différence entre la sub et la function, c'est que la sub s'éxecute de n'importe ou. Or la fonction chaque fois je l'implémente en faisant "=blablalbalbal(blalba)" sur une cellule d'une des feuilles correspondant à un mois. Le fait que la function parte d'une feuille différente du tableau sur lesquel je cherche mes données, j'ai l'impression que ça fait tout merdé !!

Je désespère à trouver une solution. Le fait d'utiliser une Sub à la place d'une function compliquerai le code et ne serait absolument pas pratique du fait qu'on ne puisse pas lui spécifier avec la souris les cellules que l'on souhaite comme arguments.

Merci !

Par exemple en guise de test, voila LA bizarrerie !!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Function Actualiser_Couts(NumService As String, SelectedMonth As Range) As Integer
    ActiveWorkbook.Worksheets("Tabelle1").Cells(0, 0).Activate
    MsgBox ActiveWorkbook.ActiveSheet.Name
    Call Suppression_Filtre
    [...]
Et bien ce code, ou bien "Worksheets("Tabelle1").Activate" avant la msgbox, produit le même résultat. La feuille active reste "MAI", à savoir la feuille du mois dans laquelle sur une cellule j'ai appelé la fonction !!

je vous le dis y a un bug dans le coin ! Dans une fonction, impossible d'activer ou de faire référence à une autre feuille ! (MsgBox "Worksheets("JANVIER").Cells(0,5).Value" ne produit aucun résultat

pffffffff