Mise en page en Vb

djamat Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
djamat Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Comme à mon habitude, j'ai du mal à gérer la mise en page de mon fichier Excel via une macro Vba.

Je récupère bien mes données (via doc word) que je veux faire afficher mais je n'arrive pas à les contrôler (cad les utiliser à bon escient).

 With Sheets("Feuil1")
      'On nettoie les cellules de la feuille active du fichier
      .Cells.Clear
      'chemin fichier word en entrée choisis par l'user
      fichier = UserFormMacro.TxtOrigine
      
      '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)
      'on charge le texte dans la variable Doc
      Doc = WordDoc.Range
      'initialisation pointeur
      Deb = 1

      'chercher les textes balisés
      Do
         Deb = InStr(Deb, Doc, "[") + 1
         Fin = InStr(Deb, Doc, "]")
         If Deb = 1 Or Fin = 0 Then Exit Do
            Bal = Mid(Doc, Deb, Fin - Deb)
            Deb = Fin + 1
            Fin = InStr(Deb, Doc, "& Bal & "")
            If Fin > 0 Then
               Txt = Mid(Doc, Deb, Fin - Deb)



           End If
         
      Loop


la variable txt arrive à recuperer tous les champs voulu

Ci dessous 2 lien:
un .doc pour test
<a href="https://www.casimages.com/f.php?f=130523100336814512.doc" target="_blank">Lien vers mon fichier</a>

un .xls: pour le rendu final
<a href="https://www.casimages.com/f.php?f=130523100425663265.xls" target="_blank">Lien vers mon fichier</a>


Merci pour votre aide

POur la ligne: Fin = InStr(Deb, Doc, "& Bal & "") comprendre "{/" & Bal & "}" avec des [] au lieu de {}

A voir également:

3 réponses

djamat Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   28
 
il me reste plu que ceci a faire et je n'arrive pas à bien fusionner les cellules, please help
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Essaies ce code (en espérant que tu ne changes pas à nouveau d'avis !!!) :

Sub test()
   
' Ajouter la référence à Microsoft Word XX.X Object Library

Dim WordApp As New Word.Application
Dim WordDoc As Word.Document
Dim wsh As Worksheet
Dim C As Range
Dim Doc As String, Txt As String, Txt2 As String, Bal As String
Dim Deb As Long, Fin As Long
Const BalA As String = "title"
   
Set wsh = Worksheets("Feuil4")
With wsh
  .Cells.Clear
  'chemin fichier word en entrée choisis par l'user
  fichier = ThisWorkbook.Path & "\test.doc"
  'lire le fichier Word
  Set WordDoc = WordApp.Documents.Open(fichier)
  Doc = WordDoc.Range
  WordDoc.Close
  WordApp.Quit
  Set WordDoc = Nothing
  Set WordApp = Nothing
  'destination
  Set C = .Range("A2")
  'initialisation pointeur
  Deb = 1
  'chercher les textes balisés
  Do
    Deb = InStr(Deb, Doc, "[") + 1
    Fin = InStr(Deb, Doc, "]")
    If Deb = 1 Or Fin = 0 Then Exit Do
    Bal = Mid(Doc, Deb, Fin - Deb)
    Deb = Fin + 1
    Fin = InStr(Deb, Doc, "& Bal & "")
    If Fin > 0 Then
      Txt = Mid(Doc, Deb, Fin - Deb)
      'entete de colonne cad bal
      If Bal = BalA Then
        C.Value = Txt
        .Columns.AutoFit
        Set C = C.Offset(1)
        Txt2 = ""
      Else
        Txt2 = IIf(Txt2 = "", Txt, Txt2 & vbLf & Txt)
        C.Offset(-1, 1).Value = Txt2
        .Columns.AutoFit
      End If
    End If
  Loop
  .Rows.AutoFit
End With
  
End Sub
0
djamat Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   28
 
Merci Patrice cela focntionne correctement.

Et oui je changerai plus d'avis, promis !!
Si tu revois un de mes posts avec ce genre de probleme, tape moi !! :ninja:

Merci encore
0