VBScript to excel

Hello,
Je veux créer un programme qui récupère toutes les imprimantes d'un serveur et qui les écrits dans une page excel. J'ai réussi à faire la base, mais ma variable contient les noms de chaque imprimantes et je ne sais pas comment écrire un nom par cellule.

Voilà le code (j'ai fait quelque copier coller depuis internet). :

'Variable : Counter
Dim Print_Count
Print_Count = 0

'Target (. for local)
strComputer = "." 'Ici je ressort les imprimantes en local.

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")

For Each objPrinter in colPrinters
If objPrinter.Attributes And 64 Then
strPrinterType = "Local"
Else
strPrinterType = "Network"
End If

chemin= "Local printers.XLS"
Set fso = CreateObject("Scripting.FileSystemObject" )
Set Fic = fso.CreateTextFile(chemin, True)
' Titres des colonnes
' chr (34) remplace les guillements à la suite de l'instruction
Fic.writeLine "ID;PWXL;N;E" ' Début du codage excel
Fic.writeLine "C;Y1;X1;K" & CHR(34) & (objPrinter.Name & " -- " & strPrinterType) & CHR(34)
Fic.writeLine "C;Y1;X2;K" & CHR(34) & (objPrinter.Name & " -- " & strPrinterType) & CHR(34)
Fic.writeLine "E" ' Fin du codage excel
Fic.Close
Set Fic = Nothing
Set fso = Nothing

Print_Count = Print_Count + 1
Next

'Wscript.Echo Print_count

5 réponses

  1. ça crée le fichier excel et ça insère dans la première cellule toutes les imprimantes. Mais il faudrait que ça insère un nom pour une cellule.
    0
    1. Contributeur
      Bonjour,
      directement dans un fichier Excel sur le serveur (évite l'étape .txt)
      Sub lister_imprimante()
      Dim strcomputer As String
      Dim objetWMI As Object
      Dim imprimantesdispo As Object
      Dim imprimante As Object
      Dim lig As Byte
      
      strcomputer = "." 'on ne travaille que sur ce poste
      'activation WMI pour Windows
      Set objetWMI = GetObject("winmgmts:" _
          & "{impersonationLevel=impersonate}!\\" & strcomputer & "\root\cimv2")
      
      'liste les drivers imprimantes installés sur le poste
      Set imprimantesdispo = objetWMI.ExecQuery _
          ("Select * from Win32_Printer")
      lig = 1
      For Each imprimante In imprimantesdispo
          Cells(lig, 1) = imprimante.Name
          If imprimante.Default Then
               Range("D1") = "imprimante active: " & imprimante.Name
          End If
          lig = lig + 1
      Next
      End Sub
      0
      1. Pourrais tu me donner le code entier qui marche que je doive juste le rentrer dans le programme. Je ne connais vraiment pas bien le vbscript alors si tu me donnes des bou de code, je ne saurai pas où les mettre.

        Merci
        0
        1. Contributeur
          Bonjour

          Très sympa de ta part:
          Pourrais tu me donner le code entier qui marche que je doive juste le rentrer dans le programme. Je ne connais vraiment pas bien le vbscript alors si tu me donnes des bou de code, je ne saurai pas où les mettre.

          le code est entier ,complet, il a été testé avant de le proposer.
          Bref! quand tu sais pas, ce sont forcément les autres qui foirent !!!

          dans le fichier Excel: Alt+F11 t"amène dans l'éditeur VBA
          insertion module-
          tu copies-colles ce code

          pour déclencher:
          options-personnaliser-barre d'outils- formulaire
          tu dessines un bouton et l'affectes à la macro
          0