XL 2010 Appel de fonction et condition Vba

djiska

XLDnaute Junior
J’aimerai savoir si quelque ‘un pourrait m’aider avec ce problème
J’ai un input box qui affiche 4 choix :

  • Calculer le salaire
  • Calculer le ratio de présence
  • Calculer la cote de l’employé
  • quitter
Ces 3 premiers choix sont rattachés à 3 des fonctions (salaire, ratio et cote) qui fonctionnent très bien. Lorsqu'on inscrit 1 la fonction calculer salaire s’exécute et ainsi de suite.

Les conditions :
  • Si le choix fait ne figure pas sur la liste les, on recommence la saisie jusqu’à ce que le choix soit bon ou que l’utilisateur appuie sur le bouton « Annuler » ;
• Si l’utilisateur n’a pas annulé, le programme retourne alors le choix de l’utilisateur.

• Si l’utilisateur a annulé, le programme retourne alors le choix annuler ;

• Le programme utilisera des constantes pour définir les choix possibles


Mon problème

Je n’arrive pas à appeler les fonctions selon le choix fait et faire un code qui fait du sens en tenant compte des conditions.

J’ai tenté quelque chose mais c’est un vrai bordel.
 

Dudu2

XLDnaute Barbatruc
Bonjour,

Un exemple de séquence à utiliser / adapter...
VB:
Sub SaisieChoix()
    Dim Réponse As Variant
    Dim S As String
  
    Const CalculSalaire As Integer = 1
    Const CalculRatioPrésence As Integer = 2
    Const CalculCoteEmployé As Integer = 3
  
    S = CStr(CalculSalaire) & " - Calculer le salaire" & vbCrLf & _
        CStr(CalculRatioPrésence) & " - Calculer le ratio de présence" & vbCrLf & _
        CStr(CalculCoteEmployé) & " - Calculer la cote de l’employé" & vbCrLf & vbCrLf & _
        "Entrer un des choix proposés..."

    Do While 1
        Réponse = Application.InputBox(S, "Saisie de l'opération", Type:=1)
      
        'Touche <Annuler>
        If VarType(Réponse) = vbBoolean Then Exit Sub
      
        'Analyse du choix
        Select Case Réponse
            Case CalculSalaire
                Call Traite_CalculSalaire
                Exit Do
              
            Case CalculRatioPrésence
                Call Traite_CalculRatioPrésence
                Exit Do
              
            Case CalculCoteEmployé
                Call Traite_CalculCoteEmployé
                Exit Do
              
            Case Else
                MsgBox "Réponse incorrecte !"
        End Select
    Loop
End Sub
 

djiska

XLDnaute Junior
@ DUdu2 ,étant donné mon niveau en Vba , je ne suis pas très familier avec les operateurs , Select case & Case.
J'ai donc un peu du mal à comprendre le code.
Que ce que cela donnerait avec des SI et While ?

J'ai mis un fichier avec mon code ,je sais que ca fait un peu dure mais Merci de me corriger
@kingfadhel tu peux regarder aussi.
 

Pièces jointes

  • testvba.xlsm
    13.1 KB · Affichages: 3

Dudu2

XLDnaute Barbatruc
VB:
Sub SaisieChoix()
    Dim Réponse As Variant
    Dim S As String
 
    Const CalculSalaire As Integer = 1
    Const CalculRatioPrésence As Integer = 2
    Const CalculCoteEmployé As Integer = 3
 
    S = CStr(CalculSalaire) & " - Calculer le salaire" & vbCrLf & _
        CStr(CalculRatioPrésence) & " - Calculer le ratio de présence" & vbCrLf & _
        CStr(CalculCoteEmployé) & " - Calculer la cote de l’employé" & vbCrLf & vbCrLf & _
        "Entrer un des choix proposés..."

    Do While 1
        Réponse = Application.InputBox(S, "Saisie de l'opération", Type:=1)
      
        'Touche <Annuler>
        If VarType(Réponse) = vbBoolean Then
            Exit Sub
        'Choix 1
        ElseIf Réponse = CalculSalaire Then
            Call Traite_CalculSalaire
        'Choix 2
        ElseIf Réponse = CalculRatioPrésence Then
            Call Traite_CalculRatioPrésence
        'Choix 3
        ElseIf Réponse = CalculCoteEmployé Then
            Call Traite_CalculCoteEmployé
        'Choix autre
        Else
            MsgBox "Réponse incorrecte !"
        End If
    Loop
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 974
Membres
103 076
dernier inscrit
LoneWolf90