Bonjour à vous toutes et tous,
Je reçois un fichier brut en PDF avec des données chiffrées sous forme de tableau.
Après avoir copier / coller ces données dans un Excel, j'ai besoin de les convertir car elles sont toutes sur une colonne par ligne.
Je passe par une macro car il y a beaucoup de lignes. Le principe est simple. En fonction du nombre de caractère contenu dans chaque ligne, la conversion (en largeur fixe), ne se fait pas selon les mêmes critères. Voici donc mon code :
Je rencontre déjà un premier problème. Sur ma première cellule (A1), la valeur j est de 71. si je tape la formule
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 Sub DataTreatmentTVAD() Dim LRTVAD1 As Integer, LRTVAD2 As Integer, i As Integer, j As Integer Application.ScreenUpdating = False With Sheets("Traitement TVA déductible") LRTVAD1 = .Cells(.Rows.Count, 1).End(xlUp).Row For i = To LRTVAD1 j = Len(Trim(.Cells(i, 1).Value)) If j < 35 Then .TextToColumns Destination:=.Cells(i, 1), DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(26, 1), Array(42, 1), Array(59, 1)), TrailingMinusNumbers:=True ElseIf j > 35 And j > 43 Then .TextToColumns Destination:=.Cells(i, 1), DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(26, 1), Array(37, 1), Array(58, 1)), TrailingMinusNumbers:=True Else .TextToColumns Destination:=.Cells(i, 1), DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(24, 1), Array(39, 1), Array(58, 1)), TrailingMinusNumbers:=True End If Next i End With Application.ScreenUpdating = True End Suben cellule B1, il me donne 30. Quelqu'un peut-il m'expliquer ce que j'ai mal codé SVP ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part =NBCAR(SUPPRESPACE(A1))
Par ailleurs, et là c'est bloquant, quand je lance la macro, voilà le message d'erreur rencontré : "Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet".
Où est-je fait l' (les) erreur(s) ?
Je vous remercie par avance pour votre aide et vous souhaite une agréable journée.
Partager