Créer un fichier excel sans l'ouvrir avec vbscript
Fermé
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
-
7 juil. 2014 à 17:44
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 10 juil. 2014 à 17:18
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 10 juil. 2014 à 17:18
A voir également:
- Actualiser un fichier excel sans l'ouvrir
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier docx ? - Guide
- Liste déroulante excel - Guide
9 réponses
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
7 juil. 2014 à 18:23
7 juil. 2014 à 18:23
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/
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
8 juil. 2014 à 11:18
8 juil. 2014 à 11:18
Merci f894009,
ça aide beaucoup
Bonne journée
ça aide beaucoup
Bonne journée
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
8 juil. 2014 à 11:21
8 juil. 2014 à 11:21
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
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
8 juil. 2014 à 12:51
8 juil. 2014 à 12:51
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
8 juil. 2014 à 13:15
8 juil. 2014 à 13:15
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
8 juil. 2014 à 13:59
8 juil. 2014 à 13:59
Bonjour,
c'est du VBA je pense que c'est différent du vbscript nn??
c'est difficile à adapter ??
c'est du VBA je pense que c'est différent du vbscript nn??
c'est difficile à adapter ??
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
Modifié par pijaku le 8/07/2014 à 14:03
Modifié par pijaku le 8/07/2014 à 14:03
je ne sais pas, mais la syntaxe ne doit pas être loin de ça :
Open "D:\essai\monfichier.txt" For Input As intFic
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
8 juil. 2014 à 14:06
8 juil. 2014 à 14:06
ok , je te remercie je vais essayer d'adapter le code
merci :D
merci :D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 8/07/2014 à 14:15
Modifié par f894009 le 8/07/2014 à 14:15
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
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
9 juil. 2014 à 14:07
9 juil. 2014 à 14:07
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
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
9 juil. 2014 à 15:06
9 juil. 2014 à 15:06
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)
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
9 juil. 2014 à 17:14
9 juil. 2014 à 17:14
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
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
10 juil. 2014 à 15:19
10 juil. 2014 à 15:19
Bonjour f894009 ,
ce n'est pas que je ne suis pas emballéemais c'est que j'ai du mal à l'adapter
et merci beaucoup :D
ce n'est pas que je ne suis pas emballéemais c'est que j'ai du mal à l'adapter
et merci beaucoup :D
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
Modifié par f894009 le 9/07/2014 à 18:15
Modifié par f894009 le 9/07/2014 à 18:15
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
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
10 juil. 2014 à 15:20
10 juil. 2014 à 15:20
Je vais le tester tout de suite
Merci f894009 :D
Merci f894009 :D
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
10 juil. 2014 à 15:55
10 juil. 2014 à 15:55
ça a marché
il reste juste un petit problème : la première ligne ne contient que des mots mais celles d'après ont des nombres à partir de la troisième colonne donc quand je mets C3=CInt(data1(2)) il me donne une erreur
je tente de mettre une condition pour régler le problème
il reste juste un petit problème : la première ligne ne contient que des mots mais celles d'après ont des nombres à partir de la troisième colonne donc quand je mets C3=CInt(data1(2)) il me donne une erreur
je tente de mettre une condition pour régler le problème
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
10 juil. 2014 à 17:18
10 juil. 2014 à 17:18
Bonjour,
testez le premier caractere (code ASCII), si < 48 ou > 57 ce n'est pas un nombre donc pas de conversion
j'ai mis en exemple une conversion en entier, pour les colonnes et lignes ok, mais attention pour les autres donnees numeriques si decimaux
testez le premier caractere (code ASCII), si < 48 ou > 57 ce n'est pas un nombre donc pas de conversion
j'ai mis en exemple une conversion en entier, pour les colonnes et lignes ok, mais attention pour les autres donnees numeriques si decimaux