Ouvrir un fichier .dat dans Excel et sauvegarder en .xls

Résolu/Fermé
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 11 avril 2016 à 16:35
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 - 11 avril 2016 à 21:23
Bonjour,

J'aimerais faire une macro pour ouvrir un fichier .dat dans excel, ensuite lui appliquer quelques mise en formes sur les lignes et colonnes pour terminer à le sauvegarder en .xls.

J'ai fait quelques recherches et quelques essais, je n'ai pas trouvé exactement ce que je voulais!

J'ai enregistrer une macro avec l'aide pour voir les opérations effectués dont voici le code:
Workbooks.OpenText Filename:= _
        "C:\Entrepot\BDFS\1_Piézomètres\1-Basses-Terres du Saint-Laurent\Cordes vibrantes\St-Prosper\Fichiers DAT\test.dat" _
        , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
        , 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
        Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array( _
        28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), _
        Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), Array(40, 1), Array( _
        41, 1)), TrailingMinusNumbers:=True


Et voici ce que j'ai essayé:
Private Sub CommandButton1_Click()
Dim oFso As Object, oTxtStream As Object
Dim pathFichierDat As String, lignesFichierDat() As String, iLigne As Long
 
    pathFichierDat = "M:\Entrepot\BDFS\1_Piézomètres\test.dat"
 
    'ouvrir le fichier .dat (en lecture seule)
    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set oTxtStream = oFso.OpenTextFile(pathFichierDat, 1)
 
    'récupérer dans un tableau chaque ligne du fichier .dat
    lignesFichierDat = Split(oTxtStream.ReadAll, vbNewLine)
End Sub
 


Merci pour votre aide!


A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 avril 2016 à 17:33
Bonjour,
je n'ai pas trouvé exactement ce que je voulais!
Si ces codes ne conviennent pas, dites ce que vous vouliez en resultat !!!!!
1
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
11 avril 2016 à 18:51
Re,

Le code que j'ai trouvé ne fonctionne pas, il ne m'ouvre pas le fichier test.dat dans une feuille excel.

En bout de ligne, ce que je veux c'est de pouvoir ouvrir le fichier .dat de mon choix par boîte de dialogue.

Merci!
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
11 avril 2016 à 19:24
0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1
11 avril 2016 à 20:01
Merci beaucoup pour la réponse!

Il ouvre effectivement le fichier .dat mais ne fait aucune mise en forme. Est-ce possible de l'ouvrir et d'effectuer les même manipulations qu'en manuel. Délimité et déterminé le type de séparateur par la virgule?

Merci!
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775 > bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023
11 avril 2016 à 20:28
Il suffit de modifier la macro, le délimiteur virgule c'est le format csv anglais (avec .dat au lieu de .csv) !!
0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
11 avril 2016 à 20:37
Re,

Ça ne fonctionne pas! Voici le changement:
Select Case strType
    Case "en.csv"
      strExtension = ".dat"
      intFormat = 2            'Csv anglais : virgule
      blnLocal = False


Est-ce bien ça?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775 > bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023
11 avril 2016 à 20:52
Ça ne fonctionne pas! c'est-à-dire ?
0
bassmart Messages postés 281 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 19 décembre 2023 1 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
11 avril 2016 à 20:56
Il ouvre le fichier, mais il n'y a pas de mise en page en colonne en utilisant les virgules comme séparateur.
0