Bonjour à tous,
j'ai créé un code VBA pour importer des fichiers texte dans un fichier Excel mais je rencontre un problème avec certaines données : celles qui commence par un ou plusieurs 0, celui(ceux)-ci disparaissent ce qui me pose un gros soucis pour la suite car il est indispensable.
Le but de ce document est de récupérer le contenu, de le mettre dans une forme précise puis de l'utiliser pour importer les absences des salariés en paie. Certains matricules de salariés commencent par 1 ou plusieurs 0, mais la taille n'est pas toujours fixe pour chaque salarié.
Ci dessous le code VBA : (généré en grosse partie via l'enregistreur de macro, n'ayant pas d'idées de comment faire ça, et n'ayant pas de caractères ou autre précis permettant de délimiter les colonnes)
Ci-dessous un exemple de contenu de fichier texte (les matricules se situent après les deux lettres "EV"):
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
55
56
57
58
59
60
61
62 Sub import_fichiers_txt() Dim fichier As String, chemin As String chemin = "C:\Users\GUIGUI\Desktop\Extract Carlabella\" fichier = Dir(chemin & "*.txt") nb_lignes_absences = 2 If Cells(nb_lignes_absences, 1) = "" Then nb_lignes_absences = 2 Else Do While Cells(nb_lignes_absences, 1) <> "" nb_lignes_absences = nb_lignes_absences + 1 Loop nb_lignes_absences = nb_lignes_absences - 1 End If Call Module1.importation(chemin, fichier, nb_lignes_absences) End Sub Sub importation(chemin, fichier, ligne) With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & chemin & fichier, Destination:=Range("$A$" & ligne)) .Name = fichier .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlFixedWidth .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileFixedColumnWidths = Array(2, 7, 7, 8, 5, 8, 8, 56, 75, 35, 12, 3) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub
Si par hasard quelqu'un a une idée de comment résoudre mon problème (quitte à utiliser une autre solution pour importer les données), ce serait franchement super car là, je ne vois pas comment faire....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 EV02380 096119/03/1800:0121/03/1800:01 3.00 1 21/03/1815:55:50:79 31/03/18 EV52415 096119/03/1800:0120/03/1800:01 2.00 1 21/03/1815:55:50:79 31/03/18 EV52216 096119/03/1800:0123/03/1800:01 5.00 1 21/03/1815:55:50:80 31/03/18 EV53008 096113/03/1800:0116/03/1800:01 4.00 1 21/03/1815:55:50:80 31/03/18 EV02652 096112/03/1800:0116/03/1800:01 5.00 1 21/03/1815:55:50:80 31/03/18 EV52415 096112/03/1800:0116/03/1800:01 5.00 1 21/03/1815:55:50:80 31/03/18 EV01189 096109/03/1800:0131/03/1800:01 16.00 1 21/03/1815:55:50:81 31/03/18 EV52415 096108/03/1800:0109/03/1800:01 2.00 1 21/03/1815:55:50:81 31/03/18 EV02652 096108/03/1800:0109/03/1800:01 2.00 1 21/03/1815:55:50:81 31/03/18 EV52422 096105/03/1800:0109/03/1800:01 5.00 1 21/03/1815:55:50:82 31/03/18 EV52422 096105/02/1800:0109/02/1800:01 -5.00 1 21/03/1815:55:50:82 31/03/18
Merci par avance !
Partager