IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

import fichier texte délimité + filtre


Sujet :

Excel

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 88
    Par défaut import fichier texte délimité + filtre
    Bonjour le forum,

    Mon besoin est d'importer depuis Excel des fichiers textes générés chaque jour.
    Je souhaiterai par le biais d'un presse-bouton faire :
    données/données externes/importer des données qui se trouve sur un lecteur réseau (chemin à définir par défaut).
    Ne pas importer toutes les colonnes.
    Convertir la colonne date AAAAMMJJ24MISS en JJ/MM/AAAA 00:00:00.
    Filtrer les lignes et le copier/coller vers un nouveau onglet.
    Cette procédure doit se faire tous les jours.
    Donc voici le code pour l'import :
    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
    Sub ImporterFichier()
    Dim strFiles As String
    strFiles = Application.GetOpenFilename _
    (FileFilter:="Fichier texte(*.txt),*.txt" _
    , Title:="Sélectionnez le fichier à ouvrir")
     
    On Error GoTo Annuler
    ActiveSheet.QueryTables.Add(Connection:="TEXT;" & strFiles _
    , Destination:=Range("A1")).Refresh
     
    GoTo Suite
    Annuler: MsgBox "Vous n'avez sélectionner aucun fichier"
    Range("A1") = ""
    Suite:
     
    End Sub
    Quand je compile, les colonnes sont toujours délimités par ";"

    Merci si vous pouviez corriger le code de tel sorte à obtenir les champs en colonnes dans Excel.
    Si vous avez une idée du style CDate pour convertir le format de la date, faut t'il créer un autre code ?

    En tout cas merci pour votre aide !

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Par défaut
    Bonjour Bouba,

    Pour ce qui est de la récupération des données des feuilles de tes onglets, tu pourrais faire comme suit :
    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
    '@xfilename : nom du fichier
    '@xlpath : chemin d'accès
    Public Function consolidation(xlFileName As String, xlPath As String)
    Dim ...'ce dont tu as besoin : def des colonnes de ta feuille etc
     
        iColID = GetColumnMatchEx(xlFeuille, NomColonne)
        ....
        'Se connecte à la feuille Excel
        Set oCnn = connectToExcel(xlPath + "\" + xlFileName)
        'Récupère les données de taux bonus
        Set oRec = oCnn.OpenRecordSet("SELECT * FROM [" & xlFeuille.name & "$] ORDER BY [" & NomColonne& "] ASC")
     
        If (Not oRec Is Nothing) Then
            iRec = 0
            Do While Not oRec.EOF
                If Not IsNull(oRec.Fields(NomColonne).value) Then
                    'Met à jour la feuille 
                    iRow = ChercherLastLigne 'récupère la dernière ligne de la feuille
                    If iRow > 0 Then
                        xlFeuille.Cells(iRow, iColID) = IIf(IsNull(oRec.Fields(NomColonne).value), "", oRec.Fields(NomColonne).value)
     
                    End If
                End If
                iRec = iRec + 1
                frmChargement.setProgressBarValue iRec, oRec.RecordCount
                oRec.moveNext
            Loop
            Set oRec = Nothing
        End If
        DoEvents
        oCnn.Fermeture
        Set oCnn = Nothing
        xlFileName = Dir
    End Function
    cette fonction te permet de mettre à jour une feuille (en mettant à la fin les lignes).
    Pour la convertion de date, tu peux la faire en même temps (le filtre, le mettre dans la requête tout simplement). Pour cela je laisse quelqu'un d'autre répondre.

    Si tu veux éditer tes lignes, juste un test à faire avec les "clés primaires" de ta feuilles.

    Voili voilou en espérant que ca puisse un peu t'aider

    EDIT : contrôle bien le code car je l'ai nettoyé un peu donc... , et ton message aurait dû être dans la partie VBA d'Excel (j'ai fait la même erreur de toute )
    Pour le cas où, si les séparateurs sont bien des ";" tu pourrais renommer ton fichier en .csv non ? (si ce n'est pas déja fait). Ce que j'ai mis marche parfaitement avec des fichiers .csv (avec séparateurs ";")

Discussions similaires

  1. [DATA] Importation fichier texte : délimitation des colonnes
    Par VuVietHai dans le forum SAS Base
    Réponses: 2
    Dernier message: 28/07/2014, 16h05
  2. Réponses: 1
    Dernier message: 14/12/2007, 10h33
  3. import fichier texte non délimité
    Par elland dans le forum VBA Access
    Réponses: 9
    Dernier message: 30/11/2007, 15h57
  4. pb importation fichier texte
    Par borisa dans le forum Access
    Réponses: 5
    Dernier message: 24/02/2006, 18h44
  5. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo