Conflit

Résolu
Bonjour,

J'ai un petit souci avec deux codes qui rentrent en conflit, je n'arrive pas à trouver la solution, pas très calé, je veux bien un coup de main s'il vous plait.
Problème : La macro 2 marche bien mais la macro 1 bloque sur erreur 9 "l'indice m'appartient pas à la sélection" (ouverture du fichier "transfertplanning") depuis que j'ai mis en place la macro 2.
J'aimerais appliquer la macro 2 quelque soit le mode de fermerture du fichier "Exploit2016".

Voilà,
1 - une macro de fermeture automatique du fichier après un temps d'inactivité.
2 - Une macro before-close
3 - Thisworkbook

1 -
Option Explicit
Option Private Module
'Ti
'Delai est le temps d'inactivité maxi en minutes
Const Delai = 1
Sub Programmation()
If ActiveWorkbook.ReadOnly Then Exit Sub
Dim Heure As Date
Heure = Now + TimeValue("00:" & Delai & ":00")
ThisWorkbook.Names.Add Name:="ChronoTime", RefersTo:=Heure
ThisWorkbook.Names.Add Name:="Chrono", RefersTo:=0
Application.OnTime Heure, "Interruption"
End Sub
Private Sub Interruption()
If ActiveWorkbook.ReadOnly Then Exit Sub
With ThisWorkbook
If .ActiveSheet.Evaluate("Chrono") = 0 Then
.Save
.Close
Else
Programmation
End If
End With
End Sub
Sub SupprimeInterruption()
Dim Heure As Date
On Error Resume Next
Heure = ThisWorkbook.Sheets(1).Evaluate("ChronoTime")
Application.OnTime Heure, "Interruption", schedule:=False
End Sub
-------------------------------------------------------------------------------
2
Sub macrocopie()
'
' Macro1 Macro
' Macro enregistrée le 23/11/2015
'
'code pour éviter de voir le défilement de la macro
Application.ScreenUpdating = False
'code pour éviter les alertes de vidange du presse-papier
Application.DisplayAlerts = False
'
ChDir "C:\Documents and Settings\bonpla\Bureau"
Workbooks.Open Filename:= _
"C:\Documents and Settings\bonpla\Bureau\transfertplanning.xls"
Windows("Exploit2016.xls").Activate
Range("B6") = Now
Cells.Select
Selection.Copy
Windows("transfertplanning.xls").Activate
Cells.Select
ActiveSheet.Paste
Range("A3").Select
ActiveWorkbook.Save
Windows("transfertplanning.xls").Close
Windows("Exploit2016.xls").Activate
Range("A3").Select
Application.CutCopyMode = False

'Réactiver les alertes
Application.DisplayAlerts = True
'Reactiver le défilement de la macro
Application.ScreenUpdating = True

End Sub

------------------------------------------------------------------------------
Dans thisworkbook

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
macrocopie
SupprimeInterruption
End Sub

Private Sub Workbook_Open()
Programmation
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
ThisWorkbook.Names("Chrono").Value = 1
End Sub

Merci à tous ceux qui se pencheront sur mon problème.

Cowboy56

1 réponse

  1. Bonjour
    Dans la macro 2, remplacez
    ChDir "C:\Documents and Settings\bonpla\Bureau"
    Workbooks.Open Filename:= _
    "C:\Documents and Settings\bonpla\Bureau\transfertplanning.xls" 

    par
    ChDir "C:\Documents and Settings\bonpla\Bureau\"
    Workbooks.Open Filename:="transfertplanning.xls"

    A tester
    Cdlt
    1. Bonjour,

      Merci pour la réponse mais pas de résultat après le remplacement.
      je reste en attente d'une solution.
    2. @cowboy56Bonjour
      Y a t-il toujours le même message d'erreur? toujours sur la même ligne?
    3. Bonjour,
      Non, ça bloque au niveau de la ligne de code que vous m'avez donné.
      Erreur d'éxécution 1004 - fichier introuvable
    4. C'est peut-être ma orthographié, Utilisez l'enregistreur de macro pour ouvrir le fichier et récupérez le chemin et le nom du fichier et comparez avec les lignes de votre code.
    5. je suis passé par l'enregistreur de macro, cela donne exactement la ligne que j'avais, le problème ne semble pas venir de là.