Mise en page en Vb
djamat
Messages postés
33
Statut
Membre
-
djamat Messages postés 33 Statut Membre -
djamat Messages postés 33 Statut Membre -
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).
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 {}
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 {}
3 réponses
-
il me reste plu que ceci a faire et je n'arrive pas à bien fusionner les cellules, please help
-
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 -
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