Sub UpdateReserve()
Dim Ajout, Reserve, Najout%, i%, j%, C%, Present
Ajout = [Tableau2] ' Transfert tableau Ajout dans array
Reserve = [Tableau5] ' Transfert tableau Reserve dans array
Najout = 0 ' Pour compter le nombre de lignes ajoutées pour message de sortie
For i = 1 To UBound(Ajout) ' pour toutes les lignes
ID = Ajout(i, 10) ' On récupère l'ID
Present = 0 ' Présent=0 alors ID absent, =1 ID déjà present
For j = 1 To UBound(Reserve) ' Pour chaque ligne de Reserve
If Reserve(j, 1) = Ajout(i, 10) Then ' On vérifie les ID
Present = 1: Exit For ' Si ID présent, on sort
End If
Next j
If Present = 0 Then ' Donc ID absent
[Tableau5].ListObject.ListRows.Add ' Alors on crée une nouvelle ligne
Ligne = [Tableau5].ListObject.ListRows.Count
For C = 1 To 9 ' On recopie les 9 champ décalés de 1 en colonne
[Tableau5].Item(Ligne, C + 1) = [Tableau2].Item(i, C)
Next C
[Tableau5].Item(Ligne, 1) = [Tableau2].Item(i, 10) ' On recopie l'ID du champ 10 dans le champ 1
Najout = Najout + 1 ' On incrément le nbre de lignes ajoutées
End If
Next i
If Najout = 0 Then MsgBox "Aucune ligne ajoutée." Else MsgBox Najout & " ligne(s) ajoutée(s)." ' Bilan en sortie
End Sub