Bonjour à tous

Lorsque je recopie cette fonction dans le module d'une nouvelle version de ma bdd, il me réclame de déclarer "n" alors que j'avais pas besoin dans le module d'origine puis plante à l’exécution.
Je déclare "n" en tant qu'integer et il me sert au comptage des lignes.

J'aimerai comprendre pourquoi cette boucle plante et pourquoi dans l'autre base il ne me demande pas de déclarer "n" svp... Mystère ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Public Function OuvrirListeActionsClient()
 
    'Ouvre la liste des actions à facturer au client et l'insère dans le champ description de la ligne de facture ou bien le libellé de celle ci
 
    DoCmd.OpenForm ("sf groupes interventions"), , , "[numcontact]=screen.activeform.numcontact"
    Forms![sf groupes interventions].BtnAppliquerEtFermer.Visible = True
 
    'Efface toute sélection antérieure
    DoCmd.SetWarnings False
    DoCmd.RunSQL ("update t_rendezvous set t_rendezvous.sélectionner=false")
    DoCmd.SetWarnings True
 
    Forms![sf groupes interventions].AllowAdditions = False
 
 
 
MsgBox ("Veuillez sélectionner les actions à inclure dans ce document"), vbOKOnly
 
End Function
Public Function SélectionListeActionsPourEcriture()
 
DoCmd.RefreshRecord
 
Dim Sélection As Recordset
Dim ListeSélection As Variant
Dim i As Integer
  Set Sélection = CurrentDb.OpenRecordset("SELECT t_rendezvous.horairedebut, t_rendezvous.horairefin, t_rendezvous.[sélectionner], t_rendezvous.DuréeAction, [Types actions].TypeAction FROM [Types actions] INNER JOIN t_rendezvous ON [Types actions].NumTypeAction = t_rendezvous.TypeAction WHERE (((t_rendezvous.[Sélectionner]) = True))ORDER BY t_rendezvous.horairedebut DESC;")
 
If Sélection.BOF = True Then
  MsgBox "Aucun élément sélectionné", vbCritical
    Exit Function
  End If
 
  Sélection.MoveFirst
  ListeSélection = ""
 
 
    While Not Sélection.EOF
    For i = 1 To n
    i = 1 + n
    ListeSélection = ListeSélection & "- i" & DateValue(Sélection("horairedebut")) & "  > " & Sélection("TypeAction") & " " & " de " & Format(TimeValue(Sélection("horairedebut")), "hh:mm") & " à " & Format(TimeValue(Sélection("horairefin")), "hh:mm") & " (" & Sélection("duréeaction") & " min.)" & "<br>"
    Sélection.MoveNext
    Next i
  Wend
 
    ListeSélection = Left(ListeSélection, Len(ListeSélection) - 1)
    Forms("devis et factures").Libellé = Forms("devis et factures").Libellé & "<br>" & ListeSélection
 
  Sélection.Close
  Set Sélection = Nothing
 
    DoCmd.Close
 
 
    'Attribue le numéro de facture actuel aux actions sélectionnées et change l' état de l'action à "facturé"
    DoCmd.RunSQL ("update t_rendezvous set t_rendezvous.numfacture = forms![devis et factures]![numdocument],t_rendezvous.etataction='5' where (t_rendezvous.numcontact=forms![devis et factures]![numcontact] and t_rendezvous.sélectionner=true);")
 
 
    'Annule toute sélection antérieure
    DoCmd.RunSQL ("update t_rendezvous set t_rendezvous.sélectionner=false")
 
End Function