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:
Merci d'avance pour toute aide que vous pourriez m'aporter
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
Partager