Problème select case

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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 ;)
    1. Il m'indique un dépassement de capacités dans le S = (39 * R) + (3 * R * 1.25) + ((H - 42) * R * 1.5)
      1. Non enfaîte mon problème n'est pas dans le Select case mais dans mes IF mais je ne trouve pas pourquoi.
        1. 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 :/
          1. 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