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

Macros et VBA Excel Discussion :

Importer automatiquement un fichier CSV dans une feuille [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Importer automatiquement un fichier CSV dans une feuille
    Bonjour,

    Dans le cadre de mon stage, je dois mettre en place un tableau excel qui a pour but de suivre des données contenues dans un fichier CSV. Ces données sont séparées par une virgule et j'ai besoin de tous les champs du fichier. Le fichier se nomme nva.csv et son chemin d'accès est F:\Suivi\nva.csv

    Le fichier nva.csv sera toujours le même et pour éviter toute confusion, il faudrait que le futur script efface les anciennes informations et re-importe les données du nouveau nva.csv (encore une fois, il s'agit toujours du même fichier, au même emplacement, le fichier Excel doit être en fait une espèce de "plateforme" de traduction).

    Les données doivent être importées dans la première feuille nommée "Nva".

    J'ai un très bon niveau de compréhension sur Excel mais je n'ai strictement aucune connaissance en VBA, je viens d'imprimer quelques cours mais ma direction me presse et au jour d'aujourd'hui je ne sais même pas dans quelle partie du logiciel Microsoft Visual Basic il faut insérer les "bribes" de code que je trouve sur d'autres forums.

    D'avance, je vous remercie de votre aide.

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Utilise l'enregistreur de macro pour savoir comment importer des données. Utilise le dans le cas qui t'intéresse et donne nous le code on t'aidera a l'adapter

    Pour effacer le contenues d'une feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets("Nva").cells.clear
    Après quelque conseil plus généraux pomper des code a droite et a gauche et un bon moyen de ne pas comprendre son propre code et donc de ne pas être en mesure d'avoir un programme fiable.
    Tu es en stage donc soit tu as menti lors de ton entretient en te présentant comme un dieu du VBA soit il save que tu va commencer par appendre donc comment par lire quelque tuto et faire quelque exercice tu trouvera tout ce qu'il faut ici
    Commence par celui intitulé
    Vos premiers pas dans l'éditeur de macros Excel

    pour ceux qui n'ont pas de temps a perdre il vau mieux s'arrêter ici

    Dernièrement "au jour d'aujourd'hui" est un des pire pléonasme de notre langue, s'il te plais ne me force pas a le lire une fois de plus on l'entend suffisamment quand des blaireau sont interrogé au infos et qu'ils veulent se donner de la contenance, ne les imites pas (désolé pour la parenthèse)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Ce n'est pas une mission de mon stage, c'est un gros dépannage

    Quand je fais ma macro et que je me rends dans "Module 1", j'ai récupéré ce code

    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
    Sub importer_nva_csv()
    '
    ' importer_nva_csv Macro
    ' Macro enregistrée le 11/06/2009 par x
    '
     
    '
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;F:\Clinique\nvaview.csv" _
            , Destination:=Range("A1"))
            .Name = "nvaview_1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = True
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    End Sub
    Comment rajouter "des arguments" pour automatiser ce processus d'import à l'ouverture de excel? où dois-je insérer ta formule pour l'effacement de la feuille?

    Merci beaucoup

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Pour que la macro se lance a l'ouverture va dans le module Thisworkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_open()
    'ton code
    End Sub
    si le fichier est toujours au meme endroit tu met la ligne de code pour nettoyer ton onglet juste et tu copie ton code a la suite si la postion peut varier cela devrai fonctionné (je n'ai pas testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QuelFichier = Application.GetOpenFilename("Fichier de données (*.csv), *.csv")
     
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;" & QuelFichier 
    'la suite

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Ok ça marche, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Import de plusieurs fichiers (.lst) dans une feuille Excel
    Par lach12 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/01/2015, 09h34
  2. [AC-2007] Import automatique de fichiers text dans une table unique
    Par dol75 dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/10/2009, 13h20
  3. [XL-2003] Insertion d'un fichier csv dans une feuille xls
    Par giom182 dans le forum Excel
    Réponses: 10
    Dernier message: 20/07/2009, 18h52
  4. Liste des fichiers CSV dans une feuille
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 19/02/2009, 08h05
  5. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59

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