Bonjour,

Je suis nouveau sur ce forum et j'aimerais avoir un petit coup de pouce. Je travaille sur un projet ou l'on doit récuperer un signal tout ou rien (0 ou 1) d'un automate sur une feuille excel via liaison DDE. Le but est de générer un CSV toutes les heures et donc de pouvoir exploiter ces données par la suite.
On veut que cela soit automatiser. J'ai donc programmer 3 programme en .bat pour cela (Je sais que c'est hors du sujet du forum mais je les mets au cas ou).
BAT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
@ECHO OFF
 
 
 
start "" "C:\Users\f.chaloin-externe\Desktop\bat1.bat"
start "" "C:\Users\f.chaloin-externe\Desktop\bat2.bat"
 
exit
BAT1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
@ECHO OFF
 
 
"C:\Users\f.chaloin-externe\Desktop\Original - Copie1.csv"  
 
rem/cmd/macro1  
remC:\Program Files (x86)\Microsoft Office\Office14\XLSTART\Personal.xlam
 
rem "C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" 
 
 
exit

BAT2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
@ECHO OFF
 
 
ping -n 15 localhost
 
TASKKILL /f /T /im excel.exe 
 
exit
Voila ma macro:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
59
60
61
Sub Macro1()
 
 
    Application.AskToUpdateLinks = False
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
 
    Range("A1").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H1"
    Range("A2").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H2"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H3"
    Range("A4").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H4"
    Range("A5").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H5"
    Range("A6").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H6"
    Range("A7").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H7"
    Range("A8").Select
    ActiveCell.FormulaR1C1 = _
        "=CoDeSys|'C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Projects\wago.PRO'!PLC_PRG.H8"
    Range("A9").Select
 
    Range("A1,A1,A2,A3,A4,A6,A5,A7,A8").Select
    Range("A8").Activate
    Selection.NumberFormat = "@"
    'Application.Wait Now + TimeValue("00:00:05")
 
If Dir("Y:\DMS\Chaloin_Florent\Recuperation\*.csv") <> "" Then
Kill "Y:\DMS\Chaloin_Florent\Recuperation\*.csv"
End If
 
    Range("A1,A2,A3,A4,A5,A6,A7,A8").Select
    Range("A8").Activate
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 
 
Dim Chemin As String, Fichier As String
Chemin = "Y:\DMS\Chaloin_Florent\Recuperation\"
'Ajoute la date du jour et l'heure dans le nom du fichier
Fichier = "Données " & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hh-mm-ss") & ".csv"
ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:= _
        xlCSV, _
CreateBackup:=False
 
 
 
End Sub
Et donc si je veux exécuter ma macro au démarrage d'excel en la mettant dans le workbook, la macro beug des la première instruction quel qu'elle soit. Je fait debogage et je demarre la macro manuellement et sa marche. Je pense que c'est parce que la macro s'execute avant l'ouverture de la feuille excel.
Voila si quelqu'un as une petite idée même des conseils et dites moi si mon post est incomplet merci beaucoup.