Finalement, j'ai toujours des plantages, à l'enregistrement il bug, il ne trouve pas mon userform, il n'arrive pas à ouvrir une page,...
J'ai l'impression que la mémoire d’Excel est saturée, j'ai testé sur mes deux pc, sous xp et vista, avec 2go de ram et ça fait sensiblement la même chose.
C'est une gestion de portefeuille virtuel sur les marché américain, le code ouvre les pages de boursorama, retraite les donnés et classe les valeurs. Ensuite un onglet portfolio met à jour mes positions.
SI quelqu'un veut bien regarder mon code et me dire si cela vient de là....
Merci par avance.
Mon code pour un marché financier:
Code:
Private Sub Recup_info_nasdaq()
Range("C17:J111").ClearContents
Set fich = Workbooks.Open("http://www.boursorama.com/international/inter_az_bourse.phtml?pays=Etats-Unis&bourse=indice%3D%24NDX.X")
Range("H23:O63").Copy
Workbooks("Portefeuille_action_USA.xlsm").Activate
Range("C17:I57").PasteSpecial xlPasteValues
Application.CutCopyMode = False
fich.Close (False)
Set fich = Workbooks.Open("http://www.boursorama.com/international/inter_az_bourse.phtml?pays=Etats-Unis&bourse=indice=$NDX.X&LETTRE=&page=1")
Range("H24:O63").Copy
Workbooks("Portefeuille_action_USA.xlsm").Activate
Range("C58:I98").PasteSpecial xlPasteValues
Application.CutCopyMode = False
fich.Close (False)
Set fich = Workbooks.Open("http://www.boursorama.com/international/inter_az_bourse.phtml?pays=Etats-Unis&bourse=indice=$NDX.X&LETTRE=&page=2")
Range("H24:O38").Copy
Workbooks("Portefeuille_action_USA.xlsm").Activate
Range("C98:I112").PasteSpecial xlPasteValues
Application.CutCopyMode = False
fich.Close (False)
End Sub
Private Sub MAJ_NAS()
Application.CutCopyMode = False
Worksheets("NASDAQ_100").Activate
Run "Recup_info_nasdaq"
Run "Remplace2"
Run "NombresStockesEnTexteVersNombres2"
Run "formatnombre2"
Run "couleur2"
Range("A1").Activate
End Sub
Private Sub couleur2()
Dim Coul
For Each Coul In Range("E18:E111")
If Coul.Value < 0 Then
Coul.Font.ColorIndex = 3
Else
Coul.Font.ColorIndex = 4
End If
Next
End Sub
Private Sub Remplace2()
For Each cell In Range("C18:J111")
cell.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End Sub
Private Sub formatnombre2()
Dim Val
For Each Val In Range("J18:J111")
Val.NumberFormat = "0"
Next
For Each Val In Range("F18:I111")
Val.NumberFormat = "0.00"
Next
For Each Val In Range("D18:D111")
Val.NumberFormat = "0.00"
Next
For Each Val In Range("E18:E111")
Val.NumberFormat = "0.00%"
Next
End Sub
Private Sub NombresStockesEnTexteVersNombres2()
Dim Val
Dim longeur
For Each Val In Range("D18:D111")
longeur = Len(Val)
If InStr(1, Val, "(c)") <> 0 Then
Val.Value = Left(Val, longeur - 3)
End If
Next
For Each Val In Range("E18:E111")
longeur = Len(Val)
Val.Value = Left(Val, longeur - 1)
Next
Dim cellule As Range
For Each cellule In Range("D18:I111")
cellule.Value = CDbl(cellule.Value)
Next
For Each Val In Range("E18:E111")
Val.Value = Val / 100
Next
End Sub