XL 2016 Problème de copier coller VBA

otho van

XLDnaute Nouveau
Bonjour,

La macro est assez simple, j'aimerais copier des valeurs d'un fichier Excel vers un autre, lorsque j'exécute mon code étape par étape avec F8 ça marche très bien, dés que je passe en F5, le code s'arrête sur l'affichage du fichier cible (ou je copie les valeurs), donc le copier coller ne se fait pas.
Je ne comprend pas pourquoi ça marche en F8 et pas en F5.

Fichier source : EPEX48
Fichier cible : Ecarts RTE
donc je copie des écarts vers EPEX
La macro se trouve dans le module 2 : Balancing price

Sub Balancing_Price()


Dim WbkC As Workbook ' Classeur cible
Dim WbkS As Workbook ' Classeur Source
Dim ShtC As Worksheet ' Feuille Cible
Dim ShtS As Worksheet ' Feuille source

Set WbkS = ThisWorkbook
Set ShtS = WbkS.Worksheets(1)


On Error GoTo FinMacro
Application.ScreenUpdating = False

'''''''''''''''''''''''''ouvre le cmd et lance python'''''''''''''''''''''''
'ChDrive "C"
'ChDir "C:\Users\NF5941\Documents"
'Shell "python Ecarts_RTE.py"
'
'Application.Wait (Now + TimeValue("0:00:15"))

'''''''''''''''''''''''''''''' ouvre le fichier Ecarts RTE dans lequel les ecarts ont été importées''''''''''''

CreateObject("Shell.Application").Open ("C:\Users\NF5941\Documents\Ecarts_RTE_API.xlsx")
Application.Wait (Now + TimeValue("0:00:03"))


Set ShtC = ActiveWorkbook.Sheets(1)

'''''''''''''''''''''''''''''''''copier coller les elements dans EPEX48''''''''''''''''''''''


ShtC.Range("E10150:F10150").Select WbkC
ShtC.Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
WbkS.Activate
ShtS.Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ShtC.Activate
ActiveWorkbook.Close SaveChanges:=True
ShtS.Activate

FinMacro:
Application.ScreenUpdating = True

End Sub
 

Pièces jointes

  • Ecarts_RTE_API.xlsx
    500.6 KB · Affichages: 8
  • EPEX48_m.xlsb
    54.5 KB · Affichages: 6

cp4

XLDnaute Barbatruc
Bonjour,

La macro est assez simple, j'aimerais copier des valeurs d'un fichier Excel vers un autre, lorsque j'exécute mon code étape par étape avec F8 ça marche très bien, dés que je passe en F5, le code s'arrête sur l'affichage du fichier cible (ou je copie les valeurs), donc le copier coller ne se fait pas.
Je ne comprend pas pourquoi ça marche en F8 et pas en F5.

Fichier source : EPEX48
Fichier cible : Ecarts RTE
donc je copie des écarts vers EPEX
La macro se trouve dans le module 2 : Balancing price
Bonjour,

Je n'ai pas testé mais je pense que ça provient des "Select"
 

cp4

XLDnaute Barbatruc
Tu peux développer ? je ne vois pas ou est le problème avec les select
Je n'ai pas testé ton code. J'ai donc supposé que ça provenait des selects.

En effet, Select ralentit le code.

exemple au lieu de faire un select de la feuille, ensuite un select de la plage par exemple à copier comme ceci:

VB:
Sheets("Ecarts_RTE").Select
Range("A1").CurrentRegion.Select
Selection.Copy
il est préférable de faire comme ceci
Code:
Sheets("Ecarts_RTE").Range("A1").CurrentRegion.Copy
Plus rapide et plus lisible.

Bonne continuation.

Edit: Que veux-tu faire exactement?
 
Dernière édition:

cp4

XLDnaute Barbatruc
Ton code n'a jamais fonctionné même en pas à pas (F8).
En effet, tu ouvres un fichier
VB:
CreateObject("Shell.Application").Open ("C:\Users\NF5941\Documents\Ecarts_RTE_API.xlsx")
et tu actives un autre
Code:
Application.Wait (Now + TimeValue("0:00:03"))
Workbooks("Ecarts_RTE.xlsx").Activate
Ecarts_RTE_API.xlsx<>Ecarts_RTE.xlsx