Bonjour le forum,
j'appelle à l'aide concernant l'application workbooks.opentext
Je me sers de cette fonction pour ouvrir un fichier cvs. Ce fichier contient différents data (caractères et nombre), séparés par des espaces ou virgules. Ensuite les data peuvent être constituées de 2 parties: "une information":"une valeur"
voici un exemple de ligne:
20.11.2019 07:02:19 Bal2 W:2.2,Bal1 W:2.1,Ink W:0.1, ID:1234567891234567891
L'ouverture en différentes colonnes sous excel ne pose pas de soucis. En effet, j'utilise l'espace et la virgule comme séparateur, auxquels j'ajoute le caractère ":", ce qui donne:
20.11.2019 07 02 19 Bal2 W 2.2 Bal1 W 2.1 Ink W 0.1 ID 1234567891234567891
Cependant, la dernière data de chaque ligne est une suite de 19 chiffres, que je veux utiliser comme caractère. Seulement, lors de l'ouverture, cette data est considérée comme un nombre (du moins je pense) et est "transformée" (changement dans l'écriture et perte de données). En effet, la dernière data est transformé en :
1234567891234567891 --> 1234567891234560000
ou pire
1234567891234567891 --> 1,23456E+18
Comment faire pour conserver la suite "1234567891234567891" en un caractère que je souhaite manipuler ensuite, pour retrouver les informations contenues dedans (date, ID, position et autre).
Voici mon code
En espérant que le sujet soit claire. J'ai bien essayé de chercher, sans réponse pour le moment. J'ai toujours la possibilité de ne pas "convertir" les data csv et de tout garder sur une ligne, pour ne manipuler qu'une suite de caractère. Mais la manipulation est fastidieuse dans ce cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 sub test Dim MP3 as Variant Dim C1 as Workbook Set C1 = ThisWorkbook MP3 = Application.GetOpenFilename(, , , , False) 'recupération du chemin If MP3 = False Then Exit Sub Workbooks.OpenText Filename:=MP3, DataType:=xldelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Comma:=True, Space:=True, Other:=True, OtherChar:=":" end sub
J'ai essayé de mettre toute les cellules en format "texte" avant d'exécuter la macro, sans succès.
Merci d'avance de votre retour,
Cdt,
johann
PS: j'en profite également pour demander si le
est obligatoire ou non, et si un autre moyen que "ThisWorkbook" est possible pour la manipulation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set C1 = ThisWorkbook
Partager