Générer un fichier en VB

Signaler
Messages postés
1
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
31 juillet 2007
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour a tous,
Je débute totalement en VB mais à l'aide des infos que j'ai pu trouver sur internet, j'ai réussi a créer le script ci dessous.
Mon but est de généré un fichier xxxx.mif contenant du texte.
 
Set objEXCEL = CreateObject("Excel.Application")
objEXCEL.Workbooks.open("c:\fichier.xls")
FOR i = 1 to 6 step 1
HOSTNAME = objEXCEL.cells(i,1).value
CODEBARRE = objEXCEL.cells(i,2).value
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("c:\HOSTNAME.MIF")
With MonFic
.WriteLine "Start Component"
.WriteLine "Name = ""Informations Système"""
.WriteLine "Start Group"
.WriteLine  "Name = ""Information Code Barre"""
.WriteLine  "ID = 1"
.WriteLine  "Class = CodeBarre"
.WriteLine  "Key = 1"
.WriteLine  "Start Attribute"
.WriteLine   "Name = ""Nom de l'ordinateur"""
.WriteLine   "ID = 1"
.WriteLine   "Type = String(20)"
.WriteLine   "Value = ""HOSTNAME"""
.WriteLine  "End Attribute"
.WriteLine  "Start Attribute"
.WriteLine   "Name = ""Code Barre"""
.WriteLine   "ID = 2"
.WriteLine   "Type = String(30)"
.WriteLine   "Value = ""CODEBARRE"""
.WriteLine  "End Attribute"
.WriteLine "End Group"
.WriteLine "End Component"
End With
next
ObjEXCEL.Workbooks.close
Mes problemes:
- erreur ligne 7 : permission refusée
- Normalement le script doit aller chercher dans un fichier excel prealablement créé des infos (HOSTNAME et CODEBARRE) pour les insérer dans mon fichier, mais cela ne fonctionne pas...
- Le script me génére un seul fichier xxxx.mif, la boucle FOR NEXT ne fonctionne apparement pas.

Je suis un peu perdu dans tout cela...
Merci de votre aide.

2 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
pas compris pourquoi le
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("c:\HOSTNAME.MIF")

est dans ta boucle
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Il faut que tu crée ton fichier AVANT la boucle
essaie de modifier ceci si cela ne fonctionne pas

   Set ObjExcel = CreateObject("Excel.Application")
   'on garde une référence sur le classeur ouvert
   Set ObjClasseur = ObjExcel.Workbooks.open("c:\fichier.xls")
   Set FSys = CreateObject("Scripting.FileSystemObject")
   Set MonFic = FSys.CreateTextFile("c:\HOSTNAME.MIF")
   For i = 1 To 6 Step 1
       HostName = ObjClasseur.ActiveSheet.cells(i, 1).Value
       CODEBARRE = ObjClasseur.ActiveSheet.cells(i, 2).Value
       With MonFic
           .WriteLine "Start Component"
           .WriteLine "Name = ""Informations Système"""
           .WriteLine "Start Group"
           .WriteLine "Name = ""Information Code Barre"""
           .WriteLine "ID = 1"
           .WriteLine "Class = CodeBarre"
           .WriteLine "Key = 1"
           .WriteLine "Start Attribute"
           .WriteLine "Name = ""Nom de l'ordinateur"""
           .WriteLine "ID = 1"
           .WriteLine "Type = String(20)"
           .WriteLine "Value = " & HostName
           .WriteLine "End Attribute"
           .WriteLine "Start Attribute"
           .WriteLine "Name = ""Code Barre"""
           .WriteLine "ID = 2"
           .WriteLine "Type = String(30)"
           .WriteLine "Value = " & CODEBARRE
           .WriteLine "End Attribute"
           .WriteLine "End Group"
           .WriteLine "End Component"
       End With
   Next
   'On ferme le TextStream
   MonFic.Close
   'on ferme le classeur SANS sauver
   Call ObjClasseur.Close(False)
   'on quitte Excel
   Call ObjExcel.Quit
   'on détruit les objets
   Set MonFic = Nothing
   Set FSys = Nothing
   Set ObjClasseur = Nothing
   Set ObjExcel = Nothing , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée