Comprendre une formule créée en spécifique
Bonjour,
je récupère un fichier dans lequel il y a une formule qui intègre pas mal d'éléments mais je ne sais pas quelle est l'opération qui est faite par cette formule. C'est une formule spécifique. Quelqu'un peut-il m'aider ?
la formule s'écrit ainsi : =prevca($Q28;DO$23;DC$23;$O28;DC28;CQ28;DO$6;$Y28;DO$7;$U28;$V28;$W28;$P28;'SMA Inputs'!$E$112)
je sais donc à quoi correspondent chacun des ces éléments entrants... mais finalement à quoi correspond le résultat ?!!??
Cordialement
Bonjour et bienvenue,
PREVCA() n'est pas à priori une fonction Excel.
Tu dois joindre un fichier pour que nous puissions t'en dire plus.
Cdlt.
bonjour,
ce n'est effectivement pas une fonction excel mais une fonction qui a été créée par qqn qui a quitté la boîte depuis longtemps.
Le fichier est juste énorme !
ma question est plus de savoir comment je peux faire pour retrouver ce qui a été paramétré comme formule. Je n'utilise pas personnellement le système qui permet de se recréer des formules en spécifique mais je suppose qu'on peut les modifier et donc accéder au contenu de cette formule. Est-ce qu'il fait des sommes, des si imbriqués... c'est juste ça mon problème !
merci de votre aide en tout cas
Re,
Cette fonction doit être une fonction personnalisée VBA (macro).
Fais ALT F11 pour ouvrir l'éditeur VBE.
Tu dois avoir des modules (fenêtre à gauche de ton écran).
Tu recherches alors PREVCA !...
A te relire.
ok... j'y suis et effectivement j'ai le détail.
J'aurais dû y penser mais en voyant la formule, je n'avais pas imaginé que ça puisse être une fonction écrite en VBA
voilà, j'ai un peu de lecture maintenant !
ci-dessous le détail
Function PrevCA(StatutOF, MoisCourant, MoisNmois1, DateOuverture, CANmoins1, CANmoins2, IndicePrev, RSI, PoidsMois, DateLiquid, DateReno, NbMoisReno, DateFermeture, Liquidmoyen)
On Error Resume Next
DateOuverture = CDate(DateOuverture)
MoisOuverture = DateSerial(Year(DateOuverture), Month(DateOuverture) + 1, 1) - 1
MoisCourant = CDate(MoisCourant)
MoisNmois1 = CDate(MoisNmois1)
DateReno = CDate(DateReno)
DateLiquid = CDate(DateLiquid)
MoisLiquidNplus1 = DateSerial(Year(DateLiquid) + 1, Month(DateLiquid) + 1, 1) - 1
MoisRenoNplus1 = DateSerial(Year(DateReno) + 1, Month(DateReno) + 1, 1) - 1
MoisRenoPlus1Nplus1 = DateSerial(Year(DateReno) + 1, Month(DateReno) + NbMoisReno, 1) - 1
DateFermeture = CDate(DateFermeture)
MoisFermeture = DateSerial(Year(DateFermeture), Month(DateFermeture) + 1, 1) - 1
moisLiquid = DateSerial(Year(DateLiquid), Month(DateLiquid) + 1, 1) - 1
MoisReno = DateSerial(Year(DateReno), Month(DateReno) + 1, 1) - 1
MoisRenoplus1 = DateSerial(Year(DateReno), Month(DateReno) + 2, 1) - 1
MoisRenoplus2 = DateSerial(Year(DateReno), Month(DateReno) + 3, 1) - 1
MoisRenoplus3 = DateSerial(Year(DateReno), Month(DateReno) + 4, 1) - 1
MoisRenoplus4 = DateSerial(Year(DateReno), Month(DateReno) + 5, 1) - 1
MoisRenoplus5 = DateSerial(Year(DateReno), Month(DateReno) + 6, 1) - 1
MoisRenoplus6 = DateSerial(Year(DateReno), Month(DateReno) + 7, 1) - 1
MoisRenoplus7 = DateSerial(Year(DateReno), Month(DateReno) + 8, 1) - 1
MoisRenoplus8 = DateSerial(Year(DateReno), Month(DateReno) + 9, 1) - 1
MoisRenoplus9 = DateSerial(Year(DateReno), Month(DateReno) + 10, 1) - 1
MoisRenoplus10 = DateSerial(Year(DateReno), Month(DateReno) + 11, 1) - 1
MoisRenoplus11 = DateSerial(Year(DateReno), Month(DateReno) + 12, 1) - 1
MoisRenoplus12 = DateSerial(Year(DateReno), Month(DateReno) + 13, 1) - 1
If UCase(StatutOF) = "FERME" Or StatutOF = "Fermé" Or StatutOF = "fermé" Then
Var = 0
GoTo FinCalcul
Else
GoTo Etape2
End If
Etape2:
If DateOuverture > MoisCourant Then
Var = 0
Else
If MoisOuverture < MoisNmois1 Then
If CANmoins1 > 1 Then
Var = CANmoins1 * IndicePrev / 100
Else
Var = CANmoins2 * IndicePrev / 100
End If
Else
Var = RSI * PoidsMois
End If
End If
If MoisRenoNplus1 = MoisCourant Or MoisLiquidNplus1 = MoisCourant Then
Var = CANmoins2 * (IndicePrev) / 100
Else
Var = Var
End If
If MoisRenoPlus1Nplus1 = MoisCourant Then
Var = CANmoins2 * (IndicePrev) / 100
Else
Var = Var
End If
If MoisRenoplus1 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus2 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus3 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus4 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus5 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus6 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus7 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus8 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus9 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus10 = MoisCourant Then
Var = CANmoins1 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If MoisRenoplus11 = MoisCourant Then
Var = CANmoins2 * (IndicePrev + 7) / 100
Else
Var = Var
End If
If moisLiquid = MoisCourant Then
Var = Liquidmoyen
Else
Var = Var
End If
If MoisReno = MoisCourant Then
Var = 0
Else
Var = Var
End If
If UCase(StatutOF) = "A FERMER" Then
If DateFermeture < MoisCourant Then
Var = 0
End If
End If
FinCalcul:
PrevCA = Var
Re,
Ta fonction calcule un CA prévisionnel en fonction de certains critères.
Tu as plus d'éléments que nous pour aller plus loin dans sa compréhension.
Cdlt.