PB ecriture dans fichier [Résolu]

ben008 16 Messages postés samedi 20 décembre 2003Date d'inscription 31 mars 2010 Dernière intervention - 3 avril 2008 à 12:33 - Dernière réponse : ben008 16 Messages postés samedi 20 décembre 2003Date d'inscription 31 mars 2010 Dernière intervention
- 3 avril 2008 à 14:15
Bonjour ,

J'ai recuperer un script VBS de ce cher JCB :D modifié afin de mettre une liste d'imprimantes des differents serveurs d'impressions dans un fichier excel :

CODE :

Const SW_HIDE=0
Const SW_SHOWNORMAL=1
Dim shell,fso,attr,desc,net,args
Set shell = WScript.CreateObject("WScript.Shell")
Set fso   = WScript.CreateObject("Scripting.FileSystemObject")
Set net   = Wscript.CreateObject("WScript.Network")
Set args    = Wscript.Arguments
If args.count=0 Then
 computer=net.computername
Else
 computer=args(0)
 If computer="/?" Then
  msg=      "detection des imprimantes locales ou reseau" & VBCRLF
  msg=msg & "sur une machine locale ou distante" & VBCRLF
     msg=msg & "JCB  2002" & VBCRLF
  msg=msg & "---------------------------------------------" & VBCRLF
  msg=msg & "Syntaxe :" & VBCRLF
  msg=msg & "   enumprinter [<nom_de_machine>]" & VBCRLF 
  msg=msg & "Parametre :" & VBCRLF
  msg=msg & "   <nom_de_machine> : nom NetBIOS de l'ordinateur" & VBCRLF
  msg=msg & "                      si absent : machine locale" & VBCRLF
  wscript.echo msg
  wscript.quit
  End If
 End If
Testhost true
attr=array(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192)
desc=array( _
 "Les travaux d'impression sont mis file d'attente", _
 "Les documents sont envoyés directement sur l'imprimante", _
 "Imprimante par defaut de l'ordinateur", _
 "Disponible en tant que ressource reseau partagée", _
 "Attachau reseau", _
 "Cache pour certains utilisateurs du reseau", _
 "Directement connecté a l'ordinateur", _
 "Mise en file d'attente activée si imprimante disponible", _
 "Le spooler ne supprime pas les documents apres impression", _
 "Commence en premier les travaux qui sont en fin de spool", _
 "Mise en file d'attente activée si imprimante indisponible", _
 "Active l'impression bidirectionnelle", _
 "Seuls les travaux de type de donnée brut sont spoolé", _
 "Imprimante public dans le service d'annuaire du reseau")
on error resume next 
set PrinterSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & Computer).ExecQuery _
    ("SELECT * FROM Win32_Printer")
If err.number<>0 Then
 wscript.echo "Erreur : " & err.description
 wscript.quit
 End If
msg="Imprimantes disponibles sur " & ucase(computer)
wscript.echo msg
wscript.echo String(len(msg),"-")
num = 1
   chemin = "imp.xls"
   Set fso = CreateObject("Scripting.FileSystemObject" )
   Set Fic = fso.CreateTextFile(chemin, True)
   Fic.writeLine "ID;PWXL;N;E"
for each Printer in PrinterSet
 wscript.echo
 wscript.echo FormatStrR(num,2) & ")" & Printer.Caption
 Fic.writeLine "C;Y" & num & ";X1;K" & CHR(34) & Printer.ShareName & CHR(34) 
 Fic.writeLine "C;Y" & num & ";X2;K" & CHR(34) & Printer.PortName & CHR(34)
 Fic.Close
 num = num + 1
 next
Fic.writeLine "E"
Set Fic = Nothing
Set fso = Nothing
Wscript.quit

Mon souci semble se trouver ici :
Fic.writeLine "C;Y" & num & ";X1;K" & CHR(34) & Printer.ShareName & CHR(34) 
Fic.writeLine "C;Y" & num & ";X2;K" & CHR(34) & Printer.PortName & CHR(34)

etant donné qu'a la final mon fichier xls est erroné et ne possede que la premiere ligne.
pourtant dans la fenetre pendant le script je vois bien toutes le imprimantes aparaitre et Y est bien incrementé.

Merci d'avance pour votre aide.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 3 avril 2008 à 12:44
3
Merci
Fic.Close

est dans la boucle, se qui fait que ton fichier est fermé après la premièer ecriture...

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de Renfield
ben008 16 Messages postés samedi 20 décembre 2003Date d'inscription 31 mars 2010 Dernière intervention - 3 avril 2008 à 14:15
0
Merci
Ralalalala ^^

J'allucine j'avais meme pas vu ca pourtant j'y suis bien reste 20 min a regarder.
Ca viendra avec le temp (ca fait un petit mois que je me suis mis au VB).

merci pour ta reponse (acceptée)
Commenter la réponse de ben008

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.