Next sans for [Résolu]

Signaler
-
Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020
-
Bonjour,

Ce code ne fonctionne pas, il m'indique un next sans for en fin de code. Avez vous des idées ?


Sub alerte()

Dim w1 As Worksheet
Dim i As Long
Dim D As Date
Dim j As Integer
Dim Liste As String

Set w1 = Worksheets("Effectif") 'Feuille qui contient les alertes
D = Date


' ********************************* fin de CMU
For i = 4 To w1.Range("Y" & Rows.Count).End(xlUp).Row
ladate = w1.Range("Y" & i)
If ladate <> "" Then
p = D - ladate
If p >= 0 Then Liste = Liste & vbLf & Cells(i, "C").Value & " a déja expiré depuis le " & Cells(i, "Y")
End If
If p > -30 And p < 0 Then Liste = Liste & vbLf & "La CMU pour " & Cells(i, "C").Value & " expirera le " & Cells(i, "Y").Value
End If
End If
Next i

' ********************************* fin d'ATJM
For i = 4 To w1.Range("T" & Rows.Count).End(xlUp).Row
ladate = w1.Range("T" & i)
If ladate <> "" Then
p = D - ladate
If p >= 0 Then Liste = Liste & vbLf & "L'ATJM pour " & Cells(i, "C").Value & " a déja expiré depuis le " & Cells(i, "T").Value
End If
If p > -30 And p < 0 Then Liste = Liste & vbLf & "L'ATJM pour " & Cells(i, "C").Value & " expirera le " & Cells(i, "T").Value
End If
End If
Next i

' ********************************* Fin d'autorisation de travail
For i = 4 To w1.Range("AU" & Rows.Count).End(xlUp).Row
ladate = w1.Range("AU" & i)
If ladate <> "" Then
p = D - ladate
If p >= 0 Then Liste = Liste & vbLf & "L'autorisation de travail pour " & Cells(i, "C").Value & " a déja expiré depuis le " & Cells(i, "AU").Value
End If
If p > -30 And p < 0 Then Liste = Liste & vbLf & "L'autorisation de travail pour " & Cells(i, "C").Value & " expirera le " & Cells(i, "AU").Value
End If
End If
Next i

Next

MsgBox Liste, vbOKOnly + vbInformation, "Alertes"

End Sub




Configuration: Windows / Chrome 81.0.4044.113

2 réponses

Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020
175
Bonjour
Teste plutôt comme ceci
Tu avais des End If ainsi que le Next à la fin inutiles

Sub alerte()

Dim w1 As Worksheet
Dim i As Long
Dim D As Date
Dim j As Integer
Dim Liste As String

Set w1 = Worksheets("Effectif") 'Feuille qui contient les alertes
D = Date


' ********************************* fin de CMU
  For i = 4 To w1.Range("Y" & Rows.Count).End(xlUp).Row
  ladate = w1.Range("Y" & i)
    If ladate <> "" Then
      p = D - ladate
      If p >= 0 Then Liste = Liste & vbLf & Cells(i, "C").Value & " a déja expiré depuis le " & Cells(i, "Y")
      If p > -30 And p < 0 Then Liste = Liste & vbLf & "La CMU pour " & Cells(i, "C").Value & " expirera le " & Cells(i, "Y").Value
    End If
  Next i

' ********************************* fin d'ATJM
  For i = 4 To w1.Range("T" & Rows.Count).End(xlUp).Row
    ladate = w1.Range("T" & i)
    If ladate <> "" Then
      p = D - ladate
      If p >= 0 Then Liste = Liste & vbLf & "L'ATJM pour " & Cells(i, "C").Value & " a déja expiré depuis le " & Cells(i, "T").Value
      If p > -30 And p < 0 Then Liste = Liste & vbLf & "L'ATJM pour " & Cells(i, "C").Value & " expirera le " & Cells(i, "T").Value
    End If
  Next i

' ********************************* Fin d'autorisation de travail
  For i = 4 To w1.Range("AU" & Rows.Count).End(xlUp).Row
  ladate = w1.Range("AU" & i)
    If ladate <> "" Then
      p = D - ladate
      If p >= 0 Then Liste = Liste & vbLf & "L'autorisation de travail pour " & Cells(i, "C").Value & " a déja expiré depuis le " & Cells(i, "AU").Value
      If p > -30 And p < 0 Then Liste = Liste & vbLf & "L'autorisation de travail pour " & Cells(i, "C").Value & " expirera le " & Cells(i, "AU").Value
    End If
  Next i

MsgBox Liste, vbOKOnly + vbInformation, "Alertes"

End Sub
Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020
175 >
Messages postés
10
Date d'inscription
dimanche 19 juin 2005
Statut
Membre
Dernière intervention
18 avril 2020

Re,

Allez dans https://www.cjoint.com/
Cliquez sur "PARCOURIR" pour sélectionner le classeur
Clic le bouton "CREER LE LIEN"
Clic droit quand le lien est créé "COPIER LE LIEN"
Sur le post Clic droit "Coller".

ou dans https://mon-partage.fr/
Messages postés
10
Date d'inscription
dimanche 19 juin 2005
Statut
Membre
Dernière intervention
18 avril 2020
>
Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020

Merci, je ne connaissais pas ce principe.

Voici donc le lien : https://www.cjoint.com/c/JDshOtFILth
Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020
175 >
Messages postés
10
Date d'inscription
dimanche 19 juin 2005
Statut
Membre
Dernière intervention
18 avril 2020

Re,
Il y avait un espace insécable à la ligne 54
A tester
https://mon-partage.fr/f/65ef054U/
Messages postés
10
Date d'inscription
dimanche 19 juin 2005
Statut
Membre
Dernière intervention
18 avril 2020
>
Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020

Je n'y comprends rien, le fichier que tu me renvoies fonctionne, je copie le code, et de nouveau, la même erreur... Donc j'ai copié les infos de ma version... et cela fonctionne...

Merci pour tout
Messages postés
857
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 octobre 2020
175 >
Messages postés
10
Date d'inscription
dimanche 19 juin 2005
Statut
Membre
Dernière intervention
18 avril 2020

Re,
Si tu as remis le code dans un autre classeur (le final) c'est normal, le code n'a pas été modifié, mais comme précité, tu as un espace insécable à la ligne 54 qui est surement aussi sur ton original
Regarde quand tu as le message d'erreur, fais "Débogage" et regarde la valeur de "ladate" qui n'est pas vide mais " " avec un espace.
Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
1 498
Bonjour,

L'indentation du code permet d'éviter ce type d'erreur, voir :
https://silkyroad.developpez.com/VBA/DebuterMacros/#LV