En VBA, je voudrais exécuter un fichier << .reg >> afin de modifier la
base de registre pour l'utilisateur. Sur la session de l'utilisateur, si
je double-clique sur le fichier .reg en question, il s'exécute bien et
demande une confirmation.
Lorsque je tente de le lancer via le VBA il m'affiche une erreur
d'exécution 5. Argument ou appel de procédure incorrect.
Je ne cherche pas forcément à lancer le reg et qu'il s'exécute sans
boite de dialogue. Si il se lance avec demande de confirmation (comme
lorsque l'on clique dessus) cela me conviendra parfaitement.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Geo
Bonjour
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif : Shell ("D:progGIEO1.reg")
Bonjour
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin :
Shell ("D:progGIEO1.reg", vbNormalFocus)
vous pouvez aussi essayer sans le deuxième argument qui est facultatif
:
Shell ("D:progGIEO1.reg")
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif : Shell ("D:progGIEO1.reg")
HD
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur. @+ HD
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin :
Shell ("D:progGIEO1.reg", vbNormalFocus)
vous pouvez aussi essayer sans le deuxième argument qui est facultatif
Shell ("D:progGIEO1.reg")
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur. @+ HD
DanielCo
Bonjour, Peut-être : Rep=Shell("D:progGIEO1.reg", vbNormalFocus) Cordialement. Daniel
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur. @+ HD
Bonjour,
Peut-être :
Rep=Shell("D:progGIEO1.reg", vbNormalFocus)
Cordialement.
Daniel
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin :
Shell ("D:progGIEO1.reg", vbNormalFocus)
vous pouvez aussi essayer sans le deuxième argument qui est
facultatif Shell ("D:progGIEO1.reg")
Bonjour, Peut-être : Rep=Shell("D:progGIEO1.reg", vbNormalFocus) Cordialement. Daniel
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur. @+ HD
HB
Bonjour, 1) Puisque la fonction SHELL prévoit un retour (qui est l'ID du processus, je crois) il faut aussi le prévoir. 2) La commande REG est bien plus riche et pratique que regedit. 3) On peut mettre le chemin vers l'extrait (*.reg) en argument de cette sub ... Ainsi, cela peut servir à plusieurs choses. Testé et qui marche : Sub MetREG(CheminREG As String) Dim LIGNECOMMANDE As String Dim Bidon As Variant LIGNECOMMANDE = "REG import " & Chr(34) & CheminREG & Chr(34) Bidon = Shell(LIGNECOMMANDE, vbNormalNoFocus) End Sub Sub TEST() MetREG "D:TempTruc Bidon.reg" End Sub Cordialement, HB Le 12/10/2016 à 14:25, HD a écrit :
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur. @+ HD
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
Bonjour,
1) Puisque la fonction SHELL prévoit un retour
(qui est l'ID du processus, je crois)
il faut aussi le prévoir.
2) La commande REG est bien plus riche et pratique que regedit.
3) On peut mettre le chemin vers l'extrait (*.reg) en argument
de cette sub ... Ainsi, cela peut servir à plusieurs choses.
Testé et qui marche :
Sub MetREG(CheminREG As String)
Dim LIGNECOMMANDE As String
Dim Bidon As Variant
LIGNECOMMANDE = "REG import " & Chr(34) & CheminREG & Chr(34)
Bidon = Shell(LIGNECOMMANDE, vbNormalNoFocus)
End Sub
Sub TEST()
MetREG "D:TempTruc Bidon.reg"
End Sub
Cordialement,
HB
Le 12/10/2016 à 14:25, HD a écrit :
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin :
Shell ("D:progGIEO1.reg", vbNormalFocus)
vous pouvez aussi essayer sans le deuxième argument qui est facultatif
Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur.
@+
HD
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Bonjour, 1) Puisque la fonction SHELL prévoit un retour (qui est l'ID du processus, je crois) il faut aussi le prévoir. 2) La commande REG est bien plus riche et pratique que regedit. 3) On peut mettre le chemin vers l'extrait (*.reg) en argument de cette sub ... Ainsi, cela peut servir à plusieurs choses. Testé et qui marche : Sub MetREG(CheminREG As String) Dim LIGNECOMMANDE As String Dim Bidon As Variant LIGNECOMMANDE = "REG import " & Chr(34) & CheminREG & Chr(34) Bidon = Shell(LIGNECOMMANDE, vbNormalNoFocus) End Sub Sub TEST() MetREG "D:TempTruc Bidon.reg" End Sub Cordialement, HB Le 12/10/2016 à 14:25, HD a écrit :
Shell ("D:progGIEO1.reg"), vbNormalFocus
Je mettrais plutôt la parenthèse à la fin : Shell ("D:progGIEO1.reg", vbNormalFocus) vous pouvez aussi essayer sans le deuxième argument qui est facultatif Shell ("D:progGIEO1.reg")
J'ai toujours le même message d'erreur. @+ HD
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus
HD
Rep=Shell("D:progGIEO1.reg", vbNormalFocus)
Cela ne change rien. D'après mes recherches, cela pourrait être lié au fait qu'en ligne de commande regedit aurait besoin d'une élévation de privilège... Lorsque l'on Shell("regedit.exe") ne fonctionne pas alors que Shell("notepad.exe") fonctionne parfaitement. @+ HD
Rep=Shell("D:progGIEO1.reg", vbNormalFocus)
Cela ne change rien. D'après mes recherches, cela pourrait être lié au
fait qu'en ligne de commande regedit aurait besoin d'une élévation de
privilège... Lorsque l'on
Cela ne change rien. D'après mes recherches, cela pourrait être lié au fait qu'en ligne de commande regedit aurait besoin d'une élévation de privilège... Lorsque l'on Shell("regedit.exe") ne fonctionne pas alors que Shell("notepad.exe") fonctionne parfaitement. @+ HD
HD
Parfait !!! Si regedit ne fonctionne pas en VBA... REG lui permet effectivement de fonctionner et ce sans aucun message de confirmation. Merci à vous tous pour votre aide, @+ HD
Parfait !!!
Si regedit ne fonctionne pas en VBA... REG lui permet effectivement de
fonctionner et ce sans aucun message de confirmation.
Parfait !!! Si regedit ne fonctionne pas en VBA... REG lui permet effectivement de fonctionner et ce sans aucun message de confirmation. Merci à vous tous pour votre aide, @+ HD
MichD
Bonjour, Je crois qu'il y a aussi ceci, évidemment je n'ai pas testé! '---------------------------------------------------------- Sub test() Dim X As WshShell.Shell Dim MyFile As String Dim WshShell As Object MyFile = "C:UsersMichDDocumentsMyFile.Reg" Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "Regedit.exe /s "" & MyFile & """, 0, True 'OU WshShell.Run "regedit /s C:UsersMichDDocumentsMyFile.Reg", 0, True End Sub '---------------------------------------------------------- MichD
Bonjour,
Je crois qu'il y a aussi ceci, évidemment je n'ai pas testé!
'----------------------------------------------------------
Sub test()
Dim X As WshShell.Shell
Dim MyFile As String
Dim WshShell As Object
MyFile = "C:UsersMichDDocumentsMyFile.Reg"
Set WshShell = WScript.CreateObject("WScript.Shell")
Bonjour, Je crois qu'il y a aussi ceci, évidemment je n'ai pas testé! '---------------------------------------------------------- Sub test() Dim X As WshShell.Shell Dim MyFile As String Dim WshShell As Object MyFile = "C:UsersMichDDocumentsMyFile.Reg" Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "Regedit.exe /s "" & MyFile & """, 0, True 'OU WshShell.Run "regedit /s C:UsersMichDDocumentsMyFile.Reg", 0, True End Sub '---------------------------------------------------------- MichD