Bonjour,

J'ai un soucis d'overflow que je n'explique pas étant donné que je suis bien loin de limite max théorique du long, surtout que cette partie du code est utilisée sur un ppt et qu'elle y fonctionne parfaitement.

Je fais une macro pour mettre a jour les liens de mes classeurs excel qui changent tous les mois, ce qui c'est par exemple 042016 -> 052016
Donc pour ce faire je calcule mois *10000 + année et là erreur overflow ??

J'ai vérifié au moment de l'erreur mes variables sont bien des long (même avec des variant j'ai le problème), les variables année et mois ont bien les bonnes valeurs.
Bref je ne vois vraiment pas d'où viens le problème.

le code:
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 ChgtLiaison()
Dim strLink As String
Dim i As Integer
Dim varLinks As Variant
Dim strAncien As String
Dim strNouveau As String
Dim annee_a As Integer
Dim mois_a As Integer
Dim annee_n As Integer
Dim mois_n As Integer
Dim val2_a As String
Dim val2_n As String
Dim val_a As Long
Dim val_n As Long

Select Case Month(Date)
Case 1
    annee_a = Year(Date) - 1
    mois_a = 11
    annee_n = Year(Date) - 1
    mois_n = 12
Case 2
    annee_a = Year(Date) - 1
    mois_a = 12
    annee_n = Year(Date)
    mois_n = Month(Date) - 1
Case Else
    annee_a = Year(Date)
    mois_a = Month(Date) - 2
    annee_n = Year(Date)
    mois_n = Month(Date) - 1
End Select
val_a = mois_a * 10000 + annee_a
val_n = mois_n * 10000 + annee_n
val2_a = mois_a & "_" & annee_a
val2_n = mois_n & "_" & annee_n
' Charge la liste des liaisons dans varLinks
varLinks = ThisWorkbook.LinkSources

 If Not IsEmpty(varLinks) Then

     ' Boucle sur la liste des liaisons

     For i = 1 To UBound(varLinks)

         ' Met le lien à jour.
                strAncien = varLinks(i)
                strNouveau = Replace(strAncien, val_a, val_n)
                strNouveau = Replace(strAncien, val2_a, val2_n)
                strNouveau = Replace(strNouveau, annee_a, annee_n)
                MsgBox "ancien: " & varLinks(i) & Chr(10) & "nouveau: " & strNouveau
                'ThisWorkbook.ChangeLink varLinks(i), strNouveau

     Next i

 End If
End Sub
Merci d'avance pour toute aide que vous pourriez m'aporter