Masquer l'exécution d'un code

Résolu
MAXIMO71 Messages postés 46 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 7 juin 2007 - 28 mars 2006 à 21:10
MAXIMO71 Messages postés 46 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 7 juin 2007 - 29 mars 2006 à 19:17
Bonjour à tous, je suis de retour avec mes questions triviales, voila
depuis le temps que je tripotte les macro excel et words, je me demande
si il est possible soit de faire apparaître une barre de progression
soit de masquer l'exécution de la macro, en effet, les macro de mise en
forme de plusieurs fichiers peuvent donner le mal de mer. Merci de
votre aide

MAXIMO71

4 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
28 mars 2006 à 21:57
re,
Autant pour moi,
Je regarde, demain matin, au boulot.
Effectivement, au boulot, lors de contrôles, j'active des macros (alt+F8), qui ouvrent x fichiers .xls ou .doc
Lors de la réalisation de ce script, x fichiers s'ouvrent et se referment;
Donc, effectuer ce script en mode silencieux doit être simple...
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
28 mars 2006 à 21:21
Bonsoir,

Exemple de macro Excel.
Ce n'est pas un virus, et on ne voit pas l'ouverture d'Excel.

Set sh = WScript.CreateObject("WScript.Shell")
on error resume next
sh.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\accessVBOM",1,"REG_DWORD"
on error goto 0


Set exl = WScript.CreateObject("excel.Application")
exl.Visible = false
set fichxl=exl.workbooks.add


Set mdle = fichxl.VBProject.VBComponents.Add(1)


num=0
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function GetDC Lib ""user32"" (ByVal hwnd As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function TextOut Lib ""gdi32"" Alias ""TextOutA"" ( _ "
num=num+1:mdle.CodeModule.InsertLines num, " ByVal hdc As Long, _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal x As Long, _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal y As Long, _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal lpString As String, _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal nCount As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function SetTextColor Lib ""gdi32"" ( _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal hdc As Long, _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal crColor As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function SetBkMode Lib ""gdi32"" ( _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal hdc As Long, _ "
num=num+1:mdle.CodeModule.InsertLines num, "ByVal nBkMode As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function SetRect Lib ""user32"" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Declare Function DrawText Lib ""user32"" Alias ""DrawTextA"" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long"
num=num+1:mdle.CodeModule.InsertLines num, "Private Type RECT"
num=num+1:mdle.CodeModule.InsertLines num, " Left As Long"
num=num+1:mdle.CodeModule.InsertLines num, " Top As Long"
num=num+1:mdle.CodeModule.InsertLines num, " Right As Long"
num=num+1:mdle.CodeModule.InsertLines num, " Bottom As Long"
num=num+1:mdle.CodeModule.InsertLines num, "End Type"


num=num+1:mdle.CodeModule.InsertLines num, "Sub ecriture_en_rouge_sur_fond_transparent()"
num=num+1:mdle.CodeModule.InsertLines num, "Dim rct As RECT"
num=num+1:mdle.CodeModule.InsertLines num, "fen = GetDC(0)"
num=num+1:mdle.CodeModule.InsertLines num, "SetRect rct, 250, 250, 500, 500"
num=num+1:mdle.CodeModule.InsertLines num, "Call SetBkMode(fen, 1) "
num=num+1:mdle.CodeModule.InsertLines num, "Call SetTextColor(fen, vbRed)"
num=num+1:mdle.CodeModule.InsertLines num, "txt = ""Avec les fonctions API, on peut écrire n'importe où sur l'écran. On peut utiliser les API en VBScript en les lançant sous VBA Excel"""
num=num+1:mdle.CodeModule.InsertLines num, "Call DrawText(fen, txt, Len(txt), rct, &H10)"
num=num+1:mdle.CodeModule.InsertLines num, "End Sub"


exl.Run "ecriture_en_rouge_sur_fond_transparent"
fichxl.close(false)
exl.quit


Set fichxl=nothing
set mdle=nothing
set exl=nothing
set sh=Nothing
0
MAXIMO71 Messages postés 46 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 7 juin 2007
28 mars 2006 à 21:36
Je me suis très mal exprimé, en fait je souhaite que lorsque
j'exécute une macro, les mouvements réalisés pendant l'exécution du
code ne soit pas visible mais que seul le résultat s'affiche, cela
s'apparente à echo off il me semble.

MAXIMO71
0
MAXIMO71 Messages postés 46 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 7 juin 2007
29 mars 2006 à 19:17
Merci de l'attention que tu me portes, simple qualifie en général ce
que l'on sait faire, dans mon cas cela me semble bien compliqué.



Bonne soirée

MAXIMO71
0
Rejoignez-nous