Bonjour le forum,
Je vous demande de l'aide pour un projet bien compliqué pour moi :
J'ai des fichiers word 2010 qui contiennent des tableaux.
Je dois récupérer certaines valeurs de ces tableaux pour aller enrichir une base de donnée (mySQL 5.5.10)
J'ai donc commencé par prendre tout le contenu d'un tableau word pour le transférer dans une variable tableau par une macro sous excel 2010.
Voici un exemple type :
Voici le code que j'utilise actuellement :
le caractère délimiteur ne s'affichant pas, voici la ligne :
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 Sub test() Dim oTbl As Table Dim i, nbItem As Integer Dim tbl2 ' *** comptage du nombre de tableau dans le document For Each oTbl In ActiveDocument.Tables i = i + 1 Next oTbl tbl2 = ActiveDocument.Tables(2) tbl2 = Split(tbl2, "") ' en hexa : 07 nbItem = UBound(tbl2) i = 0 ' parcourir toutes les lignes du tableau pour supprimer le dernier caractères For i = 0 To nbItem If i > nbItem Then Exit For If tbl2(i) = Chr(13) Or tbl2(i) = Chr(10) Then tbl2(i).Delete ' Exit For i = i + 1 MsgBox "[" & item & "]" item = Left(tbl2(i), Len(tbl2(i)) - 1) item = Trim(item) ' Supprime lesespaces à gauche et à droite MsgBox "[" & tbl2(i) & "]" Next i end sub
Le tableau que je vous donne en exemple est le tableau numéro 2
mon split me permet de supprimer ce caractère exotique (certainement de changement de ligne et de cellule) et transfère les données dans mon tableau tbl2
Ma boucle me permet de lire ligne à ligne le contenu pour nettoyer tout ça.
Je n'arrive donc pas à réaliser ce nettoyage, à savoir :
supprimer les enregistrements vide de mon tableau (ou qui contiennent chr(10) ou chr(13) ),
un bête trim pour supprimer les espace à droite et à gauche (qui fonctionnera quand je réécrirai dans mon tableau).
Remettre les données nettoyées dans le tableau (je pense que c'est tout bête et que je ne fois que le doigt et non la lune ...)
Comme j'ai plusieurs tableaux, je vais devoir faire la même chose pour chaque tableau afin d'avoir un tableau de type gros-gros dans lequel je pourrai aller piocher ce dont j'ai besoin.
Par la suite, avec l'aide d'un connecteur ODBC, inscrire dans ma base. Ou en passant par un fichier texte puis un batch qui ira déclencher un php qui fera un insert dans la base de ce fichier texte (dure réalité que la vie en entreprise)
Bref j'aimerai bien des idées sur comment supprimer et comment enrichir mon tableau.
Merci d'avance pour votre aide.
Partager