Laisser l'utilisateur "coder"

Fermé
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - Modifié par Kuartz le 19/07/2016 à 11:54
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 - 19 juil. 2016 à 14:36
Bonjour,

Je suis sur un projet de calcul automatique des indexations gasoils pour mes clients.

Je vous explique en quelques lignes le projet, en fait j'extrais un tableau du site web officiel pour avoir les indices pour pouvoir faire mes calculs.

Chaque année, nos clients nous donnent une méthode de calcul (différente pour chaque client) pour calculer l'indexation gasoil. Par exemple, on aura (Indice mensuel / Indice moyen de Septembre à Octobre de l'année précédente)-1) x 25%.

Comme je veux que l'utilisateur n'aie plus jamais besoin de moi, donc pas de modification du code même si un nouveau client arrive, ma question est :

Avez-vous une idée de comment articuler la chose pour que l'utilisateur puisse intervenir dans le code en mettant une méthode de calcul dans une cellule par exemple?

J'ai déjà créé une fonction pour avoir quelque chose de simple. Voici la fonction :

Function Mois_Annee(Mois As String, Annee As Integer)

Dim DL As Long, DC As Long, i As Integer, j As Integer

DL = Sheets(1).Cells(Application.Rows.Count, 1).End(xlUp).Row

DC = Sheets(1).Cells(1, Application.Columns.Count).End(xlToLeft).Column

For i = 2 To DL

If Sheets(1).Range("A" & i) = Annee Then

    Exit For

End If

Next i

For j = 2 To DC

If Sheets(1).Cells(1, j) = Mois Then

    Exit For

End If

Next j
    
Mois_Annee = Sheets(1).Cells(i, j).Value
              
End Function


Du coup je peux avoir ce genre de code :

Sub Calculs_indexations_gasoil()

MsgBox (Mois_Annee("Novembre", 2014))

End Sub


J'aurais beaucoup aimé que l'utilisateur puisse réutiliser la même fonction dans une cellule excel en faisant Mois_Annee(Month(Date)-1, Year(Date)-2) Par exemple mais ce n'est pas possible apparemment...

Merci d'avance pour vos idées.

Cordialement.

2 réponses

Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 juil. 2016 à 12:09
Salut,

L'utilisateur peut utiliser un nombre illimité de combinaisons?
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
19 juil. 2016 à 13:59
Salut,

L'idée est quand même de le limiter un minimum avec une légende...

Mais il faut quand-même que l'utilisateur puisse rentrer une formule de calcul un peu spécial si la méthode de calcul du client est un peu tordue...
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
19 juil. 2016 à 14:00
Je ne cherche pas forcément une réponse mais plutôt des idées sur ce qui serait possible.
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
Modifié par Pierre1310 le 19/07/2016 à 14:01
Ce que tu peux faire, c'est lui faire entrer le diviseur et le dividende.
Mais ça m'a l'air trop compliqué ce que tu veux, il aura accès aux données?
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
19 juil. 2016 à 14:31
Moui ça pourrait se faire effectivement. L'utilisateur a accès à toutes les données.
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 juil. 2016 à 14:31
Après si tu donne un nom à chaque donnée, tu lui demande ce qu'il veut en dividende, ce qu'il veut en diviseur puis le programme fait le calcul.
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
19 juil. 2016 à 14:33
En fait, je crois que j'aime bien ton idée d'entrer les diviseurs etc. Au pire je rend le truc le plus complexe possible avec plusieurs diviseurs, multiplicateurs etc. Histoire de rentre toutes les combinaisons possibles. Du coup sur un - ou un +, l'utilisateur peut rentrer 0 pour ne rien modifier ou 1 sur un * ou /. Je vais creuser. Merci pour l'idée.
0