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 :

Word chaque ligne de mes fichiers dans une variable (VBS)


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Points : 58
    Points
    58
    Par défaut Word chaque ligne de mes fichiers dans une variable (VBS)
    Bonjour à tous,

    Ayant plusieurs fichiers word à traiter, j’ai fait une boucle (qui marche bien) dans un script VBS et j'ai trouvé pratique de récupèrer le contenu de chacun de mes fichier en faisant un « GetObject » et ensuite j’ai une variable « x = DocWord.Range.Text ». (jusque là ça va)

    Mais cette variable contient l’ensemble de ce fichier (toutes les lignes), je voudrais mettre chaque ligne dans une variable, en testant par exemple la fin de ligne, mais là je bloque (genre un "split") Quelqu’un aurait-il une idée ?

    D’avance merci.

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par rouletabille63 Voir le message
    Bonjour à tous,

    Ayant plusieurs fichiers word à traiter, j’ai fait une boucle (qui marche bien) dans un script VBS et j'ai trouvé pratique de récupèrer le contenu de chacun de mes fichier en faisant un « GetObject » et ensuite j’ai une variable « x = DocWord.Range.Text ». (jusque là ça va)

    Mais cette variable contient l’ensemble de ce fichier (toutes les lignes), je voudrais mettre chaque ligne dans une variable, en testant par exemple la fin de ligne, mais là je bloque (genre un "split") Quelqu’un aurait-il une idée ?

    D’avance merci.

    Postez votre code

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Points : 58
    Points
    58
    Par défaut voici le code (qui marche)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim DocWord,VariableTexte
    Set DocWord = GetObject("C:\temp\Test.doc")
    DocWord.Activate
     
    VariableTexte = DocWord.Range.Text
     
    MsgBox "Voici le texte ci-dessous :" & vbCrlf & VariableTexte
    Le résultat est :

    Voici le texte ci-dessous :
    Ceci est juste un test
    De lecture
    D’un fichier
    Word

    De lecture
    Word

    fichier
    Word
    fichier

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Code à tester
    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
    Option Explicit
    Const ForReading = 1
    Const ForWriting = 2
    Const TriStateUseDefault = -2
    Dim DocWord,VariableTexte,objFSO,arrLine,strLine,strOutFile,objOutFile,i
    Set DocWord = GetObject("C:\temp\Test.doc")
    DocWord.Activate
    VariableTexte = DocWord.Range.Text
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    arrLine = Split(VariableTexte,ChrW(11))
    '--------------------------------------------------------------------------------
    strOutFile="Result.txt"
    Set objOutFile = objFSO.OpenTextFile(strOutFile,ForWriting, True)
    For Each strLine In arrLine
       strLine = Trim(strLine)
       objOutFile.WriteLine strLine 
    Next
    objOutFile.Close
     
    For i = LBound(arrLine) To UBound(arrLine)
       strLine = strLine & arrLine(i) & vbcrlf
       wscript.echo "Lecture de ligne N° "& "( "& i+1 & ") ==> " & vbCr & strline
    Next
    wscript.echo strline
    DocWord.Close False
    Set DocWord = Nothing

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Points : 58
    Points
    58
    Par défaut
    Hello

    mille mercis à hackoofr pour sa réponse qui me convient oh! combien!
    ça répond complètement à mon besoin.
    Une précision donnée juste à titre indicatif à l'attention des intéressés j'ai mis ChrW(13) à la place de ChrW(11), mais il fallait avoir le fichier pour savoir que c'était un retour chariot.

    Tout marche super bien

  6. #6
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par rouletabille63 Voir le message
    Hello
    mille mercis à hackoofr pour sa réponse qui me convient oh! combien!
    ça répond complètement à mon besoin.
    Une précision donnée juste à titre indicatif à l'attention des intéressés j'ai mis ChrW(13) à la place de ChrW(11), mais il fallait avoir le fichier pour savoir que c'était un retour chariot.
    Tout marche super bien
    Nice !
    Donc juste un petit aide à se sentir utile

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

Discussions similaires

  1. [PowerShell] Récupérer chaque ligne d'un pipeline dans une variable
    Par Eveanne dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/06/2015, 16h16
  2. Réponses: 6
    Dernier message: 22/09/2008, 14h52
  3. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12
  4. Réponses: 51
    Dernier message: 06/01/2008, 16h47
  5. Réponses: 4
    Dernier message: 24/04/2003, 22h28

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