C'est parti pour les explications :
Je dois créer un tableau se remplissant automatiquement avec des indexations gasoil. J'ai un tableau avec ce qu'on appelle des indices CNR que je vais chercher sur le net. Chaque formule est différente bien sûr en fonction du client.
Voici un exemple de formule :
(Indice CNR d'il y a 4 mois / 2 * 1.25
Mon tableau où je prend les indices CNR comporte des colonnes Janvier / Février / Mars etc et des années sur les lignes. J'ai une fonction (Mois_Annee()) avec une boucle qui va me chercher l'info où j'ai besoin dans le tableau. La première boucle va chercher le mois et la seconde l'année. En gros mon code donnera :
Range("A2").Value = ((Mois_Annee(MonthName(Month(Date) - 4)), Year(DateSerial(Year(Date), Month(Date) - 4, Day(Date)))) / 2 * 1.25
Seulement voilà, l'automatisme ne fonctionnera pas si nous sommes au mois d'Avril, et pour cause on aura :
Mois_Annee(MonthName(0), Year.....
Si cela peut intéresser, je mets ma fonction Mois_Annee() ci-dessous, elle permet d'aller chercher l'indice CNR en question dans le tableau, elle marche parfaitement pour l'avoir testée.
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
Merci beaucoup pour vos réponses.
Cordialement.