Créer un fichier excel sans l'ouvrir avec vbscript
sikasika
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
ReBonjour tout le monde,
je galère avec VBS , j essaie de chercher mais ce n'est pas toujours claire.
J'ai besoin de créer un fichier excel sans l'ouvrir pour y importer des données à partir d'un fichier texte. Je dois aussi effectuant des opérations sur ces données pour les mettre dans des cellules spécifiques.
Ce que je cherche mnt : comment créer un fichier excel sans l'ouvrir (je ne sais pas si c'est clair)
Cordialement,
je galère avec VBS , j essaie de chercher mais ce n'est pas toujours claire.
J'ai besoin de créer un fichier excel sans l'ouvrir pour y importer des données à partir d'un fichier texte. Je dois aussi effectuant des opérations sur ces données pour les mettre dans des cellules spécifiques.
Ce que je cherche mnt : comment créer un fichier excel sans l'ouvrir (je ne sais pas si c'est clair)
Cordialement,
A voir également:
- Actualiser un fichier excel sans l'ouvrir
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment ouvrir un fichier 7z - Guide
9 réponses
Bonjour,
vous devez creer le fichier excel en partant de ceci:
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/msoffice/excel/
ensuite traiter votre fichier comme ceci:
https://silkyroad.developpez.com/VBA/ClasseursFermes/
vous devez creer le fichier excel en partant de ceci:
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/msoffice/excel/
ensuite traiter votre fichier comme ceci:
https://silkyroad.developpez.com/VBA/ClasseursFermes/
Rebonjour,
Mais il n'y a pas d'information sur comment lire un fichier texte et établir le lien avec un fichier excel pour le remplir
Bonne journée
Mais il n'y a pas d'information sur comment lire un fichier texte et établir le lien avec un fichier excel pour le remplir
Bonne journée
Bonjour :D
J'ai écrits ce code : il m'ouvre un fichier excel et écrit "super et "bien" dans les cellules et feuilles voulues mais je n'arrive pas à faire le lien entre mon fichier texte "fichier1" et le nouveau fichier excel pour pouvoir copier le contenu du fichier1 dans la feuille 3
'****************************************************************
Const ForReading = 1, ForWriting = 2, ForAppending = 8 ,fichier1="C:\Test.txt"
'****************************************************************
'objet application text
Set objText = CreateObject("Scripting.FileSystemObject")
Set F1=objText.OpenTextFile(fichier1, ForReading)
'definition fichier
Set objExcel = CreateObject("Excel.Application")
ObjExcel.Visible= True
Set objclasseur= objExcel.workbooks.Add
Set objfeuille1 =objclasseur.worksheets(1)
Set objfeuille2 =objclasseur.worksheets(2)
Set objfeuille3 =objclasseur.worksheets(3)
objfeuille1.Cells(3,1).Value = "Super"
objfeuille2.Cells(3,1).Value = "Bien"
objclasseur.close
objText.Quit
wscript.Echo
est il possible de m'aider ?? j'en ai vraiment besoin
J'ai écrits ce code : il m'ouvre un fichier excel et écrit "super et "bien" dans les cellules et feuilles voulues mais je n'arrive pas à faire le lien entre mon fichier texte "fichier1" et le nouveau fichier excel pour pouvoir copier le contenu du fichier1 dans la feuille 3
'****************************************************************
Const ForReading = 1, ForWriting = 2, ForAppending = 8 ,fichier1="C:\Test.txt"
'****************************************************************
'objet application text
Set objText = CreateObject("Scripting.FileSystemObject")
Set F1=objText.OpenTextFile(fichier1, ForReading)
'definition fichier
Set objExcel = CreateObject("Excel.Application")
ObjExcel.Visible= True
Set objclasseur= objExcel.workbooks.Add
Set objfeuille1 =objclasseur.worksheets(1)
Set objfeuille2 =objclasseur.worksheets(2)
Set objfeuille3 =objclasseur.worksheets(3)
objfeuille1.Cells(3,1).Value = "Super"
objfeuille2.Cells(3,1).Value = "Bien"
objclasseur.close
objText.Quit
wscript.Echo
est il possible de m'aider ?? j'en ai vraiment besoin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour a vous deux,
sikasika:
Votre probleme est quel format a votre fichier txt, comment recuperer les infos pour les redistribuer. Je serai pour que vous fassiez un code d'import de votre fichier txt avec de l'excel et l'enregistreur de macro, que vous adaptiez ce code au VBS par Set objExcel = CreateObject("Excel.Application"), ce que vous savez faire. De cette facon vous aurez la disposition de vos donnees et pourrez traiter celles qui vous interessent
le principe: creer le fichier excel, importer le fichier txt dans ce fichier excel et traiter les infos dans ce meme fichier excel et enregistrer ce fichier
sikasika:
Votre probleme est quel format a votre fichier txt, comment recuperer les infos pour les redistribuer. Je serai pour que vous fassiez un code d'import de votre fichier txt avec de l'excel et l'enregistreur de macro, que vous adaptiez ce code au VBS par Set objExcel = CreateObject("Excel.Application"), ce que vous savez faire. De cette facon vous aurez la disposition de vos donnees et pourrez traiter celles qui vous interessent
le principe: creer le fichier excel, importer le fichier txt dans ce fichier excel et traiter les infos dans ce meme fichier excel et enregistrer ce fichier
Merci f894009 pour ta réponse, mais je ne cherche à travailler qu'avec du vbs ( ce que j'ai écrit avant n'était qu'une partie du travail que j'aimerai effectuer)
j'ai réussi à écrire ce code: il récupère les données du fichier texte et les met au niveau d'excel : (mon fichier texte ne contient que 5 colonnes mais le nombre de lignes peut varier)
'**************************************************************
Const ForReading = 1, ForWriting = 2, ForAppending = 8 ,fichier1="C:\Users\smaher\Desktop\Test.txt"
'**************************************************************
'objet application text
Set objText = CreateObject("Scripting.FileSystemObject")
Set F1=objText.OpenTextFile(fichier1, ForReading)
Dim ligne,data
Dim i,c3,c4,c5 As Integer
i = 1
Set objExcel = CreateObject("Excel.Application")
ObjExcel.Visible= True
Set objfeuille1 =objclasseur.worksheets(1)
Set objfeuille2 =objclasseur.worksheets(2)
Set objfeuille3 =objclasseur.worksheets(3)
ligne = F1.ReadLine
Do until F1.AtEndOfStream
line =F1.ReadLine
data1=Split(Line,";")
c1=data1(0)
c2=data1(1)
c3=data1(2)
c4=data1(3)
c5=data1(4)
Objfeuille3.Cells(i,1).Value = c1
Objfeuille3.Cells(i,2).Value = c2
Objfeuille3.Cells(i,3).Value = c3
Objfeuille3.Cells(i,4).Value = c4
Objfeuille3.Cells(i,5).Value = c5
i=i+1
loop
wscript.Echo
mais en fait les variables c3 et c4 sont des nombres qui représentent la ligne et la colonne ou je dois mettre la valeur de la variable c5 donc j'ai essayé de mettre ceci :
Objfeuille3.Cells(c3,c4).Value = c5
mais ça n'a pas marché
si quelqu'un peut m'expliquer ce qui ne va pas :D
j'ai réussi à écrire ce code: il récupère les données du fichier texte et les met au niveau d'excel : (mon fichier texte ne contient que 5 colonnes mais le nombre de lignes peut varier)
'**************************************************************
Const ForReading = 1, ForWriting = 2, ForAppending = 8 ,fichier1="C:\Users\smaher\Desktop\Test.txt"
'**************************************************************
'objet application text
Set objText = CreateObject("Scripting.FileSystemObject")
Set F1=objText.OpenTextFile(fichier1, ForReading)
Dim ligne,data
Dim i,c3,c4,c5 As Integer
i = 1
Set objExcel = CreateObject("Excel.Application")
ObjExcel.Visible= True
Set objfeuille1 =objclasseur.worksheets(1)
Set objfeuille2 =objclasseur.worksheets(2)
Set objfeuille3 =objclasseur.worksheets(3)
ligne = F1.ReadLine
Do until F1.AtEndOfStream
line =F1.ReadLine
data1=Split(Line,";")
c1=data1(0)
c2=data1(1)
c3=data1(2)
c4=data1(3)
c5=data1(4)
Objfeuille3.Cells(i,1).Value = c1
Objfeuille3.Cells(i,2).Value = c2
Objfeuille3.Cells(i,3).Value = c3
Objfeuille3.Cells(i,4).Value = c4
Objfeuille3.Cells(i,5).Value = c5
i=i+1
loop
wscript.Echo
mais en fait les variables c3 et c4 sont des nombres qui représentent la ligne et la colonne ou je dois mettre la valeur de la variable c5 donc j'ai essayé de mettre ceci :
Objfeuille3.Cells(c3,c4).Value = c5
mais ça n'a pas marché
si quelqu'un peut m'expliquer ce qui ne va pas :D
Bonjour à tous,
Pijaku a donné une piste. VBS est un langage basé sur du Visual Basic, tout comme VBA (Visual Basic For Application) a été implanté dans les applications du pack Office pour permettre de manipuler les objets des applications avec du VB.
Pour parcourir un fichier avec du VB, que ça soit en VBS ou VBA, ce fait de la façon suivant:
Pijaku a donné une piste. VBS est un langage basé sur du Visual Basic, tout comme VBA (Visual Basic For Application) a été implanté dans les applications du pack Office pour permettre de manipuler les objets des applications avec du VB.
Pour parcourir un fichier avec du VB, que ça soit en VBS ou VBA, ce fait de la façon suivant:
Dim fp As Integer 'Pointeur du fichier Dim MonFichier As String 'Chemin complet et nom du fichier à lire Dim chaine As String 'Conteneur d'une ligne du fichier fp = Freefile 'Attribution du premier pointeur libre MonFichier = "C:\CCM\monfichier.txt" Open MonFichier For Input As #fp While Not EOF(fp) Line Input #fp, chaine MsgBox chaine Wend Close(fp)
Bonjour,
Polux31:
Il y pas mal de differences entre le VBA et le VBS dans le traitement de fichier (entre autre sujet) et ce qui fait que du code VBA ne convient pas du tout en VBS
sikasika:
Vous utilisez bien du code excel via excel.application, donc ce que je vous ai ecrit conviendrait. Suffit de l'adapter.
Mais vu que vous semblez pas emballer par la chose, je vais regarder avec le code que vous proposez
Polux31:
Il y pas mal de differences entre le VBA et le VBS dans le traitement de fichier (entre autre sujet) et ce qui fait que du code VBA ne convient pas du tout en VBS
sikasika:
Vous utilisez bien du code excel via excel.application, donc ce que je vous ai ecrit conviendrait. Suffit de l'adapter.
Mais vu que vous semblez pas emballer par la chose, je vais regarder avec le code que vous proposez
Re,
Qui dit fichier texte, y a pas de nombre(s), que des chaines de caracteres.
Convertir en nombre les chaines que vous voulez en nombre.
Ex: pour des entiers
car:Cells(ligne,colonne) en nombre, pas en texte
Qui dit fichier texte, y a pas de nombre(s), que des chaines de caracteres.
Convertir en nombre les chaines que vous voulez en nombre.
Ex: pour des entiers
c1=CInt(data1(0))
c2=CInt(data1(1))
c3=CInt(data1(2))
c4=CInt(data1(3))
c5=CInt(data1(4))
car:Cells(ligne,colonne) en nombre, pas en texte
Objfeuille3.Cells(c3,c4).Value = c5