Fonction personnalisée
Résolu/Fermé
Hamou220
Messages postés
3
Date d'inscription
mercredi 10 février 2021
Statut
Membre
Dernière intervention
14 février 2021
-
10 févr. 2021 à 11:39
Hamou220 Messages postés 3 Date d'inscription mercredi 10 février 2021 Statut Membre Dernière intervention 14 février 2021 - 14 févr. 2021 à 11:27
Hamou220 Messages postés 3 Date d'inscription mercredi 10 février 2021 Statut Membre Dernière intervention 14 février 2021 - 14 févr. 2021 à 11:27
A voir également:
- Fonction personnalisée
- Fonction si et - Guide
- Sonnerie personnalisée android - Guide
- Fonction moyenne excel - Guide
- Comment mettre une alarme personnalisée sur iphone - Guide
- Sonnerie personnalisée - Guide
4 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 10 févr. 2021 à 13:26
Modifié le 10 févr. 2021 à 13:26
Bonjour,
C'est pas clair ....
Une fonction personnalisée ne demande rien, on lui transmet les informations nécessaires en argument .
Si il faut faire une demande, il faut créer une procédure (Sub).
Un tuto sur les tableaux VBA : https://silkyroad.developpez.com/vba/tableaux/
Un excellent cours VBA pour débutant : Cours VBA Gratuit
C'est pas clair ....
Une fonction personnalisée ne demande rien, on lui transmet les informations nécessaires en argument .
Si il faut faire une demande, il faut créer une procédure (Sub).
Un tuto sur les tableaux VBA : https://silkyroad.developpez.com/vba/tableaux/
Un excellent cours VBA pour débutant : Cours VBA Gratuit
Hamou220
Messages postés
3
Date d'inscription
mercredi 10 février 2021
Statut
Membre
Dernière intervention
14 février 2021
Modifié le 14 févr. 2021 à 09:32
Modifié le 14 févr. 2021 à 09:32
je veux une fonction qui calcule si il ya 3 absences dans une semain
voila mon code
Function TroiAbs(t As Range) As Integer
Dim s, a, b As Integer
Dim i As Range
s = 1
a = 0
b = 0
For Each i In t
If s <= 7 Then
'Test d'absence AI
If i.Value = "AI" Then
a = a + 1
'3 Absences par Semaine
If a >= 3 Then
TroiAbs = b + 1
a = 0
End If
End If
Else
s = 0
End If
s = s + 1
Next
End Function
mais ce code ça marche pas je sais pas ou est l'erreur
le resultat : le type de donnees dune valeur utilise dans la formule est incorrect
voila mon code
Function TroiAbs(t As Range) As Integer
Dim s, a, b As Integer
Dim i As Range
s = 1
a = 0
b = 0
For Each i In t
If s <= 7 Then
'Test d'absence AI
If i.Value = "AI" Then
a = a + 1
'3 Absences par Semaine
If a >= 3 Then
TroiAbs = b + 1
a = 0
End If
End If
Else
s = 0
End If
s = s + 1
Next
End Function
mais ce code ça marche pas je sais pas ou est l'erreur
le resultat : le type de donnees dune valeur utilise dans la formule est incorrect
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 févr. 2021 à 10:37
14 févr. 2021 à 10:37
Bonjour,
Essaies comme ça :
Essaies comme ça :
Option Explicit Function TroiAbs(rng As Range) As Variant ' Retourne le nombre de fois qu'il y a 3 absences ("AI") sur une période de 7 jours Dim cel As Range, j As Long, a As Long, s As Integer If rng.Rows.Count > 1 Then ' Retourner l'erreur #NOMBRE! TroiAbs = CVErr(XlCVError.xlErrNum) Else ' Compter les absences For Each cel In rng.Cells j = j + 1 If cel.Value = "AI" Then ' ajouter une absence dans la semaine a = a + 1 End If If j Mod 7 = 0 Then ' semaine terminée If a >= 3 Then s = s + 1 a = 0: j = 0 End If Next cel If s > 0 Then TroiAbs = s Else TroiAbs = "" End If End Function
Hamou220
Messages postés
3
Date d'inscription
mercredi 10 février 2021
Statut
Membre
Dernière intervention
14 février 2021
14 févr. 2021 à 11:27
14 févr. 2021 à 11:27
oui ça marche très bien bravo merci patrice