Microsoft 365 Remplacer elseif par select Select Case

pat66

XLDnaute Impliqué
Bonsoir le forum,

Merci pour votre attention

cela fait plusieurs heures que je tourne en rond, alors désespéré, je vous demande de l'aide pour rendre opérationnelle la macro ci dessous avec des if ou des Select Case, pourriez vous m'aider s'il vous plait ?

VB:
Sub Rectangle1_Cliquer()
If [D7] >= 10 And [D7] <= 19 Then
Feuil1.[D5] = 0.0309 ' Else Feuil1.[D5] = 0.0371
ElseIf [D7] >= 20 And [D7] <= 24 Then
Feuil1.[D5] = 0.0319 ' Else Feuil1.[D5] = 0.0371
ElseIf [D7] >= 25 Then 'And [D7] <= 19 Then
Feuil1.[D5] = 0.0329 ' Else Feuil1.[D5] = 0.0371
Else
Feuil1.[D5] = 0.0371
End If
End Sub

L'objectif étant qu'au premier clic, la macro tienne compte des valeurs de D5 et D7 et inscris dans D5 le taux correspondant
Exemples:
si D5 =0.0371 et que D7 <=15, alors D5 = 0.0309
si D5 =0.0371 et que D7 <= 20, alors D5 = 0.0319
si D5 =0.0371 et que D7 = 25, alors D5 = 0.0329
et qu'au deuxième clic, quelque soit la valeur de D5 et de D7, la macro saisisse 0.0371 dans D5

Merci et bonne soirée
 

wDog66

XLDnaute Occasionnel
Bonsoir pat66

Pour moi, il faut utiliser un FLAG 🤔
VB:
Option Explicit

Dim Flg As Boolean

Sub Rectangle1_Cliquer()
  If Flg = False Then
    ' Mettre le FLAG à vrai
    Flg = True
    ' Isncrire la valeur selon
    If [D7] >= 10 And [D7] <= 15 Then
      Feuil1.[D5] = 0.0309
    ElseIf [D7] >= 20 And [D7] <= 20 Then
      Feuil1.[D5] = 0.0319
    ElseIf [D7] >= 25 And [D7] = 25 Then
      Feuil1.[D5] = 0.0329
    End If
  Else
    ' Réinitialiser le FLAG
    Flg = False
    ' Isncrire la valeur
    Feuil1.[D5] = 0.0371
  End If
End Sub

A+
 

pat66

XLDnaute Impliqué
Bonsoir le fil,

merci beaucoup pour votre aide et vos conseils

La proposition de dysorthographie ne revient pas au deuxième clic sur 3,71%, c'est dommage par contre la solution de wDog66 avec le FLAG fonctionne parfaitement.

un grand merci à vous deux

bonne soirée
 

pat66

XLDnaute Impliqué
Bonjour le forum, le fil,

merci avec la correction de dysorthographie, les deux solutions fonctionnent bien, merci beaucoup !!

Compte tenu de votre expertise, j'ose une dernière requête, pourriez vous m'aider à colorer la Shapes("Rectangle 1") qui me sert de bouton de sorte que si :
Feuil1.[D5] = 0.0371, la Shape devient RGB =(RGB(0, 32, 96) qui correspond à la couleur de la feuille
Feuil1.[D5] <> 0.0371, la Shape devient RGB = RGB(255, 192, 0), cela me permettra de savoir que la macro est activée

j'ai testé avec :
Feuil1.Shapes("Rectangle 1").Fill.ForeColor.RGB = IIf(Range("D5").Value <> 0.0371, RGB(255, 192, 0), RGB(0, 32, 96)), ca à l'air de fonctionner, qu'en pensez vous ?

un grand merci à tous les deux
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 092
Messages
2 116 118
Membres
112 665
dernier inscrit
JPHD