Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Impossible d'écrire un code dans un fichier texte

  • Initiateur de la discussion Initiateur de la discussion sun2k
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sun2k

Guest
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 modification par un modérateur:
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:
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



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
 
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.. 😱
 
Re : Impossible d'écrire un code dans un fichier texte

Je dois simplement écrire dans un fichier qui se trouve dans C:\Windows et impossible avec l'UAC activé..

PS: Je ne souhaite pas désactivé l'UAC.
 
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 🙄)
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:
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
 
Dernière modification par un modérateur:
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é..
 
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é.
 
Re : Impossible d'écrire un code dans un fichier texte

Autant pour moi..😱

Je sais pas pourquoi je voyais ça "C:\Windows\écriture.txt"

C'est bien dans le dossier "C:\" (C:\écriture.txt)

Désolé de cette confusion.
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
223
Réponses
8
Affichages
749
Réponses
15
Affichages
932
Réponses
2
Affichages
437
Réponses
2
Affichages
798
Réponses
2
Affichages
499
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…