Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction

2 réponses
Avatar
lodge
Bonjour,


Je souhaiterai mettre cette macro sous la forme d’une fonction, par
exemple : NbreJoursTravaillés()

Est-ce possible ?


Merci !!



Private Sub Worksheet_Activate()

Application.ScreenUpdating = False



Dim CELLULE As Range

Dim Valeur As Object

Dim total, A, B As Byte



For A = 6 To 28 Step 2

total = 0

Set Valeur = Range(Cells(A, 2), Cells(A, 32))



For Each CELLULE In Valeur



If CELLULE.Offset(1, 0).Value <> "RH" And CELLULE.Offset(1,
0).Value <> "CA" _

And CELLULE.Offset(1, 0).Value <> "AT" And CELLULE.Offset(1,
0).Value <> "CM" _

And CELLULE.Offset(1, 0).Value <> "RTT" And CELLULE.Offset(1,
0).Value <> "F" _

And CELLULE.Offset(1, 0).Value <> "HS" And CELLULE.Offset(1,
0).Value <> "FP" _

And CELLULE.Offset(1, 0).Value <> "DV" _

And CELLULE.Offset(1, 0).Value <> "CE" _

And CELLULE.Offset(1, 0).Value <> "OS" _

And CELLULE.Offset(1, 0).Value <> "H+" _

And CELLULE.Offset(1, 0).Value <> "CF" And CELLULE.Offset(1,
0).Value <> "" _

And CELLULE.Offset(1, 0).Value <> "N" _

And CELLULE.Offset(1, 0).Value <> "RTT." _

And CELLULE.Offset(1, 0).Value <> "F." _

And CELLULE.Offset(1, 0).Value <> "CP" _

And CELLULE.Offset(1, 0).Value <> "HS." _

And CELLULE.Offset(1, 0).Value <> "CA." Then



total = total + 1



Cells(A + 1, 35).Value = total



Else: total = total

Cells(A + 1, 35).Value = total



End If





Next

Next



Application.ScreenUpdating = True





End Sub

2 réponses

Avatar
MichDenis
à partir de la barre de menu de la feuille de calcul
Outils / Macro complémentaires / et tu coches Utilitaire analyste VBA

à partir de la barre des menus de l'éditeur de code /
Outils / référence / et tu coches "atpvbaen.xls"
et tu vas pouvoir utiliser l'équivalent de la fonction de la feuille
de calcul en vba sous l'appellation :(elle fonction comme la fonction
de la feuille de calcul (voir l'aide de la fonction de la feuille de calcul)

Function Networkdays(start_date, end_date, [holidays])

Pour [holidays], tu peux te définir une plage nommée dans
une de tes feuilles de calcul où tu définis tes congés.








"lodge" a écrit dans le message de news:
%
Bonjour,


Je souhaiterai mettre cette macro sous la forme d’une fonction, par
exemple : NbreJoursTravaillés()

Est-ce possible ?


Merci !!



Private Sub Worksheet_Activate()

Application.ScreenUpdating = False



Dim CELLULE As Range

Dim Valeur As Object

Dim total, A, B As Byte



For A = 6 To 28 Step 2

total = 0

Set Valeur = Range(Cells(A, 2), Cells(A, 32))



For Each CELLULE In Valeur



If CELLULE.Offset(1, 0).Value <> "RH" And CELLULE.Offset(1,
0).Value <> "CA" _

And CELLULE.Offset(1, 0).Value <> "AT" And CELLULE.Offset(1,
0).Value <> "CM" _

And CELLULE.Offset(1, 0).Value <> "RTT" And CELLULE.Offset(1,
0).Value <> "F" _

And CELLULE.Offset(1, 0).Value <> "HS" And CELLULE.Offset(1,
0).Value <> "FP" _

And CELLULE.Offset(1, 0).Value <> "DV" _

And CELLULE.Offset(1, 0).Value <> "CE" _

And CELLULE.Offset(1, 0).Value <> "OS" _

And CELLULE.Offset(1, 0).Value <> "H+" _

And CELLULE.Offset(1, 0).Value <> "CF" And CELLULE.Offset(1,
0).Value <> "" _

And CELLULE.Offset(1, 0).Value <> "N" _

And CELLULE.Offset(1, 0).Value <> "RTT." _

And CELLULE.Offset(1, 0).Value <> "F." _

And CELLULE.Offset(1, 0).Value <> "CP" _

And CELLULE.Offset(1, 0).Value <> "HS." _

And CELLULE.Offset(1, 0).Value <> "CA." Then



total = total + 1



Cells(A + 1, 35).Value = total



Else: total = total

Cells(A + 1, 35).Value = total



End If





Next

Next



Application.ScreenUpdating = True





End Sub
Avatar
lodge
à partir de la barre de menu de la feuille de calcul
Outils / Macro complémentaires / et tu coches Utilitaire analyste VBA

à partir de la barre des menus de l'éditeur de code /
Outils / référence / et tu coches "atpvbaen.xls"
et tu vas pouvoir utiliser l'équivalent de la fonction de la feuille
de calcul en vba sous l'appellation :(elle fonction comme la fonction
de la feuille de calcul (voir l'aide de la fonction de la feuille de calcul)

Function Networkdays(start_date, end_date, [holidays])

Pour [holidays], tu peux te définir une plage nommée dans
une de tes feuilles de calcul où tu définis tes congés.


UN GRAND MERCI !!





"lodge" a écrit dans le message de news:
%
Bonjour,


Je souhaiterai mettre cette macro sous la forme d’une fonction, par
exemple : NbreJoursTravaillés()

Est-ce possible ?


Merci !!



Private Sub Worksheet_Activate()

Application.ScreenUpdating = False



Dim CELLULE As Range

Dim Valeur As Object

Dim total, A, B As Byte



For A = 6 To 28 Step 2

total = 0

Set Valeur = Range(Cells(A, 2), Cells(A, 32))



For Each CELLULE In Valeur



If CELLULE.Offset(1, 0).Value <> "RH" And CELLULE.Offset(1,
0).Value <> "CA" _

And CELLULE.Offset(1, 0).Value <> "AT" And CELLULE.Offset(1,
0).Value <> "CM" _

And CELLULE.Offset(1, 0).Value <> "RTT" And CELLULE.Offset(1,
0).Value <> "F" _

And CELLULE.Offset(1, 0).Value <> "HS" And CELLULE.Offset(1,
0).Value <> "FP" _

And CELLULE.Offset(1, 0).Value <> "DV" _

And CELLULE.Offset(1, 0).Value <> "CE" _

And CELLULE.Offset(1, 0).Value <> "OS" _

And CELLULE.Offset(1, 0).Value <> "H+" _

And CELLULE.Offset(1, 0).Value <> "CF" And CELLULE.Offset(1,
0).Value <> "" _

And CELLULE.Offset(1, 0).Value <> "N" _

And CELLULE.Offset(1, 0).Value <> "RTT." _

And CELLULE.Offset(1, 0).Value <> "F." _

And CELLULE.Offset(1, 0).Value <> "CP" _

And CELLULE.Offset(1, 0).Value <> "HS." _

And CELLULE.Offset(1, 0).Value <> "CA." Then



total = total + 1



Cells(A + 1, 35).Value = total



Else: total = total

Cells(A + 1, 35).Value = total



End If





Next

Next



Application.ScreenUpdating = True





End Sub