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 :

Ouverture d'un fichier txt en vba : peut-on appliquer une fonction au fichier ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut Ouverture d'un fichier txt en vba : peut-on appliquer une fonction au fichier ?
    Bonjour,

    je cherche à ouvrir un fichier txt avec vba dans excel en appliquant la fonction trim à tous les champs de ce fichier. Savez-vous si on peut le faire directement ? car je voudrais eviter de faire des boucles pour circuler sur toutes les cellules du fichier pour y appliquer la fonction.

    Petite précision, le but est bien de supprimer les espaces inutiles dans les chaînes de caractères, espaces générés par Factset(base de données) quand on exporte des txt.

    Merci d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour',

    fais un Trim sur chaque ligne lue par Line Input ...

    Mais tu ne nous parles pas de la structure éventuelle de ton fichier texte (et je vois que tu parles de champs ...) ... Les choses peuvent alors être fort différentes, lecture y compris !

  3. #3
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut
    Ok, le fichier txt est en pièce jointe, a noter que le nombre de lignes est variables et les colonnes peuvent l'être

    De ce que j'ai compris de l'aide excel pas sur de comprendre comment utiliser Line imput

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut
    ha mince , j'avais pas vu que tu n'ouvrais les pièces jointes, voici ce qui sort par exmple:


    Ligne 1 :B10QRG9 ;ZUBLIN IMMO FRANCE ; NA; NA;FRANCE ;@NA ;EUR

    Ligne 2 : 5983816 ;ZURICH FIN SVS GRP ; 403,010; 4030;CH ;CH00110753;CHF

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Qelle méthode utilises-tu pour ouvrir ton txt ? Tu passes par Workbooks.OpenText..., par Open "Chemin\lefichier.txt" for input as #, par fso (FileSystemObject)... ?

    Puisque tes séparateurs sont des ";", tu peux toujours tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.OpenText Filename:="c:\Rep\Fichier.txt", DataType:=xlDelimited, Other:=True, OtherChar:=";"
    Ensuite, pour supprimer les espaces dans toute ta feuille, tu peux utiliser l'enregistreur de macro mais ça devrais donner un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart

  6. #6
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut
    super, merci ... c'est exactement ce qu'il me fallait

  7. #7
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut
    Oups, en fait le replace ne me convient pas car je ne dois pas supprimer les espaces entre les mots, mais bien comme le fait la fonction trim c'est à dire en fin ou début de chaine...

    une idée ? pour l'instant je bulle

  8. #8
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut
    J'ai trouvé une solution, la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Dim plage As Range
    Directory = "R:\GERANTS\Quant\db\_TEST\"
    Workbooks.OpenText Filename:=Directory & "factset_data.txt", DataType:=xlDelimited, Other:=True, OtherChar:=";"
    'Cells.Value = Trim(Cells.Value)
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Set plage = Selection
     
    For Each cell In plage
        If (cell <> 0 Or cell <> "") Then cell.Value = Trim(cell)
    Next
    Si quelqu'un a mieux je suis preneur

    Thanks

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Non, pas mieux sauf que tu peux simplifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim cell As Range
    Directory = "R:\GERANTS\Quant\db\_TEST\"
    Workbooks.OpenText Filename:=Directory & "factset_data.txt", DataType:=xlDelimited, Other:=True, OtherChar:=";"
    For Each cell In ActiveSheet.UsedRange
        If (cell <> 0 Or cell <> "") Then cell.Value = Trim(cell)
    Next
    Bonne suite

  10. #10
    Membre régulier
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Points : 107
    Points
    107
    Par défaut
    ha cool, je connaissais pas le usedrange....ca va me simplifier la vie pour pa mal de choses

    thanks

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 18/07/2012, 10h27
  2. Import de fichiers txt en VBA avec paramètres automodulabes
    Par guiguisb dans le forum VBA Access
    Réponses: 0
    Dernier message: 10/09/2007, 11h20
  3. Importation fichier txt en VBA
    Par willytito dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/08/2007, 11h22
  4. Réponses: 6
    Dernier message: 03/05/2007, 13h42
  5. Peut-on appliquer une fonction sur un champs ajouté?
    Par tinwul dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/05/2006, 17h02

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