IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

[vbs] rassembler des fichiers txt en fichiers Xls


Sujet :

VBScript

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut [vbs] rassembler des fichiers txt en fichiers Xls
    Bonjour, j'aimerais savoir si il est possible en vbs de rassembler toutes les données contenues dans des fichiers textes dans un seul fichier excell.
    Le fichiers texte ont la structure suivante :
    nom ; moyenne
    codematière;matière1;point_obtenus
    codematière;matière2;point_obtenus
    codematière;matière3;point_obtenus
    codematière;matière4;point_obtenus
    nom ; moyenne
    codematière;matière1;point_obtenus
    codematière;matière2;point_obtenus
    nom ; moyenne
    codematière;matière1;point_obtenus
    codematière;matière2;point_obtenus
    codematière;matière3;point_obtenus
    ...

    Mon but serait que chaque utilisateurs ait une ligne dans un tableau excel avec son nom, sa taille et toutes les matières dans lesquelles il est inscrit avec le résultat obtenu. Le code matière commence toujours de la manière suivante : MAT. Chacune des données de la ligne devra apparaître dans un tableau. J'ai cherché sur le forum et dans la faq, des solution vb existent mais pas vbs...
    Quelqu'un aurait une idée??? Merci
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Oui, c'est possible.
    A base de "Open", "Split"...
    Il y a des tas d'exemples sur ce forum. Fais une recherche avancée, par exemple.

  3. #3
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Merci megaxel, j'ai trouvé pas mal d'exemples effectivement mais en vb à chaque fois... J'ai entreautre fait ceci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Sub Main()
    Dim objexcel As Object
    Dim i As Long, j As Long, dernierligne As Long, tempo As Long, colonne As Long
    Dim fso, dossier, fichier
    Dim ligne As String, chemin As String, letter As String
     
    Set objexcel = CreateObject("Excel.Application")
    objexcel.DisplayAlerts = False
    objexcel.workbooks.Add
    i = 1
    chemin = "..\user"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set dossier = fso.GetFolder(chemin)
    currentuser = Environ("USERNAME")
     
    For Each fichier In dossier.Files
    dernierligne = objexcel.Range("A1").CurrentRegion.Rows.Count
    Open fichier For Input As #1
    While Not EOF(1)
        Line Input #1, ligne
        tabSplit = Split(ligne, ";")
        Dim cmpt As Long
            For cmpt = LBound(tabSplit) To UBound(tabSplit)
                If tabSplit(cmpt) Like "??/??/*" Then
                    tabSplit(cmpt) = Format(CDate(tabSplit(cmpt)), "dd/mmm/yyyy")
                End If
                If UBound(tabSplit) = 1 Then
                    tempo = dernierligne
                    objexcel.Cells(dernierligne, cmpt + 1).formula = tabSplit(cmpt)
                    colonne = cmpt + 2
                Else
                    'objexcel.Range(Chr(65 + colonne) & tempo).formula = tabSplit(cmpt)
                    objexcel.Cells(tempo, colonne).formula = tabSplit(cmpt)
                    colonne = colonne + 1
                End If
            Next cmpt
            If UBound(tabSplit) = 1 Then
                dernierligne = dernierligne + 1
            End If
    Wend
    Close #1
    Next
     
    objexcel.workbooks(1).saveas "C:\Documents and Settings\" & currentuser & "\Desktop\ess.xls"
    objexcel.Quit
    Set objexcel = Nothing
    Set fso = Nothing
    Set dossier = Nothing
    End Sub
    Mais je l'ai fait en vb et j'aimerais savoir quoi modifier pour en faire un vbs...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Heuuu, comme ça, en vitesse, sans regarder de près:
    Enlève le "Sub" et le "End Sub", et les "Dim".
    Copie-colle ce qui reste dans un fichier texte, et renomme le en .vbs.

  5. #5
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    J'ai une première erreur au niveau de
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  6. #6
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Tu sais quoi: je ne suis pas très à l'aise en vbs, mais beacoup plus en VBA pour Excel. Comme c'est le but de ton programme, pourquoi ne programmerais-tu pas directement dans l'éditeur VBA d'Excel.
    Les messages d'erreur sont en général plus explicite.
    Cependant, si tu tiens à rester en VBS, peux-tu nous donner le message d'erreur complet.

  7. #7
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Désloé, l'erreur n'est pas à la ligne signalée mais à celle-ci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open fichier For Input As #1
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  8. #8
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Le vba, je connais pas du tout mais je suis pas contre... Comment ça fonctionne???
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tu as la FAQ Vba pour cela ..

    sinon sous excel utilise ALT-F11 pour aller dans l'éditeur VBE....
    tu rajoute un module ... bouton droit dans l'arborescence de gauche...

    tu y colle ton code VB ...

    tu modifie ton code VB ... en enlevant l'objet "objexcel" dont tu n'as plus besoin ... puisque tu est sous excel et tu agit directement...

    par exemple supprime
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set objexcel = CreateObject("Excel.Application")
    objexcel.DisplayAlerts = False
    objexcel.workbooks.Add
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    DisplayAlerts = False
    workbooks.Add
    voila bon courage...

  10. #10
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    En gros, bbil, la même fonction que celle que j'ai en vb??? Je crois que je vaiçs laisser mon exécutable tel quel alors... Merci à tous...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  11. #11
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ha ben oui, si tu as VB, alors ne t'embête pas...
    Je pensais que tu faisais du vbs parce que tu n'avais pas de licence VB. C'est pour ça que je t'ai proposé de passer en VBA sous Excel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. acceder avec projet EXE en VB6 a des données d'un fichier TXT ou XLS
    Par laurent58 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/01/2015, 20h02
  2. Transférer des données d'un fichier .txt à un fichier Excel
    Par ThonySp dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/11/2014, 21h43
  3. [Débutant] Mettre des intervalles dans un fichier txt à partir d'un xls
    Par Shinto dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/05/2011, 08h40
  4. Réponses: 2
    Dernier message: 18/06/2009, 15h26
  5. [VBS]Lire des données dans un fichier .txt
    Par kacxial dans le forum VBScript
    Réponses: 4
    Dernier message: 28/02/2007, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo