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 :

Problème macro traitement CSV


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 1
    Par défaut Problème macro traitement CSV
    Bonjour,

    J'ai réalisé une petite macro me permettant de lire une 30aine de fichier csv afin d'extraire les données dans un fichier excel (1 csv = 1 page).

    J'ai deux problème avec mon code, le premier survient lors de la lecture des fichiers. A un moment j'obtiens l'erreur 7 "Mémoire insuffisante"', cela arrive vers le 27ème fichier, peut importe l'ordre dans lequel ils sont rangés le plus petit fait 1Ko et le plus grand 37ko, donc ça me parait assez improbable vu la petite quantité de donnée.

    Le second problème est que j'aimerais supprimer chaque fichier une fois qu'il est traité, mais la commande Kill path ne me donne que l'erreur 13 "Incompatibilité de type". J'ai vérifié x fois le chemin et l'ait même rentré à la main mais sans succès ni indice sur le problème.

    Voici mon 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
    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
    87
     
    Sub ImportCSV()
    '
    ' ImportCSV Macro
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+J
    '
     
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
     
        Sheets.Add.Name = "New"
     
        For Each xWs In Application.ActiveWorkbook.Worksheets
            If xWs.Name <> "New" Then
                xWs.Delete
            End If
        Next
     
        Dim filepath As String, file As String, fileName As Variant, folder As String
        Dim first As Boolean
     
        folder = ActiveWorkbook.Path + "\"
        fileName = Dir(folder + "*Configuration*" + "*.csv*")
     
        While fileName <> ""
     
            filepath = folder + fileName
            file = Mid(fileName, 17)
            file = Left(file, Len(file) - 4)
     
            If Len(file) >= 31 Then
                file = Left(file, 31)
            End If
     
            If first = False Then
                Sheets(ActiveSheet.Name).Name = file
                first = True
     
            Else
                Sheets.Add.Name = file
                ' MsgBox file
                Sheets(file).Activate
            End If
     
            With Sheets(file).QueryTables _
                .Add(Connection:="TEXT;" & filepath, Destination:=ActiveCell)
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .TextFilePromptOnRefresh = False
                .TextFilePlatform = xlMSDOS
                .TextFileStartRow = 1
                .TextFileParseType = xlDelimited
                .TextFileTextQualifier = xlTextQualifierDoubleQuote
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = False
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = True
                .TextFileSpaceDelimiter = False
                .TextFileColumnDataTypes = Array(1, 1, 1, 1)
                .TextFileTrailingMinusNumbers = True
                .Refresh BackgroundQuery:=False
            End With
     
     
            Debug.Print filepath
            If Len(Dir$(filepath)) > 0 Then
                'First remove readonly attribute, if set
                SetAttr filepath, vbNormal
                Kill (filepath)
            End If
     
            Set fileName = Nothing
            fileName = Dir
        Wend
     
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    QueryTables.Add consiste à ajouter une connexion, c'est à dire un lien à une source de données. Ce n'est pas recopier les données dans la feuille. Que se passe-t-il si vous enlevez le Kill de votre macro, lancez votre macro pour charger quelques csv, sauvez votre fichier Excel, renommez (ou supprimez) vos fichiers csv, réouvrez votre fichier Excel?

    Cordialement.

Discussions similaires

  1. Problème de traitement d'un fichier CSV
    Par cork1e dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2009, 15h53
  2. [Macro]Problème d'importation .CSV avec macro
    Par Eric Harvey dans le forum VBA Access
    Réponses: 8
    Dernier message: 12/04/2007, 17h04
  3. [VBA-E] Problème macro excel
    Par pontus21 dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 19/05/2006, 18h38
  4. Problème de traitement de file
    Par Bouguennec dans le forum Langage
    Réponses: 3
    Dernier message: 09/05/2006, 17h57
  5. Problème avec traitement de chaînes
    Par cortex007 dans le forum Langage
    Réponses: 6
    Dernier message: 25/04/2006, 16h22

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