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 :

Supprimer des colonnes dans un fichier txt via macro excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Par défaut Supprimer des colonnes dans un fichier txt via macro excel
    est il possible de supprimer via une macro (excel ou autre) des colonnes dans un fichier txt, sans l'ouvrir, afin de l'alléger pour une exploitation avec une autre macro.

    merci de votre réponse

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Non, il faut l'ouvrir et le réécrire.

    Philippe

  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
    Citation Envoyé par MICPIC123 Voir le message
    est il possible de supprimer via une macro (excel ou autre) des colonnes dans un fichier txt, sans l'ouvrir, afin de l'alléger pour une exploitation avec une autre macro.
    Il n'est pas possible de lire (et encore moins modifier) des données d'un fichier (tous logiciels confondus) sans l'ouvrir.

    Il est possible, en VBA, de traiter un fichier comme une base de données, ce qui donne l'illusion qu'on ne l'ouvre pas.
    Mais c'est une procédure plus complexe que les méthodes traditionnelles.
    Y a-t-il une raison pour que tu souhaites passer par un tel moyen plutôt que d'utiliser une méthode plus simple ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Il n'est pas possible de lire (et encore moins modifier) des données d'un fichier (tous logiciels confondus) sans l'ouvrir.

    Il est possible, en VBA, de traiter un fichier comme une base de données, ce qui donne l'illusion qu'on ne l'ouvre pas.
    Mais c'est une procédure plus complexe que les méthodes traditionnelles.
    Y a-t-il une raison pour que tu souhaites passer par un tel moyen plutôt que d'utiliser une méthode plus simple ?
    le fichier TXT est trop lourd, 10 Millions de lignes, j'ai fait une macro pour en extraire les données par rapport à un liste d'élément, mais c'est trop long en terme de traitement. j'aurais aimer réduire les données du fichier txt pour le rendre moins lourd et donc je l'espère plus rapide.

  5. #5
    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
    Citation Envoyé par MICPIC123 Voir le message
    le fichier TXT est trop lourd, 10 Millions de lignes.
    Avec ce volume de données, tu devrais t'orienter vers un SGBD plutôt que vers un tableur.

  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
    Bonjour !

    Citation Envoyé par MICPIC123 Voir le message
    le fichier TXT est trop lourd, 10 Millions de lignes
    Donc à réaliser en VBScript évitant ainsi de bloquer Excel et sera donc exécuté en tâche de fond …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    regarde ce code et etudie le bien!! j'ai commenté chaque ligne

    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
    Sub extract_colonne()                                                        ' recupe le texte complet avec input simple
        Dim x As Integer, lines As String, tabL, L As Long, C As Long, separateur, newcode
        x = FreeFile: separateur = ","                                                           ' adapter le separateur ici
        fichier = "C:\Users\polux\Desktop\test.csv"    ' adapter le chemin ici
        Open fichier For Input As #x: lines = Input$(LOF(x), #x): Close #x                     ' ouverture du fichier en memoire
        Debug.Print " texte original!dans le fichier a la base " & vbCrLf & lines & vbCrLf & "*************************" & vbCrLf 'affichage du texte dans le debug
        tabL = Split(lines, vbCrLf)                                                            ' coupe le texte par ligne
        For L = 0 To UBound(tabL)                                                              ' 1 ere boucle sur les ligne du tableau
            ligne = Split(tabL(L), ",")                                                        ' 2d coupe sur les separateur sur la ligne pour les colonnes
            For C = 0 To UBound(ligne)                                                         ' boucle sur les colonne de cette ligne
                ' on ne prends pas les colonne (4 et 5)donc  en variable tableau index (3 et 4)
                If C <> 3 And C <> 4 Then newcode = newcode & ligne(C) & separateur            ' on réécrit le texte dans une variable sans les morceaux index  3 et 4
            Next
            newcode = newcode & vbCrLf                                                         ' on ajoute un saut de ligne
        Next
        Debug.Print "texte avec les colonnes en moins " & vbCrLf & newcode                     ' affichage du nouveau texte dans le debug
    End Sub
    regarde le resultat

    Nom : Capture.JPG
Affichages : 1303
Taille : 204,7 Ko

    il ne reste plus qu'a coller newcode sur le sheet et faire un textToColumns

    edit:
    on c'est croisé
    pour un gros fichier opter pour la lecture ligne par ligne avec open for input et peut etre meme ré écrire le texte dans un newfichier temp avec open for (output pour la first ligne) et append pour le reste
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Une solution serait de passer par MSQuery pour extraire ce que tu souhaites du txt.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. aligner des colonnes dans un fichier txt android
    Par carus dans le forum Android
    Réponses: 0
    Dernier message: 15/12/2015, 18h10
  2. [CSV] Ajouter et supprimer des ligne dans un fichier CSV
    Par gpsevasion dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2007, 17h00
  3. Réponses: 4
    Dernier message: 13/12/2006, 17h10
  4. Remplacer / Supprimer des données dans un fichier txt
    Par PedroBD dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 13h33
  5. Réponses: 5
    Dernier message: 21/10/2005, 11h48

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