Re : Macro fonctionne sur un ordi et ne fait rien sur un autre
Bonjour,
Il s'agit d'Excel 2003.
Il ne s'agit pas d'un problème réseau, car cela se passe sur l'ordi.
Niveau de sécurité: Excel me demande à l'ouverture des documents si les macros doivent être exécutés et je réponds par l'affirmative. Cela devrait être ok, ou non?
J'explique un peu ce qui se passe: J'ai 2 fichiers ouverts et des données doivent être copiées de l'un dans l'autre en appuyant sur un bouton. Dans les configurations où cela fonctionne le bouton reste "enfoncé" pendant 1 à 2 secondes; dans celle où cela ne fonctionne pas, il 'enfonce seulement pendant un bref laps de temps et rien ne se passe. J'ai fermé le fichier de destination, et là je reçois tout de même un message d'erreur; VBA n'est donc pas endormi.
Voici le code:
Dim rngCell As Range
Dim lngLine As Long
Dim arColumns() As Variant
Dim varColumn As Variant
arColumns = Array(1, 3, 6, 9, 10, 11, 12, 13)
Range("W1").Value = Range("tab_01").Offset(intMonth - 1).Value
Range("B1").Calculate
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
With Workbooks("XYZ 2010.xls").Worksheets("Feuil1")
' définir la dernière cellule de la colonne B
lngLine = .Cells(.Rows.Count, 13).End(xlUp).Row + 1
For Each rngCell In Range(Range("R4"), Range("R4").End(xlDown))
If Abs(Val(rngCell.Offset(, 10).Value)) > 0.001 Or Abs(Val(rngCell.Offset(, 11).Value)) > 0.0001 Then
For Each varColumn In arColumns
.Cells(lngLine, varColumn).Value = rngCell.Offset(, varColumn - 1).Value
Next
lngLine = lngLine + 1
End If
Next
End With
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
End Sub
Je ne sais pas si ce code est assez éloquent pour y détecter un problème.
VBA se bloque à la ligne "With Workbooks("XYZ 2010.xls")....lorsque le fichier de destination est fermé.
Merci pour votre aide
Aloha