créer un macro excel qui écrit une chaine de caractère dans DOS

créer un macro excel qui écrit une chaine de caractère dans DOS - VB/VBA/VBS - Programmation

Marsh Posté le 21-04-2006 à 14:10:08    

salut
 
je cherche a faire un macro qui écrit un texte contenu dans un cellule d'excel dans un fenètre DOS.
J'arrive a l'exécuter, mais pas a écrire le texte qu'estce que je doit utiliser pour ça ? print ?

Reply

Marsh Posté le 21-04-2006 à 14:10:08   

Reply

Marsh Posté le 21-04-2006 à 14:32:11    

Quel est l'intérêt d'écrire un texte dans une fenêtre DOS. L'utilisateur d'Excel voit déjà le texte dans Excel, pourquoi l'afficher en plus dans une fenêtre ?
Peut-être que c'est avec l'idée (fausse) qu'un programme pourrait plus facilement récupérer ce texte s'il était dans une fenêtre DOS plutôt que dans Excel.
A mon humble avis, il serait préférable d'écrire ce texte dans un fichier, par exemple :

Open "toto.txt" For Output As #1
Print #1 "Voici le contenu de la cellule E2"
Print #1 ActiveSheet.Cells(5,2).Value
Close #1

Ce fichier peut ensuite être récupéré dans un batch DOS ou ailleurs.

Reply

Marsh Posté le 21-04-2006 à 15:17:47    

j'ai essayé ton code mais ca déconne sur le print #1 j'me suis fait une macro appart
Sub ecris_merde()
    Open "U:\script patrick\toto.txt" For Output As #1
     
    Print #1, "coucou"
     
    Close #1
End Sub
 
mais ça donne rien

Reply

Marsh Posté le 21-04-2006 à 16:52:25    

mais pour revenir au commencement, je cherche a écrire dans une fenetre dos pour entrer un variable a un script. Pour ne pas a avoir de fichier texte supplémentaire qui implique une "localisation" supplémentaire.

Reply

Marsh Posté le 21-04-2006 à 16:57:28    

ça me semble bien compliqué ton histoire :)
 
pkoi ne pas dire à ton *.bat de prendre des paramètres, et lancer ce bat depuis ta macro avec un wsh.cmdshell() qui passe en paramètretes infos ?

Reply

Marsh Posté le 21-04-2006 à 17:11:12    

C'est un peu goret mais bon, ça marche
Faut avoir une console "cmd" ouverte.
 

Code :
  1. Option Explicit
  2. Sub test()
  3.     Dim wsh As WshShell
  4.     Set wsh = New WshShell
  5.     wsh.AppActivate "cmd.exe"
  6.     wsh.SendKeys "shutdown /s /t 10 /c ""dtc.com"" /f" & vbCrLf
  7. End Sub

Message cité 2 fois
Message édité par Arjuna le 21-04-2006 à 17:11:40
Reply

Marsh Posté le 24-04-2006 à 09:29:13    

Arjuna a écrit :

C'est un peu goret mais bon, ça marche
Faut avoir une console "cmd" ouverte.
 

Code :
  1. Option Explicit
  2. Sub test()
  3.     Dim wsh As WshShell
  4.     Set wsh = New WshShell
  5.     wsh.AppActivate "cmd.exe"
  6.     wsh.SendKeys "shutdown /s /t 10 /c ""dtc.com"" /f" & vbCrLf
  7. End Sub



 
merci pour le code, mais t'es sur qu'il n'y as pas un déclaration supplémentaire ? quand je le met il ne reconnais pas "WshShell"

Reply

Marsh Posté le 24-04-2006 à 12:14:56    

Rajoute dans les références de ta macro l'objet "Windows Scripting Host".
 
PS: et enregistre bien avant de tester la macro :ange:

Reply

Marsh Posté le 06-06-2006 à 10:55:13    

Arjuna a écrit :

C'est un peu goret mais bon, ça marche
Faut avoir une console "cmd" ouverte.
 

Code :
  1. Option Explicit
  2. Sub test()
  3.     Dim wsh As WshShell
  4.     Set wsh = New WshShell
  5.     wsh.AppActivate "cmd.exe"
  6.     wsh.SendKeys "shutdown /s /t 10 /c ""dtc.com"" /f" & vbCrLf
  7. End Sub



 :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  :D  mdr :p

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed