VBScript to excel

Fermé
servietsky777 Messages postés 188 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 19 septembre 2013 - 3 déc. 2010 à 15:53
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 10 déc. 2010 à 16:17
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
A voir également:

5 réponses

servietsky777 Messages postés 188 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 19 septembre 2013 7
3 déc. 2010 à 15:57
ç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
servietsky777 Messages postés 188 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 19 septembre 2013 7
6 déc. 2010 à 08:39
up
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 déc. 2010 à 09:24
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
servietsky777 Messages postés 188 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 19 septembre 2013 7
10 déc. 2010 à 14:58
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 déc. 2010 à 16:17
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