Lancer la commande exécuter via Excel (Touche Windows+R)

Bonjour, je souhaite si cela est possible lancer la commande exécuter (la fonction RUN) raccourci la touche Windows+ R via excel.

et plus particulièrement lancer une commande via excel

Merci d'avance pour vos retours

Bonjour,

essaie cette macro

Sub WinR()
Dim RetVal As Variant
RetVal = Shell("C:\Windows\System32\cmd.exe", 1)
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "explorer.exe Shell:::{{}2559a1f3-21d7-11d4-bdaf-00c04f60b9f0{}}~"
End Sub

Bonjour,

Merci, effectivement il lance bien la commande winR mais est-il possible de lancer une commande ms-setting ou run

exemple : versifier la version de windows (winver) ou ms-setting (ms-settings:privacy-webcam)

c'est pour cela que j'ai precisé"lancer une commande via excel

Merci de vous êtes penché sur le problème, la moitié du chemin est parcouru ;-)

est-il possible de lancer une commande ms-setting ou run

exemple : versifier la version de windows (winver) ou ms-setting (ms-settings:privacy-webcam)

je ne sais pas ce que c'est !!

j'ai fait ceci comme demandé

lancer la commande exécuter (la fonction RUN) raccourci la touche Windows+ R via excel

il est toujours possible d'ajouter de la commande souhaitée

Application.Wait Now + TimeValue("0:00:01") 
application.sendkeys("ms-settings:privacy-webcam")

qui se mettra automatiquement dans le popup en bas à gauche de l'écran

En gros j'ai un fichier excel avec toutes les commandes ms-setting

ms-settings:surfacehub-accounts
ms-settings:surfacehub-sessioncleanup
ms-settings:surfacehub-calling
ms-settings:surfacehub-devicemanagenent
ms-settings:surfacehub-welcome

et j'aurai aimé sur un clic lancer la commande et la même chose pour run

slui
cttune
dpiscaling
hdwwiz
devicepairingwizard
perfmon
msra
notepad
calc
mblctr
mobsync
wiaacmgr
tabtip
osk
netplwiz
msconfig
mstsc
wab
wmimgmt.msc
shrpubw
recdisc

mais si je dois créer une macro pour chacune des lignes de commande cela ne sera pas pratique

dans ce cas win+r et copier/coller la ligne de commande, sauf si vous avez solution

Merci encore

bonne soirée

dans ce cas win+r et copier/coller la ligne de commande, sauf si vous avez solution

j'ai complété ma réponse, je pense que tu peux tout faire avec des commandes sendkeys

à tester

exemple

Sub WinR()
Dim RetVal As Variant
RetVal = Shell("C:\Windows\System32\cmd.exe", 1)
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "explorer.exe Shell:::{{}2559a1f3-21d7-11d4-bdaf-00c04f60b9f0{}}~"
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "ms-settings:surfacehub-accounts~"
Application.Wait Now + TimeValue("0:00:03")
Application.SendKeys "%{F4}", True
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "explorer.exe Shell:::{{}2559a1f3-21d7-11d4-bdaf-00c04f60b9f0{}}~"
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "ms-settings:surfacehub-sessioncleanup~"
Application.Wait Now + TimeValue("0:00:03")
Application.SendKeys "%{F4}", True
End Sub

Merci beaucoup, mais dans ce cas beaucoup trop de macro à créer

Bonne soirée

Non, car tu mets tout dans la feuille excel et tu fais une boucle sur les données.

Merci encore pour ces précisions, mais cela dépasse largement mais compétences, pour info il y a 115 ru et 197 ms-setting

par contre est-il possible de fermer l'invite de commande.

je vais utiliser votre macro sur les plus importantes mais j'ai besoin que l'invite de commande se ferme après utilisation d'une macro.

Merci pour votre travail.

Bonne soirée

Merci encore pour ces précisions, mais cela dépasse largement mais compétences, pour info il y a 115 ru et 197 ms-setting

par contre est-il possible de fermer l'invite de commande.

A la fin tu doubles

Application.SendKeys "%{F4}", True

pour le reste, je peux te faire la boucle, dis moi si tu es intéressé

Merci beaucoup pour le temps passé ;-)

En ce qui concerne la boucle je ne comprends pas ce que tu entends par là

je ne souhaites pas lancer les" ms-setting" mais avoir une liste de choix ou bien un bouton pour chacun d'entres eux qui me permettrai de le faire.

Mais si jamais tu te lances dans ce travail, combien cela pourrait coûter ?

En ce qui concerne les 'run" cela ai possible pour moi de le faire, je vais chercher l'exe dans Windows\system 32

Merci d'avance

Bonne soirée

A propos cela ne fonctionne pas de doubler Application.SendKeys "%{F4}", True

