Impossible d'écrire un code dans un fichier texte

sun2k

XLDnaute Nouveau
Salut a tous

J'essaie depuis un bon moment a écrire cette liste (code) ci-dessous dans un fichier texte sans succès car VBA me souligne presque toute les lignes
Code:
Sub Ecriture()
Open "C:\écriture.txt" For Output As #1
Print #1, "If WScript.Arguments.length =0 Then"
Print #1, "Set objShell = CreateObject("Shell.Application")"
Print #1, "objShell.ShellExecute "WScript.exe", Chr(34) & _"
Print #1, "WScript.ScriptFullName & Chr(34) & " uac ", "", "runas", 1"
Print #1, "Else"
Print #1, "End If"
Close #1
End Sub

Pourquoi il veut pas m'écrire tout ce qui se trouve entre les "" de Print ?
merci
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Impossible d'écrire un code dans un fichier texte

Bonsoir à tous


En adaptant ce script VBS pour VBA, cela devrait le faire, non ?

VB:
'source : social.technet.microsoft.com/profile/frederik%20long
'-----------------------------------
'Elevate a script before running it.
'25.2.2011 FNL
'-----------------------------------
If WScript.Arguments.Count = 0 Then
    ElevateUAC
Else
    'Your own VBS code goes here
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFSO.CreateTextFile("c:\Windows\test.txt", True)
    oFile.WriteLine("The quick brown fox")
    oFile.Close
End If

'-------------------------------------------------
'Invoke the above script under elevated privileges
'-------------------------------------------------
Sub ElevateUAC
   Set oShell = CreateObject("Shell.Application")
   oShell.ShellExecute "wscript.exe", WScript.ScriptFullName & " |", , "runas", 1
End Sub

On sinon si tu veux écrire ton fichier ligne à ligne tu peux aussi (puisque nous baignons dans le VBS ;) ) faire comme ceci.
(je te laisse faire les changements nécessaires selon ce que tu veux écrire dans tes lignes)
Code:
Sub EcritureII()
Set objFSO = CreateObject("Scripting.FileSystemObject")
outFile = "C:\temp\écriture.txt"
Set objFile = objFSO.CreateTextFile(outFile, True)
objFile.Write "If WScript.Arguments.length =0 Then" & vbCrLf
objFile.Write "Set objShell = CreateObject(""Shell.Application"")" & vbCrLf
objFile.Write "oShell.ShellExecute ""wscript.exe"", WScript.ScriptFullName & "" |"", , ""runas"", 1" & vbCrLf
objFile.Write "Else" & vbCrLf
objFile.Write "End If" & vbCrLf
objFile.Close
End Sub
 
Dernière édition:

sun2k

XLDnaute Nouveau
Re : Impossible d'écrire un code dans un fichier texte

Merci Staple1600

Je cherche depuis quelques semaines comment exécuter une macro VBA avec une demande élévation (voir photo ci-dessous) sans succès

seven_uacpromptnew.jpg

J'ai un code vbs qui fonctionne tres bien mais en VBA il fonctionne pas
Voici le code VBS:
Code:
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else

' Mon code ici

End If

J'ai essayé avec votre code et il ne fonctionne pas non plus
J'ai fais ceci:
Code:
If WScript.Arguments.Count = 0 Then
    ElevateUAC
Else
   
'Mon code ici

End If

'-------------------------------------------------
Sub ElevateUAC
   Set oShell = CreateObject("Shell.Application")
   oShell.ShellExecute "wscript.exe", WScript.ScriptFullName & " |", , "runas", 1
End Sub
 

sun2k

XLDnaute Nouveau
Re : Impossible d'écrire un code dans un fichier texte

Ah désolé je pensé qu'il était déjà adapter pour le VBA..

Maintenant le comble reste a savoir si on peut l'adapter en VBA..

J'ai cherché de partout (site français,anglais..) mais rien a se mettre sous la dent.. :eek:
 

Staple1600

XLDnaute Barbatruc
Re : Impossible d'écrire un code dans un fichier texte

Re

sun2K
Et pourquoi forcément dans C:\Windows ?
Parce que dans C:\Temp*, VBA ne fera pas broncher l'UAC ;)
(ou tout autre répertoire créé pour l'occasion)

Si vraiment il faut créer un fichier dans Windows, le script VBS ci-dessous le fait sans que l'UAC se manifeste.
(mais j'ai du jadis sans doute jouer sur les autorisations de mon dossier Windows :rolleyes:)
Code:
Sub testOkOuiMaissurMonPC()
Dim objWS, WD$, fso, sampleTXT
Set objWS = CreateObject("WScript.Shell")
WD = objWS.ExpandEnvironmentStrings("%WinDir%")
Set fso = CreateObject("Scripting.FileSystemObject")
Set sampleTXT = fso.CreateTextFile(WD & "\01testXLD.txt", True)
sampleTXT.WriteLine ("Hello!")
sampleTXT.WriteLine ("World")
sampleTXT.WriteLine ("RIP Mister Spock")
sampleTXT.Close
End Sub
 
Dernière édition:

sun2k

XLDnaute Nouveau
Re : Impossible d'écrire un code dans un fichier texte

Merci Staple1600

Oui il faut que le fichier soit crée dans le dossier Windows

Mon UAC est activé, et il est impossible d’écrire dans "C:\Windows" avec votre code

Erreur d’exécution 70
Permission refusée


Je pense qu'il faut le forcer a demander une élévation comme pour le VBS
uac3.png
 
Dernière édition:

sun2k

XLDnaute Nouveau
Re : Impossible d'écrire un code dans un fichier texte

Oui désolé pour l’écriture en doublant les " c'était résolu mais j'ai continué ici pour avoir une demande d'élévation UAC..

C'est bizarre, votre UAC est activé? car si c'est le cas c'est vraiment une faille de sécurité..
 

sun2k

XLDnaute Nouveau
Re : Impossible d'écrire un code dans un fichier texte

Oui encore désolé,je savais pas qu'il ne fallait pas poster dans d'autres forum sans le signaler.. je me met a jour a ce niveau là :)

Pourquoi dans le dossier Windows, je sais pas, sans doute parce que c'est un dossier "protéger" contre une modification et autres..

Je pouvais écrire dans les dossiers "C:/" ou "ProgramFiles" ou encore "Mes Documents" mais le problème serait le même (Permission refusée) si l'UAC est activé.
 

Staple1600

XLDnaute Barbatruc
Re : Impossible d'écrire un code dans un fichier texte

Re

sun2K
Je pouvais écrire dans les dossiers "C:/
Donc si tu pouvais créer, copier un fichier à la racine de ton lecteur C, où était le problème alors ???

Et au final tu voulais faire quoi ?
Créer par VBA un script VBS avec une extension *.txt ??
(ça ne risque pas de fonctionner)
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
493

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji