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

Macros et VBA Excel Discussion :

Recuperer chaine de caracteres entre balise de W vers Excel [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut Recuperer chaine de caracteres entre balise de W vers Excel
    Bonjour,

    J'ai un petit soucis sur une macro en VBA. Je suis débutant dans ce langage.
    Je dois faire un tableau sur excel à l'aide de chaines caractères se trouvant dans un fichier Word ordinaire. Ces chaines de caractères sont facilement identifiable car elle se trouve dans différentes balises. cad:
    document word:
    blablablablablabla blablablablablabla [bal1] chaineàrecuperer chaineàrecuperer chaineàrecuperer [/bal1] blablablablablabla blablablablablabla.

    J'ai voulu utiliser la fonction 'Find' (décrite dans un super tuto http://heureuxoli.developpez.com/off...-et-remplacer/ ) mais je n'y arrive pas.

    Auriez vous une autre solution ? ou pouvez vous m’éclairer ?

  2. #2
    Invité
    Invité(e)
    Par défaut regard ça et dis moi
    Bonjour,
    Je l’ai fait dans Word, adapte-le.
    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
    Type pose
    Start As Long
    End As Long
    End Type
    Function FindPosition(txt As String) As pose
    With Selection.Find
        .Forward = True
        .ClearFormatting
        .MatchWholeWord = True
        .MatchCase = False
        .Wrap = wdFindContinue
        .Execute FindText:=txt
    End With
     FindPosition.Start = Selection.Range.Start
    FindPosition.End = Selection.Range.End
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SubTest()
    Dim P1 As pose
    Dim P2 As pose
    Dim P3 As pose
    ActiveDocument.Range(1, 1).Select
    P1 = Macro38("[bal1]")
    P2 = Macro38("[/bal1]")
    P3.Start = P1.End
    P3.End = P2.Start
    ActiveDocument.Range(P3.Start, P3.End).Select
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Il manque la partie récupérant les chaînes de caractères du document Word; cela dépend du document :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test3()
        Dim Txt As String, Deb As Integer, Fin As Integer, Tabl
        Txt = "blablablablablabla blablablablablabla [bal1] chaineàrecuperer chaineàrecuperer chaineàrecuperer [/bal1] blablablablablabla blablablablablabla."
        Deb = InStr(1, Txt, "[bal1]") + 7
        Fin = InStr(1, Txt, "[/bal1]") - 5
        Tabl = Split(Mid(Txt, Deb, Len(Txt) - Fin), " ")
        For Each Item In Tabl
            MsgBox Item
        Next Item
    End Sub

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut
    Bonjour Claude,

    Merci pour ta réponse, elle m'a beaucoup aidé. J’étais partie dans une mauvaise voie (dixit un de mes développeurs, il m'a soufflé le même raisonnement).

    Merci encore

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut
    Bonjour,

    Bon finalment ce nest pas tout a fait resolu, car jarrive bien à gerer la chaine de caractere (merci Daniel et non claude ).
    "Il manque la partie récupérant les chaînes de caractères du document Word"
    c'est la que ca bloque, cad:

    j'arrive bien à recuperer mon fichier Word mais pas à l'attribuer à la varaible txt (par exemple) pour ensuite travailler sur la chaine de caractere.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     'le document Word est supposé fermé avant le lancement de la macro
        Fichier = "D:\Labo\fichier_soft.doc"
        'creation session Word
        Set WordApp = CreateObject("Word.Application")
        'pour que word reste masqué pendant l'opération
        WordApp.Visible = False
        'ouverture du fichier Word
        Set WordDoc = WordApp.Documents.Open(Fichier)
    Comment puis je faire pour parcourir le fichier W afin de l'attribuer à ma variable txt ?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Mets un fichier Word exemple en PJ - sans données confidentielles - qu'on puisse voir sa structure.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut
    Bonjour Daniel,

    Tu trouveras en attachement mon fichier épuré, l'original fait 20 pages avec 5 pages de présentation et ensuite que des pages comme la pièce jointe.
    Les champs entre balises cad *********** sont à récupérés.

    Merci pour votre aide,
    Djamat
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/08/2012, 17h41
  2. selectionner chaine de caractere entre 2
    Par micka180 dans le forum VBScript
    Réponses: 10
    Dernier message: 10/02/2011, 17h28
  3. Remplacer une chaine de caractere entre deux balise
    Par xyrox dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2010, 14h11
  4. Réponses: 1
    Dernier message: 16/03/2010, 00h05
  5. Réponses: 9
    Dernier message: 31/05/2005, 14h34

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