Bonjour le Dalanda et bienvenu(e), bonjour Joco, bonjour le forum,
La même remarque que Joco mais je vois que c'est ton premier message alors je pardonne un peu. Écrire tout en majuscule signifie que tu cries. C'est désagréable et donc a éviter... De même, un petit bonjour ne fait pas de mal.
Cela étant dit, en pièce jointe ton fichier modifié avec l'événementielle Change ci-dessous :
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet (la cible est la cellule modifiée)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
If Target.Column = 2 And Target.Row > 4 Then 'condition 1 : si la cible se trouve dans la colonne 2 et dans une ligne supérieure à 4
If Target.Count > 1 Then Exit Sub 'si la sélection comporte plus d'une seule cellule, sort de la procédure
TV = Range("B5:G" & Target.Row) 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
'condition 2 : si la donnée ligne I colonne 1 de TV (convertie en majuscule) est égale à la cible (convertie en majuscules)
If UCase(TV(I, 1)) = UCase(Target.Value) Then
If IsNumeric(TV(I, 3)) = True Then 'condition 3 : si la donnée ligne I colonne 3 de TV est un nombre
K = K + 1 'incrémente K
ReDim Preserve TL(1 To K) 'redimensionne le tableau des lignes TL (K lignes)
TL(K) = TV(I, 3) 'récupère le numéro de chèque
End If 'fin de la condition 3
End If 'fin de le condition 2
Next I 'prochaine ligne de la boucle
Target.Offset(0, 2).Value = Application.WorksheetFunction.Max(TL) + 1 'renvoie dans la cellule en colonne D la valeur Max de TL plus 1
End If 'fin de la condition 1
End Sub
Tape une banque dans la colonne B et le numéro de chèque incrémenté apparaîtra en colonne D...
Le fichier :