Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur de compilation: Else sans If

  • Initiateur de la discussion Initiateur de la discussion lohgun78
  • Date de début Date de début

lohgun78

XLDnaute Nouveau
Bonjour.

Pourriez vous m'aider a resoudre mon problème.
Etant débutant en VBA j'essaye d'écrire de quoi calculer les heures supplémentaires effectué par les professeurs. Mon problème apparait dans cette partie de l'écriture. " Erreur de compilation: Else sans If "

Merci

statut = InputBox("Saisir le statut du professeur (A pour agrégé, C pour certifié, S pour stagiaire) :")

If statut = A Then tpsDu = tpsDu + 15

ElseIf statut = C Then tpsDu = tpsDu + 18

ElseIf statut = S Then tpsDu = tpsDu + 6

Else

End If
 

kjin

XLDnaute Barbatruc
Re : Erreur de compilation: Else sans If

Bonjour,
Code:
statut = InputBox("Saisir le statut du professeur (A pour agrégé, C pour certifié, S pour stagiaire) :")
If UCase(statut) = "A" Then
tpsDu = tpsDu + 15
ElseIf UCase(statut) = "C" Then
tpsDu = tpsDu + 18
ElseIf UCase(statut) = "S" Then
tpsDu = tpsDu + 6
End If
Attention en outre au type de donnée renvoyée ! (guillemets)

Edit : lorsqu'il y a de nombreux choix possibles
Code:
statut = InputBox("Saisir le statut du professeur (A pour agrégé, C pour certifié, S pour stagiaire) :")
Select Case UCase(statut)
Case "A"
tpsDu = tpsDu + 15
Case "C"
tpsDu = tpsDu + 18
Case "S"
tpsDu = tpsDu + 6
End Select

A+
kjin
 
Dernière édition:

James007

XLDnaute Barbatruc
Re : Erreur de compilation: Else sans If

Bonjour,

Pour ce qui est de ton code :
Code:
Option Explicit
Sub Test()
Dim statut As String
Dim tpsDu As Long
statut = InputBox("Saisir le statut du professeur (A pour agrégé, C pour certifié, S pour stagiaire) :")

If statut = "A" Then
    tpsDu = tpsDu + 15
ElseIf statut = "C" Then
    tpsDu = tpsDu + 18
ElseIf statut = "S" Then
    tpsDu = tpsDu + 6
End If

End Sub

A +
 

Gorfael

XLDnaute Barbatruc
Re : Erreur de compilation: Else sans If

Bonne année lohgun78 et le forum
Code:
statut = InputBox("Saisir le statut du professeur (A pour agrégé, C pour certifié, S pour stagiaire) :")
    
       If statut = A Then 
    tpsDu = tpsDu + 15
     ElseIf statut = C Then 
    tpsDu = tpsDu + 18
        ElseIf statut = S Then 
    tpsDu = tpsDu + 6
       End If
Quelques remarques anodines :

- Utilise les balises de code (icone # en mode avancé)

- l'aide indique 2 syntaxe pour if :
1 - if... then ... else... : tout sur une ligne
2- if... then
condition vraie
else
contition fausse
endif
Pour la première syntaxe, seuls les if et then sont obligatoires
Pour la seconde, idem pour if then et endif qui servent de délimiteurs

- Pour qu'un dépannage d'une macro soit efficace, il est préférable de mettre tout le code
A+
 

Discussions similaires

Réponses
3
Affichages
763
Réponses
3
Affichages
877
Réponses
3
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…