Laisser l'utilisateur "coder" [Fermé]

Signaler
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
-
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

Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
593
Salut,

L'utilisateur peut utiliser un nombre illimité de combinaisons?
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
47
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...
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
593
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.
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
47
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.
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
593
Pas de soucis, n'hésite pas à revenir :)
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
47
Je pense que je vais effectivement avoir besoin de quelques idées. Je laisse le sujet ouvert jusqu'à la fin du projet (ça ne devrait pas trop durer). Merci :)
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
593
De rien :)