il ferme tout simplement la dernière action et non la console CMD ( invite de commande dos )

;-)

Merci

je regarderai demain comment faire !

A propos cela ne fonctionne pas de doubler Application.SendKeys "%{F4}", True

il ferme tout simplement la dernière action et non la console CMD ( invite de commande dos )

exemple de la fermeture de l'invite de commande DOS

29winr.xlsm (14.14 Ko)

Vérifie avant tout que la fenêtre commande msdos s'appelle bien chez toi C:\Windows\SysWOW64\cmd.exe

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RetVal As Variant

    If Intersect(Target, Columns("B")) Is Nothing Then Exit Sub
    If Target.Value = "" Then Exit Sub

    Cancel = True
    Target.Offset(0, 1).Select

    On Error Resume Next
        AppActivate "Paramètres": Application.Wait Now + TimeValue("0:00:01"): Application.SendKeys "%{F4}", True
    On Error GoTo 0

    RetVal = Shell("C:\Windows\System32\cmd.exe", 1)
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "explorer.exe Shell:::{{}2559a1f3-21d7-11d4-bdaf-00c04f60b9f0{}}~"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys Target.Value & "~"

    Application.Wait Now + TimeValue("0:00:01")
    On Error Resume Next
        AppActivate "C:\Windows\SysWOW64\cmd.exe": Application.Wait Now + TimeValue("0:00:01"): Application.SendKeys "%{F4}", True
    On Error GoTo 0

End Sub

le fenêtre msdos se ferme automatiquement

la fenêtre de Paramètres se ferme si besoin lors de la fermeture du fichier

on n'est pas à l'abri de quelques ratés avec sendkeys !

Bonjour,

Merci beaucoup pour ce travail, c'est vraiment sympa

Par contre le fenêtre cmd ne se ferme toujours pas ;-)

celle qui s'ouvre se trouve dans sytem32 voici le chemin C:\windows\System32\cmd.exe

c'est vraiment super sympa, nous somme au début d'un projet mon frère et moi et grâce à vous nous allons poursuivre.

Pour info j'ai un windows 7 - 64 bits, je ne sais pas si c'est important pour vous.

Bonne journée

Il faut que tu mettes ici

AppActivate "C:\Windows\SysWOW64\cmd.exe": Application.Wait Now + TimeValue("0:00:01"): Application.SendKeys "%{F4}", True

le nom/le titre qui apparait quand tu lances via le fichier excel ... et ce n'est pas le même nom que lorsque tu lances en direct ! va comprendre pourquoi ?

capture d ecran 557

Il reste que jouer avec sendkeys entre applications peut parfois réserver des surprises !

Merci pour ces explications

en ce qui me concerne lorsque je lance exécuter puis je tape "cmd.exe" le chemin c'est C:\Windows\syteme32 c'est aussi ce qui ce passe lorsque je double clic sur une des lignes dans le tableau que tu m'as envoyé.

mais celui-ci ne se ferme pas, de plus cela désactive le pavé numérique, comme tu le précises il faut s'attendre à des surprises.

et le problème le plus important, c'st que je ne peux plus fermer Excel, sauf en gestionnaire de tache et forcer l'arrêt

Merci ;-)

en ce qui me concerne lorsque je lance exécuter puis je tape "cmd.exe" le chemin c'est C:\Windows\syteme32 c'est aussi ce qui ce passe lorsque je double clic sur une des lignes dans le tableau que tu m'as envoyé.

...

et le problème le plus important, c'st que je ne peux plus fermer Excel, sauf en gestionnaire de tache et forcer l'arrêt

Merci ;-)

Cela m'est arrivé une fois ... peut-être faut-il ne pas vouloir supprimer cette fenêtre ?

Peux-tu me faire une copie d'écran après double clic sur excel en mettant en avant la fenêtre de cmd ?

Essaie aussi de passer ce fichier (inoffensif, je peux te donner le code source) qui donnera le nom des fenêtres.

Après cela, je rends mon tablier !

12liste-fenetres.zip (413.06 Ko)
Run("notepad.exe")
WinWaitActive("[CLASS:Notepad]")
$titre = WinGetTitle("[ACTIVE]", "")

$var = WinList()

send( "Liste des fenêtres ouvertes :" & @LF & @LF )

For $i = 1 to $var[0][0]
  ; Only display visble windows that have a title
  If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then
    send( "Titre :{TAB}{TAB}" & $var[$i][0] & @LF &  "Handle : {TAB}" & $var[$i][1] & @LF & @LF)
  EndIf
Next

Func IsVisible($handle)

  If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
  Else
    Return 0
  EndIf

EndFunc

exit

Un grand merci pour votre travail. je vous souhaite une agréable journée

Rolins

Rechercher des sujets similaires à "lancer commande executer via touche windows"