Salut,

Impossible de trouver pourquoi ma macro ne fonctionne pas...
C'est une macro sensée être toute bête qui doit récupérer des indexs de consommation existants dans mon classeur pour ensuite calculer les consommations en faisant une soustraction.
La macro n'est pas terminée mais je n'arrive pas à ce que mes 2 dernières lignes fonctionnent...

Si une âme charitable passe par là et comprend le sujet, l'avis m'intéresse.

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
Sub Conso_Mensuel()
    Dim Year, YearPrecedent As Integer
    Dim Feuille_Index, Feuille_IndexPrecedent As Worksheet
    Dim IndexJanvier, IndexFevrier, IndexMars, IndexAvril, IndexMai, IndexJuin As Single
    Dim IndexJuillet, IndexAout, IndexSeptembre, IndexOctobre, IndexNovembre, IndexDecembre As Single
    Dim ConsoJanvier, ConsoFevrier, ConsoMars, ConsoAvril, ConsoMai, ConsoJuin As Single
    Dim ConsoJuillet, ConsoAout, ConsoSeptembre, ConsoOctobre, ConsoNovembre, ConsoDecembre As Single
 
    ' ATTENTION ! Les feuilles sont définies dans le module A_Variables_Globales !!!
    Call Attrib_Variables
 
    'Attribution d'une variable à la feuille de destination
    'L'année affichée par défaut est l'année indiquée dans l'inputbox, elle peut être modifiée
    Year = Application.InputBox("Quelle année d'export ?", , "2015", , , , "Saisie numérique", Type:=1)
    'Year = 2015 'sert à tester le pas à pas
    YearPrecedent = Year - 1
    Set Feuille_Index = Sheets("Conso " & Year)
 
    ' Recherche de la dernière cellule non vide de la feuille de destination
    Feuille_Index.Activate
    FinalRow = Feuille_Index.Cells(Rows.Count, 1).End(xlUp).Row
 
    ' Recherche à partir de la ligne (ici 3) jusqu'à la dernière cellule non vide
    For x = 3 To FinalRow
        ' Données initiales
        IndexJanvier = Feuille_Index.Cells(x, 4).Value
        IndexFevrier = Feuille_Index.Cells(x, 5).Value
        IndexMars = Feuille_Index.Cells(x, 6).Value
        IndexAvril = Feuille_Index.Cells(x, 7).Value
        IndexMai = Feuille_Index.Cells(x, 8).Value
        IndexJuin = Feuille_Index.Cells(x, 9).Value
        IndexJuillet = Feuille_Index.Cells(x, 10).Value
        IndexAout = Feuille_Index.Cells(x, 11).Value
        IndexSeptembre = Feuille_Index.Cells(x, 12).Value
        IndexOctobre = Feuille_Index.Cells(x, 13).Value
        IndexNovembre = Feuille_Index.Cells(x, 14).Value
        IndexDecembre = Feuille_Index.Cells(x, 15).Value
        ' Données à calculer
        ConsoJanvier = Feuille_Index.Cells(x, 16)
        ConsoFevrier = Feuille_Index.Cells(x, 17)
        ConsoMars = Feuille_Index.Cells(x, 18)
        ConsoAvril = Feuille_Index.Cells(x, 19)
        ConsoMai = Feuille_Index.Cells(x, 20)
        ConsoJuin = Feuille_Index.Cells(x, 21)
        ConsoJuillet = Feuille_Index.Cells(x, 22)
        ConsoAout = Feuille_Index.Cells(x, 23)
        ConsoSeptembre = Feuille_Index.Cells(x, 24)
        ConsoOctobre = Feuille_Index.Cells(x, 25)
        ConsoNovembre = Feuille_Index.Cells(x, 26)
        ConsoDecembre = Feuille_Index.Cells(x, 27)
 
        'Vérifie si la feuille contenant les index de l'année précédente existe
        'FeuilleExiste est une fonction public qui est stockée dans le module Variables_Globales
        If FeuilleExiste("Conso " & Year - 1) = True Then
            Set Feuille_IndexPrecedent = Sheets("Conso " & YearPrecedent)
            IndexDecembrePrec = Feuille_IndexPrecedent.Cells(x, 15).Value
            ConsoJanvier = IndexJanvier - IndexDecembrePrec
        End If
        ConsoJanvier = 0 'Cette ligne ne sécrit pas
        ConsoFevrier = IndexFevrier - IndexJanvier 'Cette ligne ne s'écrit pas non plus
 
        'Macro à continuer quand cela fonctionnera au-dessus
 
    Next x
 
End Sub

[EDIT]J'ai supprimé la PJ, je me suis rendu compte après qu'elle n'était peut-être pas suffisamment anonyme.[EDIT]