Bonjour !
Après avoir beaucoup farfouillé sur le forum, je sollicite votre aide.
Je souhaite créer un bout de code pour extraire certains titres (titre 1, titre 2) d'un cahier des charges format Word vers un devis format Excel (à partir de la case B11).
Seulement j'ai un problème au niveau de la ligne : wb.ActiveSheet.Range("B11").InsertAfter stTemp
Je pense que le reste est a peu près cohérent (je débute, j'ai lu les faqs et tuto de certains, merci d'ailleurs !, mais je reste débutant++)
Quelqu'un pourrait-il m'éclairer svp ?
Merci d'avance !
Ci-joint le code que j'ai fait
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 Sub CCTP_to_DPGF() Dim oPara As Paragraph 'On déclare l'objet "Paragraphe" du texte word Dim stTemp As String 'On déclare la variable qui recevra les titres que l'on veut copier Dim doc As Document 'On déclare le document word Dim wb As Workbook 'On déclare le classeur excel Dim ws As Worksheet 'On déclare la feuille excel Set doc = Documents.Open("C:\Users\MENAJ7\Desktop\Perso\Cours VBA\Test du code\CCTP.docx") 'On donne le chemin du document word (CCTP) pour que le programme y ai accès et l'ouvre Set wb = Workbooks.Open("C:\Users\MENAJ7\Desktop\Perso\Cours VBA\Test du code\DPGF.xlsx") 'On donne le chemin de la variable DPGF pour que le programme y ai accès et l'ouvre Set ws = wb.Worksheets("Classeur") 'On donne la feuille excel sur laquelle on veut travailler 'Set doc = ActiveDocument 'Set wb = ActiveWorkbooks For Each oPara In doc.Paragraphs Select Case oPara.Style Case "Titre 2;article principal;E2;l2;I2;InterTitre;heading 2;CHAP2;MODRAP;CHAPITRE I. 1;CHAPITRE I. 11;CHAPITRE I. 12;CHAPITRE I. 13;CHAPITRE I. 14;CHAPITRE I. 15;M-Titre 2;poste" stTemp = NetText(oPara.Range.Text) & "|" Case "Titre 3;article détaillé;E3;Titre 3 Car1;E3 Car1;Titre 3 Car Car;E3 Car Car;H3;Titre3;heading 3;l3;CT;h3;3rd level;Titre 3 Car1 Car Car;E3 Car1 Car Car;Titre 3 Car Car Car Car;E3 Car Car Car Car;Titre 3 Car2 Car;E3 Car2 Car;Titre 3 Car Car1 Car" stTemp = NetText(oPara.Range.Text) & "|" Case Else stTemp = "" End Select 'DPGF.Range("B11").InsertAfter stTemp 'ActiveWorkbook.Worksheets("DPGF").Range("B11").InsertAfter stTemp 'wb.Range("B11").InsertAfter stTemp 'With ws 'Range("B11").InsertAfter stTemp 'End With 'Sheets("Classeur").Select.Range("B11").InsertAfter stTemp wb.ActiveSheet.Range("B11").InsertAfter stTemp Next oPara Set CCTP = Nothing Set DPGF = Nothing End Sub 'Pour info 'Titre 1 = Titre 2;article principal;E2;l2;I2;InterTitre;heading 2;CHAP2;MODRAP;CHAPITRE I. 1;CHAPITRE I. 11;CHAPITRE I. 12;CHAPITRE I. 13;CHAPITRE I. 14;CHAPITRE I. 15;M-Titre 2;poste 'Titre 2 = Titre 3;article détaillé;E3;Titre 3 Car1;E3 Car1;Titre 3 Car Car;E3 Car Car;H3;Titre3;heading 3;l3;CT;h3;3rd level;Titre 3 Car1 Car Car;E3 Car1 Car Car;Titre 3 Car Car Car Car;E3 Car Car Car Car;Titre 3 Car2 Car;E3 Car2 Car;Titre 3 Car Car1 Car Public Function NetText(stTemp As String) As String 'Permet de copier les chaines de caractères sans le dernier caractère inutile NetText = Left(stTemp, Len(stTemp) - 1) End Function
Partager