Erreur de compilation: end sub attendu

Bonjour,

Quand je commence à saisir le formulaire, une fenêtre erreur de compilation: end sub attendu apparaît sur la 1ère ligne du code ci-dessous dans la procédure évènementielle avant insertion:

Private Sub Form_BeforeInsert(Cancel As Integer)
Function newnum()
Dim curAnnee As String
curAnnee = Format(Date, "yyyy")

lastnum = DMax("NUM", "table", "NUM like '" & curAnnee & "*'")

If IsNull(lastnum) Then 'pas de n° pour cette année
newnum = curAnnee & "-0001"
Else
newnum = curAnnee & "-" & Format(Right(lastnum, 4) + 1, "0000")
End If

End Function
End Sub

Avez-vous une idée?
Merci beaucoup,

4 réponses

  1. Salut,

    Bon OK pour les msg de compilation. Je voudrais appeler une fonction: call nomfunction mais ça me demande d'entrer la valeur dans le champ correspondant alors que je voudrais que cela se fasse automatiquement. J'ai peut-être oublié qqchose dans le code (cf 1ère question).
    Quelqu'un voit?
    Merci et bonne journée,
    0
    1. Merci de ta réponse. Si j'enlève les lignes, le msg suivant s'affiche: erreur de compilation seuls des commentaires peuvent apparaître après end sub end function ...
      Qu'est-ce que ça signifie?
      Merci bien
      0
      1. Bonjour,

        Il faut retirer les lignes

        Function newnum()
        End Function

        ça devrait fonctionner un peu mieux.
        Penses aussi à définir le type de newnum.
        1
        1. Rebonjour,

          Bon, en fait il faut mettre le end sub juste après le sub.
          Maintenant le code demande d'entrer la valeur num lors de l'éxecution. J'aimerais que ce n° s'incrémente automatiquement à l'ouverture du formulaire.
          Comment faire?
          Merci
          0