Opération trop complexe
Résolublux Messages postés 26910 Date d'inscription Statut Modérateur Dernière intervention - 14 mai 2024 à 16:37
- Impossible d'effectuer l'opération l'objet ayant été supprimé
- Recuperer message whatsapp supprimé - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Message supprimé whatsapp - Guide
- Impossible de supprimer une page word - Guide
- Vente entre particulier objet - Guide
9 réponses
bonjour,
soit les données ne sont pas identiques
soit l'état est mal conçu, et consomme inutilement trop de resources
Bonjour et merci pour l'intérêt que vous portez à mon activité,
Vous avez sans doute raison concernant la deuxième option ; la consommation inutile de trop de ressources. J'ai dans ma requête 3 champs avec fonctions IIF assez longues. J'aurais aimé les convertir en VBA mais je ne maîtrise ce domaine.
Y aurait-il une formule pour convertir ces requêtes en VBA ?
Voici ces 3 champs :
champ 1: VraiFaux([AK3]<2000000;[AK3]*0;VraiFaux([AK3]<5000000;2000000*0+([AK3]-2000000)*0;VraiFaux([AK3]<10000000;2000000*0+(5000000-2000000)*0+([AK3]-5000000)*0,01;VraiFaux([AK3]<50000000;2000000*0+(5000000-2000000)*0+(10000000-5000000)*0,01+([AK3]-10000000)*0,02;2000000*0+(5000000-2000000)*0+(10000000-5000000)*0,01+(50000000-10000000)*0,02+([AK3]-50000000)*0,05))))
Champ 2: VraiFaux([AV2]<2000000;[AV2]*0;VraiFaux([AV2]<5000000;2000000*0+([AV2]-2000000)*0,07;VraiFaux([AV2]<10000000;2000000*0+(5000000-2000000)*0,07+([AV2]-5000000)*0,1;VraiFaux([AV2]<50000000;2000000*0+(5000000-2000000)*0,07+(10000000-5000000)*0,1+([AV2]-10000000)*0,15;2000000*0+(5000000-2000000)*0,07+(10000000-5000000)*0,1+(50000000-10000000)*0,15+([AV2]-50000000)*0,2))))
Champ 3: VraiFaux([BA2]<2000000;[BA2]*0,1;VraiFaux([BA2]<5000000;2000000*0,1+([BA2]-2000000)*0,15;VraiFaux([BA2]<10000000;2000000*0,1+(5000000-2000000)*0,15+([BA2]-5000000)*0,2;VraiFaux([BA2]<50000000;2000000*0,1+(5000000-2000000)*0,15+(10000000-5000000)*0,2+([BA2]-10000000)*0,3;2000000*0,1+(5000000-2000000)*0,15+(10000000-5000000)*0,2+(50000000-10000000)*0,3+([BA2]-50000000)*0,4))))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionUn exemple de fonction VBA pour le calcul de parv:
Public Function fparv(p) If p < 2000000 Then fparv = 0 * p Else If p < 5000000 Then fparv = 2000000 * 0 + (p - 2000000) * 0 Else If p < 10000000 Then fparv = 2000000 * 0 + (5000000 - 2000000) * 0 + (p - 5000000) * 0.01 Else If p < 50000000 Then fparv = 2000000 * 0 + (5000000 - 2000000) * 0 + (10000000 - 5000000) * 0.01 + (p - 10000000) * 0.02 Else fparv = 2000000 * 0 + (5000000 - 2000000) * 0 + (10000000 - 5000000) * 0.01 + (50000000 - 10000000) * 0.02 + (p - 50000000) * 0.05 End If End If End If End If
Tu mets ce code dans un module, et, dans la requête, tu fais ainsi pour calculer parv:
fparv([AK2]) AS parV,
Bonjour,
J'ai pu intégrer tous les codes dans les différents champs et ça marche parfaitement. Le seul bémol que j'ai rencontré était l'absence de "End function" à la fin du code que j'ai finalement inséré.
Je ne sais comment vous remercier de m'avoir guidé pas à pas jusqu'à ce que je puisse sortir l'épine de mon pied.
Grandement merci !