If sur liste déroulante
B
Bonjour à tous et merci pour ce magnifique forum qui me permet de progresser en VBA Excel
je me permets de vous solliciter suite à un petit soucis que je rencontre :
J'ai créé une liste déroulante contenant un texte (Base ou HP-HC). Du coup j'essaie ensuite de poser une condition IF en fonction de cette liste déroulante. Pour la première partie de la condition c'est ok, mais après le ELSE j'ai un message d'erreur " L'indice n'appartient pas à la sélection"... Si quelqu'un pouvait m'aider ce serait super cool
Sub Comparateur_C5()
'Varaibles
Dim Conso As Double
Dim ConsoHP As Double
Dim ConsoHC As Double
Dim Duree As Double
Dim Budget_initial As Double
Dim Nouveau_budget As Double
Dim cell As Range
Set Rng = Worksheets("Comparateur_").Range("B5")
'Données (Grille TRV)
Dim Prix_TRV_base As Double, HP_TRV As Double, HC_TRV As Double
Prix_TRV_base = 100.1
HP_TRV = 108
HC_TRV = 78.6
'Effacer les dernière valeurs
Sheets("Comparateur_").Range("B12:B14").ClearContents
'Calcul comparateur
For Each cell In Rng
If InStr(1, cell.Value, "Base") > 0 Then
Conso = Sheets("Comparateur_").Range("B6").Value
Duree = Sheets("Comparateur_").Range("B9").Value
Budget_initial = Prix_TRV_base * Conso
Sheets("Comparateur_").Range("B12").Value = Budget_initial
If Duree <= 12 Then
Nouveau_budget = Prix_TRV_base * 0.95 * 0.97 * Conso '1er année reduc de 5% et 7 % avec CE
Sheets("Comparateur_").Range("B13").Value = Nouveau_budget
Economie = ((Nouveau_budget - Budget_initial) * Duree) / 12
Sheets("Comparateur_").Range("B14").Value = Economie
If Economie <= 0 Then
Sheets("Comparateur_").Range("B14").Font.ColorIndex = 50 'Vert
Else
Sheets("Comparateur_").Range("B14").Font.Color = RGB(255, 0, 0) 'Rouge
End If
Else
Nouveau_budget = Prix_TRV_base * 0.95 * Conso 'les années suivantes reduc de 5% avec CE
Sheets("Comparateur_").Range("B13").Value = Nouveau_budget
Economie = ((Nouveau_budget - Budget_initial) * Duree) / 12
Sheets("Comparateur_").Range("B14").Value = Economie
If Economie <= 0 Then
Sheets("Comparateur_").Range("B14").Font.ColorIndex = 50 'Vert
Else
Sheets("Comparateur_").Range("B14").Font.Color = RGB(255, 0, 0) 'Rouge
End If
End If
Exit For
Else
Sheets("Comparateur_").Range("B6").Value = 0
ConsoHP = Sheets("Comparateur_").Range("B7").Value
ConsoHC = Sheets("Comparateur_").Range("B8").Value
Duree = Sheets("Comparateur_").Range("B9").Value
Budget_initial = HP_TRV * ConsoHP + HC_TRV * ConsoHC
Sheets("Comparateur_").Range("B12").Value = Budget_initial
If Duree <= 12 Then
Nouveau_budget = HP_TRV * 0.95 * 0.97 * ConsoHP + HC_TRV * 0.95 * 0.97 * ConsoHC '1er année reduc de 5% et 7 % avec CE
Sheets("Comparateur_").Range("B13").Value = Nouveau_budget
Economie = ((Nouveau_budget - Budget_initial) * Duree) / 12
Sheets("Comparateur_").Range("B14").Value = Economie
If Economie <= 0 Then
Sheets("Comparateur").Range("B14").Font.ColorIndex = 50 'Vert
Else
Sheets("Comparateur").Range("B14").Font.Color = RGB(255, 0, 0) 'Rouge
End If
Else
Nouveau_budget = HP_TRV * 0.95 * ConsoHP + HC_TRV * 0.95 * ConsoHC 'les autres années année reduc de % avec CE
Sheets("Comparateur_").Range("B13").Value = Nouveau_budget
Economie = ((Nouveau_budget - Budget_initial) * Duree) / 12
Sheets("Comparateur_").Range("B14").Value = Economie
If Economie <= 0 Then
Sheets("Comparateur_").Range("B14").Font.ColorIndex = 50 'Vert
Else
Sheets("Comparateur_").Range("B14").Font.Color = RGB(255, 0, 0) 'Rouge
End If
End If
End If
Next cell
MsgBox ("Le comparatif a bien été calculé avec succès :)")
End Sub
BaboutzMembre impliqué
- Messages
- 1'025
- Excel
- 2016 FR // 365
- Inscrit
- 19/04/2019
- Emploi
- Étudiant en 5e année d'école d'Ingénieur
Salut BienCoiffé,
Tu as été distrait, tu as mal écrit le nom de ta feuille !
Sheets("Comparateur")
Au lieu de :
Sheets("Comparateur_")
Bonne soirée,
Baboutz
B
AHhhh bien vu merciiiiiii
BaboutzMembre impliqué
- Messages
- 1'025
- Excel
- 2016 FR // 365
- Inscrit
- 19/04/2019
- Emploi
- Étudiant en 5e année d'école d'Ingénieur
Avec plaisir !
Bonne soirée,
Baboutz