Erreur 6 overflow pour une variable de type long à 40000
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:
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