Fonctions Personnalisées (avec Feuilles Variables)

Bonjour MarieG

Qu'entends-tu exactement par :

J'ai remarqué qu'avec cette nouvelle, les cellules ont du mal à se mettre à jour.

As-tu moyen de nous donner ton dernier fichier utilisé (anonymisé) ?

A+

Bonjour BrunoM45,

Ci-joint le fichier pour le problème de rafraîchissement des formule . J'ai aussi deux autres questions que je 'ai mis en commentaire dans le fichier pour mieux illustrer.

Mille merci pour votre aide.

Bonjour MarieG

Qu'entends-tu exactement par :

J'ai remarqué qu'avec cette nouvelle, les cellules ont du mal à se mettre à jour.

As-tu moyen de nous donner ton dernier fichier utilisé (anonymisé) ?

A+

Re,

Je n'ai pas tout compris dans tes questions, j'ai essayé de faire au mieux

A+

Voilà, désolée

13planning-des-tr.xlsm (725.17 Ko)

Re,

Je n'ai pas tout compris dans tes questions, j'ai essayé de faire au mieux

A+

Désolée, je n'avais pas vu votre message. Apparemment vous avez ouvert l'autre fichier sans le mot de passe.

Comment avez-vous fait?

Sinon à quoi était dû l'erreur 400 ?

Re,

Je n'ai pas tout compris dans tes questions, j'ai essayé de faire au mieux

A+

Bonjour BrunoM45,

J'espère que vous allez bien.

J'avais émis l'idée de faire transformer la fonction en une fonction qui parcourir les feuilles (mois), donc avoir un calcul cumulé.

Dans le classeur, seules les feuilles mois auront une couleur 37, donc on peut boucler selon ce critère. Je me permet

Ci-après le code et le fichier.

Pensez-vous que cette fonction sois performante ou ?

Merci pour votre aide.

11planning-des-tr.xlsm (725.17 Ko)

Function Total_Heures_Productives_Cumulees(Dossier As String)

Dim ws As Worksheet

Dim Feuille As Worksheet

Dim Ligne As Long

Dim Colonne As Long

Dim DuréeTache As Double

Dim NbreTaches As Integer

Dim NbHeures As Double

Dim TotalHeures As Double

Application.Volatile

For Each Feuille In Worksheets

If Feuille.Tab.ColorIndex = 37 Then

'Set Feuille = Sheets(Feuille_Mois)

NbreDeJourMois = Feuille.Range("C1").Value

Colonne = NbreDeJourMois + 7

'MsgBox Colonne

' Pour chaque ligne

For Ligne = Feuille.Range("D" & Rows.Count).End(xlUp).Row To 9 Step -1

If Feuille.Range("D" & Ligne).Value = Dossier Then

' Initialiser les valeurs

NbreTaches = 0: DuréeTache = 0

' Comptabiliser le nombre d'absences

Autres = Application.WorksheetFunction.CountIf(Feuille.Range(Feuille.Range("H" & Ligne), Feuille.Cells(Ligne, Colonne)), "*Cong*") + _

Application.WorksheetFunction.CountIf(Feuille.Range(Feuille.Range("H" & Ligne), Feuille.Cells(Ligne, Colonne)), "*Mal*") + _

Application.WorksheetFunction.CountIf(Feuille.Range(Feuille.Range("H" & Ligne), Feuille.Cells(Ligne, Colonne)), "*Abs*")

' Durée de la tâche en centième

DuréeTache = (Feuille.Range("G" & Ligne).Value - Feuille.Range("F" & Ligne).Value) * 24

' Comptabiliser le nombre de tâche de producion

NbreTaches = Application.WorksheetFunction.CountA(Feuille.Range(Feuille.Range("H" & Ligne), Feuille.Cells(Ligne, Colonne))) - Autres

' Calculer le nombre d'heures pour la ligne

NbHeures = NbreTaches * DuréeTache

' Totaliser le nombre d'heures

TotalHeures = TotalHeures + NbHeures

End If

Next Ligne

End If

Next Feuille

' Retourner la valeur à la fonction

Total_Heures_Productives_Cumulees = TotalHeures

'Set Feuille = Nothing

End Function

Désolée, je n'avais pas vu votre message. Apparemment vous avez ouvert l'autre fichier sans le mot de passe.

Comment avez-vous fait?

Sinon à quoi était dû l'erreur 400 ?

Re,

Je n'ai pas tout compris dans tes questions, j'ai essayé de faire au mieux

A+

Rechercher des sujets similaires à "fonctions personnalisees feuilles variables"