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

Excel Discussion :

Récupération ligne par ligne des données d'un .doc


Sujet :

Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut Récupération ligne par ligne des données d'un .doc
    Bonjour,
    je travaille sur un programme qui doit piloter une application sous VBA Excel.
    Pour le moment, j'ai réussi à lancer l'application via macro et à naviguer dedans.

    Voici mon problème, l'application que je pilote doît executer des requêtes, seulement celles-ci sont sous forme de .doc . Il faudrait donc que j'ouvre un de ces .doc compte le nombre de lignes et les récupère une par une (car je dois les injecter dans l'appli une à une, à raison de 10 lignes par page(de l'appli)).

    En gros si quelqu'un pouvait me faire un programme du style:

    ouverture .doc
    variable nombre de ligne

    boucle tant qu'on est pas a la derniere ligne avec un compteur
    var=ligne en cours
    si compteur modulo 10 egal 0 et compteur different de 0 alors
    ... (ici je mettrai du code pour lancer une nouvelle page de mon appli)
    sinon
    ... (ici j injecterai la ligne dans l appli)


    Voila merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    Bonjour

    Cet exemple permet de boucler sur toutes les phrases d'un document :

    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
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
    Dim j As Integer
     
    Set wordApp = CreateObject("Word.Application")
    wordApp.Visible = False
    'ouverture documents word
    Set wordDoc = wordApp.Documents.Open("C:\dossier\fichier.doc")
     
    'boucle sur les phrases/lignes du document
    For j = 1 To wordDoc.Sentences.Count
        Cells(j, 1) = _
            Application.WorksheetFunction. _
            Substitute(wordDoc.Sentences(j).Text, Chr(13), "")
    Next j
     
    'fermeture document word
    wordDoc.Close False
    wordApp.Quit
    Set wordDoc = Nothing
    Set wordApp = Nothing

    bonne soirée
    michel

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut
    Merci bien, j'ai ajouté ca dans la boucle :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If j Mod 16 = 0 Then
    ...
    End If
    VBA Excel ne reconnait pas Word.Application.
    (Edit : j'avais pas ajouté la référence, donc c est bon c est réglé. )

    Sais-tu comment je peux récupérer la ligne sur laquelle je suis du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ligne as String
     
    ligne= ma_ligne_courante
    et

    je dois aussi récupérer un indice dans la 1ere ligne, il se trouve après "Fic="
    et fais 4 lettres de long, je n'y connais vraiment rien en commande Word donc je vais chercher sur les forums voir si je trouve.

    Encore merci pour ton aide !

    Edit:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ma_ligne = Application.WorksheetFunction.Substitute(wordDoc.Sentences(1).Text, Chr(13), "")
    x = InStr("FIC=", ma_ligne)
    Fic = Mid$(ma_ligne, x, 4)
    Excel me renvoie une erreur comme quoi mon x=0 et donc le Mid$ ne fonctionne pas, pourtant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_ligne="A,CCD=177,FIC=49FR,DATE=0801,IDET=INDGAZ,OBJ=EXT,"
    x devrait être égal à 14 non?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    Bonsoir,

    je ne suis pas sur d'avoir bien compris ton message mais tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = InStr(ma_ligne, "FIC=")
    Fic = Mid(ma_ligne, x + 4, 4)

    bonne soirée
    michel

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut
    Je veux stocker les 4 lettres après "FIC=" dans ma 1ere ligne car c est un code que je dois envoyer a l'appli que je pilote.

    Ton code me retourne ",OBJ"

    En faite même en faisant varier les paramétres ca me retourne toujours ",OBJ"
    c est plus qu etrange.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    Bonsoir

    Ton code me retourne ",OBJ"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ma_ligne = "A,CCD=177,FIC=49FR,DATE=0801,IDET=INDGAZ,OBJ=EXT,"
     
    x = InStr(ma_ligne, "FIC=")
    Fic = Mid(ma_ligne, x + 4, 4)
    MsgBox Fic
    Chez moi ça renvoie 49FR ...




    ma_ligne = Application.WorksheetFunction.Substitute(wordDoc.Sentences(1).Text, Chr(13), "")
    x = InStr("FIC=", ma_ligne)
    Fic = Mid$(ma_ligne, x, 4)
    Excel me renvoie une erreur comme quoi mon x=0 et donc le Mid$ ne fonctionne pas, pourtant:

    Est ce que ça peut être lié au 1 qui tu as utilisé à la place de la variable j, de mon premier message ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordDoc.Sentences(j).Text

    bonne soirée
    michel

  7. #7
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut
    Non en faite c'étati bon, c est juste aue je refaisais une saisie apres mais sans changer la page de mon appli donc ca effacer le 49FR.

    J'ai pas pu editer mon message hier internet voulait pas fonctionner à l'entreprise.

    Jte remercie encore une fois pour ton aide.

    Bye

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/07/2014, 18h08
  2. lire un fichier texte ligne par ligne et récupérer des données
    Par nekcorp dans le forum Général Python
    Réponses: 8
    Dernier message: 13/04/2014, 22h33
  3. Traiter ligne par ligne des données d'un textarea
    Par toxine7777 dans le forum ASP
    Réponses: 5
    Dernier message: 03/01/2011, 20h42
  4. récuperation des données ligne par ligne
    Par esisa1 dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 29/06/2010, 15h30
  5. StringGrid ajout de ligne en fonction des données
    Par thierrybatlle dans le forum Delphi
    Réponses: 3
    Dernier message: 26/05/2006, 13h58

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