Block else sans if
Bonjour
J'ai une erreur sur cette partie :
Private Sub Workbook_Open()
Dim i As Integer
i = Target.Row
If Range("AB" & i) = "Oui" And Range("AX" & i) <> "" Then Range("AJ" & i).Value = "Scolaire avec CMU"
ElseIf Range("AB" & i) = "Oui" And Range("AX" & i) = "" Then Range("AJ" & i).Value = "Avec CMU" '<------- ICI
ElseIf Range("AB" & i) = "Non" And Range("AX" & i) <> "" Then Range("AJ" & i).Value = "Scolaire sans CMU"
ElseIf Range("AB" & i) = "Non" And Range("AX" & i) = "" Then Range("AJ" & i).Value = "Sans réduction"
End If
Range("N" & i) = (Year(Now) - Year(Range("M" & i))) * 12 + Month(Now) - Month(Range("M" & i)) & " mois"
End Sub
Je ne comprends pas car j'ai le IF et le END IF
Invité
Bonsoir Theyoshi,
1) Dans Workbook_Open() tu ne peux pas utiliser Target.Row
2) Il faut écrire l'instruction ainsi
Private Sub Workbook_Open()
Dim i As Integer
'i = Target.Row
i = Selection.Row
If Range("AB" & i) = "Oui" And Range("AX" & i) <> "" Then
Range("AJ" & i).Value = "Scolaire avec CMU"
ElseIf Range("AB" & i) = "Oui" And Range("AX" & i) = "" Then Range("AJ" & i).Value = "Avec CMU" '< -------ICI
ElseIf Range("AB" & i) = "Non" And Range("AX" & i) <> "" Then Range("AJ" & i).Value = "Scolaire sans CMU"
ElseIf Range("AB" & i) = "Non" And Range("AX" & i) = "" Then Range("AJ" & i).Value = "Sans réduction"
End If
Range("N" & i) = (Year(Now) - Year(Range("M" & i))) * 12 + Month(Now) - Month(Range("M" & i)) & " mois"
End Sub
@+
Bonsoir
Toujours l'erreur Else sans If
p
Bonsoir,
Va à la ligne après tes ELSEIF comme ceci
Private Sub Workbook_Open()
Dim i As Integer
i = selection.Row
If Range("AB" & i) = "Oui" And Range("AX" & i) <> "" Then
Range("AJ" & i).Value = "Scolaire avec CMU"
ElseIf Range("AB" & i) = "Oui" And Range("AX" & i) = "" Then
Range("AJ" & i).Value = "Avec CMU" '< -------ICI
ElseIf Range("AB" & i) = "Non" And Range("AX" & i) <> "" Then
Range("AJ" & i).Value = "Scolaire sans CMU"
ElseIf Range("AB" & i) = "Non" And Range("AX" & i) = "" Then
Range("AJ" & i).Value = "Sans réduction"
End If
Range("N" & i) = (Year(Now) - Year(Range("M" & i))) * 12 + Month(Now) - Month(Range("M" & i)) & " mois"
End Sub
Et là il va le prendre c'est juste un pb de syntaxe il me semble
Bonne soirée
Invité
Re,
Le problème de syntaxe est normalement qu'avec le 1er "IF... THEN"
Les "ElseIF" VBA sait géré, en tout cas chez moi sur 2016/O365
Sinon la syntaxe de PtitPanda est tout à fait correcte aussi et plus lisible
@+
Bonjour,
Pour le fun !?
Private Sub Workbook_Open()
Dim i As Long
i = Selection.Row
Select Case True
Case Range("AB" & i).Value = "Oui" And Not IsEmpty(Range("AX" & i)):
Range("AJ" & i).Value = "Scolaire avec CMU"
Case Range("AB" & i).Value = "Oui" And IsEmpty(Range("AX" & i)):
Range("AJ" & i).Value = "Avec CMU"
Case Range("AB" & i).Value = "Non" And Not IsEmpty(Range("AX" & i)):
Range("AJ" & i).Value = "Scolaire sans CMU"
Case Range("AB" & i).Value = "Non" And IsEmpty(Range("AX" & i)):
Range("AJ" & i).Value = "Sans réduction"
End Select
Range("N" & i) = (Year(Date) - Year(Range("M" & i))) * 12 + Month(Date) - Month(Range("M" & i)) & " mois"
End Sub