Boucle selon une condition
Fermé
Riccoplus
Messages postés
15
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
18 mai 2021
-
29 août 2019 à 22:18
Riccoplus Messages postés 15 Date d'inscription dimanche 2 avril 2017 Statut Membre Dernière intervention 18 mai 2021 - 14 nov. 2019 à 12:19
Riccoplus Messages postés 15 Date d'inscription dimanche 2 avril 2017 Statut Membre Dernière intervention 18 mai 2021 - 14 nov. 2019 à 12:19
4 réponses
Frenchie83
Messages postés
2239
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
28 janvier 2023
335
3 sept. 2019 à 02:56
3 sept. 2019 à 02:56
Bonjour,
Mauvaise interprétation de ma part, voici le corrigé
Pour écrire cette formule en vba, si c'est bien ce que vous voulez.
Cdlt
Mauvaise interprétation de ma part, voici le corrigé
Function D(A As Long, B As Long, C As Long) As Long
Coef = 1
If C < A Then
Do While D < A
Temp = C + (Coef * B)
D = Temp
If Temp > A Then Exit Function
Coef = Coef + 1
Loop
End If
End Function
Pour écrire cette formule en vba, si c'est bien ce que vous voulez.
Range("D2:D" & [C10000].End(xlUp).Row).FormulaR1C1 = "=D(R2C1,R2C2,RC[-1])"
Cdlt
Frenchie83
Messages postés
2239
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
28 janvier 2023
335
2 sept. 2019 à 06:22
2 sept. 2019 à 06:22
Bonjour,
Si j'ai bien compris,
recopiez cette fonction dans un module standard
Puis en D2 saisissez la formule suivante(et à tirer vers le bas):
=D($A$2;$B$2;C2)
Cdlt
Si j'ai bien compris,
recopiez cette fonction dans un module standard
Function D(A As Long, B As Long, C As Long) As Long
D = C + B
If D >= A Then
D = 0
Exit Function
End If
Coef = 1
If C < A Then
Do While D < A
Temp = C + (Coef * B)
If Temp < A Then
D = Temp
Coef = Coef + 1
Else
Exit Function
End If
Loop
End If
End Function
Puis en D2 saisissez la formule suivante(et à tirer vers le bas):
=D($A$2;$B$2;C2)
Cdlt
Riccoplus
Messages postés
15
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
18 mai 2021
2 sept. 2019 à 19:04
2 sept. 2019 à 19:04
Bonjour Frenchie83,
merci pour votre réponse, j'ai mis la fonction dans le module 1 (voir photo)et la formule dans D2 puis tiré vers le bas, mais le résultat n'est pas vraiment ce que je souhaiterais (voir photo) :
En D2, je devrais avoir 12
En D3, 11
En D4, 10
En D5, 12 (6+3+3)
Qu'en pensez-vous ?
Ai-je fais une mauvaise manip ?
Et, comment dois-je faire pour faire une macro à partir de cette fonction dans le module 1 ?
Merci pour votre réponse
Cordialement
Riccoplus

merci pour votre réponse, j'ai mis la fonction dans le module 1 (voir photo)et la formule dans D2 puis tiré vers le bas, mais le résultat n'est pas vraiment ce que je souhaiterais (voir photo) :
En D2, je devrais avoir 12
En D3, 11
En D4, 10
En D5, 12 (6+3+3)
Qu'en pensez-vous ?
Ai-je fais une mauvaise manip ?
Et, comment dois-je faire pour faire une macro à partir de cette fonction dans le module 1 ?
Merci pour votre réponse
Cordialement
Riccoplus

Riccoplus
Messages postés
15
Date d'inscription
dimanche 2 avril 2017
Statut
Membre
Dernière intervention
18 mai 2021
14 nov. 2019 à 12:19
14 nov. 2019 à 12:19
Bonjour Frenchie83,
désolé pour ma réponse tardive.
Merci beaucoup, cela fonctionne parfaitement !!!
Cordialement
Riccoplus
désolé pour ma réponse tardive.
Merci beaucoup, cela fonctionne parfaitement !!!
Cordialement
Riccoplus
