Générer un fichier en VB

serialkinder62 Messages postés 1 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 31 juillet 2007 - 31 juil. 2007 à 10:01
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 31 juil. 2007 à 10:31
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
31 juil. 2007 à 10:27
pas compris pourquoi le
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("c:\HOSTNAME.MIF")

est dans ta boucle
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 juil. 2007 à 10:31
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
0
Rejoignez-nous