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 :

[VBA] Importation d'un fichier csv sur plusieurs feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Par défaut [VBA] Importation d'un fichier csv sur plusieurs feuilles
    Bonjour, Bonsoir,

    Dans le cadre d'un projet, je dois importer un fichier csv dépassant le million de ligne, pour cela j'ai eu l'idée d'importer le fichier csv sur plusieurs feuilles, c'est à dire que mon programme devra importer déjà à la première feuille et quand la première feuille est pleine, il remplit le reste du fichier dans la 2ème feuille et tout ça dans un même classeur,

    Malheuresement, je coince et je ne trouve actuellement aucune solution à mon problème et je tourne en rond.

    Pouvez vous m’aidez svp ?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Par défaut Oubli
    Ah oui et j'allais oublier de vous donner le code que j'ai déjà faite, le programme permet d'ouvrir une fenetre permettant d'importer le fichier csv,

    Cordialement

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
     
    Option Explicit
        Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
                 "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
        Private Type OPENFILENAME
          lStructSize As Long
          hwndOwner As Long
          hInstance As Long
          lpstrFilter As String
          lpstrCustomFilter As String
          nMaxCustFilter As Long
          nFilterIndex As Long
          lpstrFile As String
          nMaxFile As Long
          lpstrFileTitle As String
          nMaxFileTitle As Long
          lpstrInitialDir As String
          lpstrTitle As String
          flags As Long
          nFileOffset As Integer
          nFileExtension As Integer
          lpstrDefExt As String
          lCustData As Long
          lpfnHook As Long
          lpTemplateName As String
        End Type
        Function GetFileName(sFilter As String, sInitialDir As String, sTitle As String) As String
          Dim OpenFile As OPENFILENAME, lReturn As Long
     
          With OpenFile
            .lStructSize = Len(OpenFile)
            .lpstrFilter = sFilter
            .nFilterIndex = 1
            .lpstrFile = String(257, 0)
            .nMaxFile = Len(OpenFile.lpstrFile) - 1
            .lpstrFileTitle = OpenFile.lpstrFile
            .nMaxFileTitle = OpenFile.nMaxFile
            .lpstrInitialDir = sInitialDir
            .lpstrTitle = sTitle
            .flags = 0
          End With
          lReturn = GetOpenFileName(OpenFile)
          If lReturn = 0 Then
            GetFileName = ""
          Else
             GetFileName = Trim(OpenFile.lpstrFile)
          End If
        End Function
        Sub test()
          Dim sPathFic As String, sFilter As String
          sFilter = "Fichier d'export (*.csv)" & Chr(0) & "*.csv" & Chr(0)
          ' Donner le choix du fichier
         sPathFic = GetFileName(sFilter, "X:\Projet", "Sélectionnez le fichier à ouvrir")
          If sPathFic = "" Then Exit Sub
          '
         With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & sPathFic, Destination:=Range("$A$1"))
            .Name = "12062000_1"
            .FieldNames = True
            .RowNumbers = True
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = True
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
          End With
          Sheets("Feuil2").Select
          Range("B7").Select
          ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        End Sub

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Pourquoi ne pas passer par une simple lecture séquentielle avec une boucle while ?
    https://msdn.microsoft.com/fr-fr/lib.../gg264519.aspx
    Ca parait plus simple qu'une requête, non ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 14
    Par défaut
    Je trouve juste ça plus intéressant comme ca l'utilisateur pourrai choisir le fichier à importer qui lui plait

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Tu travail dans le même bureau que celui qui a posté cette question?

    http://www.developpez.net/forums/d16...a/#post8808312

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Salut Robert !


    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par dysorthographie Voir le message
    Bonsoir,
    Tu travail dans le même bureau que celui qui a posté cette question?

    http://www.developpez.net/forums/d16...a/#post8808312
    Ils doivent avoir le même professeur. Ou bien les professeurs s'abreuvent à la même source.

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par langv26 Voir le message
    Pouvez vous m’aidez svp ?
    Oui avec une présentation digne de ce nom, claire & exhaustive !

    Ce n'est vraiment pas compliqué de décrire la structure d'un pauvre fichier texte ainsi que le résultat attendu …

    Sans ce minimum vital répondant aux règles de ce forum je garde les solutions sous le coude,
    une partie étant déjà publiée dans les discussions de ce forum, suffit d'utiliser la recherche !

    A bon entendeur …

Discussions similaires

  1. [OS X] [SH] Croiser deux fichiers csv sur plusieurs critères
    Par medmaysais dans le forum Shell et commandes POSIX
    Réponses: 3
    Dernier message: 19/04/2016, 21h25
  2. [XL-2010] Import d'un fichier XML sur une feuille de calcul existante
    Par Crysta17 dans le forum Excel
    Réponses: 0
    Dernier message: 22/04/2014, 10h55
  3. Importer un fichier .csv sur excel avec VBA
    Par sambrook dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/01/2013, 12h47
  4. [AC-2003] Importer un fichier csv sur une table access
    Par mmmxtina dans le forum VBA Access
    Réponses: 0
    Dernier message: 10/08/2009, 15h16
  5. [XL-2003] Importer automatiquement un fichier CSV dans une feuille
    Par Mikayel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2009, 10h35

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