Salut à tous,
Une fois de plus je me tourne vers vous à cause d'un p'tit probleme de code.
Je vais essayer de faire simple…

J'ai une feuille excel dans laquelle, j'ai saisi des relevés météo (en ligne) et chaque relevé contient plusieurs valeurs (en colonne): date, n° de zone , % d'hygro, température….

J'ai une deuxieme feuille qui contient la liste des Feux de foret du département avec la date, la commune la surface brûlée etc, et sur chaque ligne feux de foret je veux récupérer la météo correspondante pour la coller à la suite des donnée FdF.

Ma boucle principale (simplifiée) correspond à ça:
- Pour chaque ligne FdF
-Si j'ai déjà une météo de saisie, je passe à la ligne suivante
-Sinon je vais chercher la météo correspondante dans ma feuille météo

Et c'est là que ça merdouille…, je pensais avoir bien défini mes variables, mes zones de données à tester, etc mais en éxécution pas à pas, lorsque j'arrive à la ligne 76 (lignes en rouge dans le code), j'ai le méssage d'erreur:

"L'indice n'appartient pas à la séléction", je comprend bien que j'ai probablement mal initialisé ma zone de recherche "Liste_Météo_griffon" mais

je ne vois pas pourquoi,
Le code n'est pas long, je vous le met en entier, j'ai essayer de le commenté au mieux, mais bon…

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Sub FdF()
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

With Sheets("Liste des FdF")

    Dim Nb_FdF As Integer 'nbr de feux
    Nb_FdF = .Range("C150").End(xlUp).Row - 3

    Dim Compt As Integer  'compteur pour la boucles des FdF
    Compt = 4

    Dim Derniere_Ligne_FdF As Integer 'N° de la derniere ligne FdF y compris les incomplets
    Derniere_Ligne_FdF = .Range("C150").End(xlUp).Row

    Dim List_FdF As Range 'range contenant un FdF de renseigné de B4 à B& Derniere_ligne_FdF
    Set List_FdF = .Range(.Cells(4, 2), .Cells(Derniere_Ligne_FdF, 2))

    Dim Météo_FdF As Range    'Range de W4 à W& Derniere_ligne_FdF
    Set Météo_FdF = .Range(.Cells(4, 23), .Cells(Derniere_Ligne_FdF, 23))

End With

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

With Sheets("Param2")

    Dim Tableau_Zone_Griffon As Range 'Tableau de liaison Commune -> N°_Zone_Griffon
    Set Tableau_Zone_Griffon = .Range("V3:X473")

End With

'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

With Sheets("Météo griffon")

    Dim Derniere_Ligne_Météo_Griffon As Integer 'derniere météo Griffon
    Derniere_Ligne_Météo_Griffon = .Range("C65536").End(xlUp).Row

    Dim Tableau_Météo_Griffon As Range ' tableau contenant toute les météo Griffon
    Set Tableau_Météo_Griffon = Range(.Cells(2, 3), .Cells(Derniere_Ligne_Météo_Griffon, 17))

    Dim Liste_Météo_griffon As Range
    Set Liste_Météo_griffon = Range(.Cells(2, 3), .Cells(Derniere_Ligne_Météo_Griffon, 3))

End With

'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

'Boucle: Verification si météo griffon saisie ou pas pour chaque FdF

Dim Test_FdF As Range     'chaque cellule contenu dans la zone "List_FdF"
Dim Test_Griffon As Range 'Chaque cellule contenu dans la zone "List_Météo_Griffon"
Dim Commune_FdF As String 'Commune du FdF
Dim Date_FdF As Date      'Date du FdF
Dim N°_Zone_FdF As Integer     'N° de zone "griffon" de la "Commune_FdF"

Dim Date_Griffon As Date  'date météo griffon
Dim N°_Zone_Griffon As Integer 'N° de zone "griffon" dans "MétéoGriffon"
Dim Données_Griffon As Range   'Range à copier (en W& Compt)
Dim Compt_Griffon As Integer
Compt_Griffon = 2

For Each Test_FdF In Météo_FdF

    If Test_FdF.Value = "" Then
    
        'si la cellule "Test_cellule_météo" est vide:
        
        Commune_FdF = Sheets("Liste des FdF").Range("G" & Compt).Value
        Date_FdF = Sheets("Liste des FdF").Range("C" & Compt).Value        N°_Zone_FdF = Application.WorksheetFunction.VLookup(Commune_FdF, Tableau_Zone_Griffon, 3)
        Sheets("Liste des FdF").Range("AL" & Compt).Value = N°_Zone_FdF 'affichage pour verif
        
        For Each Test_Griffon In Liste_Météo_griffon
            
            Date_Griffon = Sheets("Météo_griffon").Range("D" & Compt_Griffon).Value
            N°_Zone_Griffon = Sheets("Météo_griffon").Range("C" & Compt_Griffon).Value            
            If Date_Griffon = Date_FdF And N°_Zone_Griffon = N°_Zone_FdF Then
            ' recherche et selection des données griffon à Coller sur chaque FdF
            Donnée_Griffon = Sheets("Météo_griffon").Range(Cells(5, Compt_Griffon), Cells(17, Compt_Griffon))
            
            End If
            
        Compt_Griffon = Compt_Griffon + 1

        Next Test_Griffon
        
    Else
    
        'Sinon:
        'Cette parti du code sera supprimée car si la météo est renseignée,
        'inutile de faire la recherche...
        Commune_FdF = Sheets("Liste des FdF").Range("G" & Compt).Value
        Date_FdF = Sheets("Liste des FdF").Range("C" & Compt).Value
        N°_Zone_FdF = Application.WorksheetFunction.VLookup(Commune_FdF, Tableau_Zone_Griffon, 3)
        Sheets("Liste des FdF").Range("AL" & Compt).Value = N°_Zone_FdF 'affichage pour verif
       
    End If
    
Compt = Compt + 1

Next Test_FdF
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

End Sub
merci encore pour votre aide..