69 lines
1.5 KiB
Plaintext
69 lines
1.5 KiB
Plaintext
' set_cell_silent.vbs
|
||
' Usage: cscript //nologo set_cell_silent.vbs "C:\chemin\fichier.xlsm" "NomFeuille" "A1" "Valeur"
|
||
|
||
Option Explicit
|
||
Dim f, sheetName, addr, val
|
||
Dim xl, wb, ws
|
||
|
||
If WScript.Arguments.Count < 4 Then
|
||
WScript.Echo "[ERR] Args: set_cell_silent.vbs <fichier.xlsm> <feuille> <cellule> <valeur>"
|
||
WScript.Quit 1
|
||
End If
|
||
|
||
f = WScript.Arguments(0)
|
||
sheetName = WScript.Arguments(1)
|
||
addr = WScript.Arguments(2)
|
||
val = WScript.Arguments(3)
|
||
|
||
On Error Resume Next
|
||
Set xl = CreateObject("Excel.Application")
|
||
If Err.Number <> 0 Then
|
||
WScript.Echo "[ERR] Excel non disponible (" & Err.Description & ")"
|
||
WScript.Quit 1
|
||
End If
|
||
On Error GoTo 0
|
||
|
||
xl.Visible = False
|
||
xl.DisplayAlerts = False
|
||
|
||
' Désactiver macros et événements AVANT d’ouvrir
|
||
On Error Resume Next
|
||
xl.AutomationSecurity = 3 ' msoAutomationSecurityForceDisable
|
||
xl.EnableEvents = False
|
||
xl.ScreenUpdating = False
|
||
On Error GoTo 0
|
||
|
||
On Error Resume Next
|
||
Set wb = xl.Workbooks.Open(f, False, False)
|
||
If Err.Number <> 0 Then
|
||
xl.Quit
|
||
WScript.Echo "[ERR] Ouverture classeur: " & Err.Description
|
||
WScript.Quit 1
|
||
End If
|
||
On Error GoTo 0
|
||
|
||
On Error Resume Next
|
||
Set ws = wb.Worksheets.Item(sheetName)
|
||
If Err.Number <> 0 Then
|
||
wb.Close False
|
||
xl.Quit
|
||
WScript.Echo "[ERR] Feuille introuvable: " & sheetName
|
||
WScript.Quit 1
|
||
End If
|
||
On Error GoTo 0
|
||
|
||
On Error Resume Next
|
||
ws.Range(addr).Value2 = val
|
||
If Err.Number <> 0 Then
|
||
wb.Close False
|
||
xl.Quit
|
||
WScript.Echo "[ERR] Ecriture cellule " & addr & " : " & Err.Description
|
||
WScript.Quit 1
|
||
End If
|
||
On Error GoTo 0
|
||
|
||
wb.Save
|
||
wb.Close False
|
||
xl.Quit
|
||
WScript.Quit 0
|