Bonjour,

Je ne suis pas super callé en VBA. Je dirai d'ailleurs un novice.
Je dois réaliser un programme en VBA pour:

- Rechercher dans une plage à plusieurs colonnes et lignes (Ex: C5:P6), une valeur X. La valeur ne pouvant se retrouver qu'une seule fois par ligne mais sur plusieurs colonne en fonction de l'index de la ligne.
- Le programme devra afficher sous forme de tableau, l'ensemble des contenus de cellules qui précedent la valeur recherchée en parcourant dans le sens de la ligne.
J'ai donc commencé un draft ci après (en voulant adapté un programme que j'ai vu sur le net) et je voudrais bénéficier de votre aide et expérience sur le sujet.

Merci de votre aide

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
Sub Recherche_Afichage()
 
Dim Plage As Range
Dim Lignes(), i As Long
Dim Site As String
Dim Flag As Boolean
 
 
Set Plage = Workbooks("Fichier source.xlsm").Sheets("Détails BeB").Range("O:W") 'plage de recherche
Site = "X"  'Site recherché à spécifier
 
Flag = Find_Next(Plage, Site, Lignes())  
 
If Flag Then  
 
 
 
 
    Next i
 
Else
    MsgBox "Ce : " & Site & " n'a pas été trouvé dans la plage fixée : " & Plage.Address
End If
 
End Sub
 
 
Function Find_Next(Rng As Range, Site As String, Tbl()) As Boolean
 
 
Dim Nbre As Integer, Lig As Long, n As Long
 
    Nbre = Application.CountIf(Rng, Site)
 
    If Nbre > 0 Then
        'ReDim Tbl(Nbre)
        Lig = 1
        For n = 1 To Nbre
            If Cells(Lig, Rng.Column) = Site Then
 
                Lig = Rng.Find(Site, Cells(Lig, Rng.Column), xlValues).Row
                Tbl(n) = Lig
 
            Else
            End If
 
        Next n
 
    Else
        GoTo Absent
    End If
    Find_Next = True
    Exit Function
Absent:
    Find_Next = False
 
 
End Function