Problème select case

Résolu
Ariitea1 Messages postés 5 Statut Membre -  
Ariitea1 Messages postés 5 Statut Membre -
Bonjour,

J'ai un souci j'ai cette ligne de code en vba sous excel mais je n'arrive pas à faire afficher la valeur de S qui reste a 0 pourtant R est initialisé en fonction du case, mais je pense qu'il ne trouve pas R pour faire donner la valeur finale de S qui reste a 0 mais je ne trouve pas le problème pouvez vous m'aidez s'il vous plait ? :

Private Sub CommandButton1_Click()

Dim R As Single
Dim H As Integer
Dim S As Integer

H = Heure.Value
Cat = Categorie.Value

If H < 39 Then
 MsgBox "Erreur L'heure est basé au minimum à 39 heures"
End If

Select Case Cat
    Case SQ:
        R = 1000
    
    Case OQ:
        R = 1300
    
    Case TS:
        R = 1600
    
    Case AM:
        R = 2000
        
    Case I:
        R = 2400
End Select

If H > 43 Then
    S = (39 * R) + (3 * R * 1.25) + ((H - 42) * R * 1.5)
Else
    If H > 39 And H < 43 Then
        S = (39 * R) + (3 * R * 1.25)
    
    Else
        S = H * 39
    End If
End If

msg = "Votre Salaire est de " & S & " Vous avez fait " & H & " heures de travail au poste de " & Cat
Salaire.Caption = msg
End Sub


5 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    1. Qui est Categorie dans Cat = Categorie.Value
    si c'est le nom d'une cellule c'est Range("Categorie").Value
    2. Qui est OQ dans Case OQ:
    si c'est une des valeurs de Cat , c'est Case "OQ":

    Si ça ne fonctionne pas, peux tu envoyer la partie concernée de ton fichier au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message

    Cdlmn
    0
  2. Ariitea1 Messages postés 5 Statut Membre
     
    Bonjour,

    1. Categorie est une liste déroulante (je l'ai initialisé moi même avec addItten. " ")

    2. OQ est une des valeur de cette liste déroulante.

    3. Je peux t'envoyer le fichier par mail ? car je ne connais pas Cjoin.com et les manipulation à faire.

    PS : c'est mon tout premier poste :/
    0
  3. Ariitea1 Messages postés 5 Statut Membre
     
    Non enfaîte mon problème n'est pas dans le Select case mais dans mes IF mais je ne trouve pas pourquoi.
    0
  4. Ariitea1 Messages postés 5 Statut Membre
     
    Il m'indique un dépassement de capacités dans le S = (39 * R) + (3 * R * 1.25) + ((H - 42) * R * 1.5)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Ariitea1 Messages postés 5 Statut Membre
     
    Solution :

    1. Les "" :

    Select Case Cat 
    Case "SQ": 
    R = 1000 
    
    Case "OQ": 
    R = 1300 
    
    Case "TS": 
    R = 1600 
    
    Case "AM": 
    R = 2000 
    
    Case "I": 
    R = 2400 
    End Select 


    2: Changer R et S en Long pour évité le dépassement de capacités et le programme marche.

    Merci pour l'aide ;)
    0