Bonjour,

Actuellement j'ai une fonction qui trouve la derniere case non vide dans une plage passée en paramètre de la fonction et qui retourne la chaine de caractères qui s'y trouve.

Je voudrais compliquer un peu cette fonction en ajoutant une condition.
En effet, je souhaite que cette chaine non vide soit retournée uniquement si la case se trouvant deux cases à droite de celle ci est vide. sinon la chaine retournée sera la chaine vide.
J'ai donc pensé à passer en paramètre de la fonction la deuxième plage qui est la même plage que la première mais en décalé de deux cases à droite.
Et je me suis dit que à chaque fois que j'analyse le contenu d'une case de ma plage1, il faut que je puisse accéder à la case de la plage2 qui correspond.
Mais je vois pas trop comment faire pour ca.

Ma fonction actuelle est la suivante :
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
Function IdEmprunteurActuel(plage1 As Range) As String
    Dim Cel As Range
    IdEmprunteurActuel = ""
    Dim index As Integer
    index = 0
    Dim trouve As Boolean
    trouve = False
    'Parcourir toute les cellules de la plage
    For Each Cel In plage1
        If trouve = False Then
        
            If Not Cel.Value = "" Then
                index = index + 1
            End If
            If Cel.Value = "" Then
                trouve = True
            End If
        
        End If
    Next Cel
    If trouve = False Then
        IdEmprunteurActuel = ""
    End If
    If trouve = True Then
        If Not index = 0 Then
            IdEmprunteurActuel = plage1(index, 1)
        End If
        If index = 0 Then
            IdEmprunteurActuel = ""
        End If
    End If
End Function
Dans la partie en bleu je voudrais faire la chose suivante (écrit en rouge dans le code ci-dessous) :
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
Function IdEmprunteurActuel(plage1 As Range, plage2 As Range) As String
....

Dim Cel2 As Range
....

For Each Cel In plage1
        Cel2 = next cell de plage2
        If trouve = False Then
        
            If Not Cel.Value = "" Then
                index = index + 1
            End If
            If Cel.Value = "" Then
                If Cel2.Value = "" Then
                      trouve = True
                End If
            End If
        
        End If
    Next Cel

....
End Function
Vous voyez comment faire ?