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 :

Récuperer les données d'un fichier et traiter les données


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Récuperer les données d'un fichier et traiter les données
    Bonjour,
    J'ai un soucis pour la configuration d'une maccro pour Excel.
    Lors de l’acquisition de données, je reçois un fichier en format fichier. Ce fichier lorsque je l'ouvre avec le bloc note contient des lignes comme suit:
    |1 |P abso | 5.15738 | 0.989478 |6.5239e-05|Bar abs |237 |

    Je voudrais, si possible, que la macro propose a l'utilisateur de selectionner le fichier dans une fenetre windows et que par la suite la macro puissent récupérer le texte et le diviser en cellule lorsqu'il y a le caractère "|" et l'écrire dans une nouvelle fenêtre de mon fichier excel ( prédéfini ou non).
    Est ce que tous cela est possible ? Auriez vous une solution?

    J'avais commencé à le rediger, voila ce que cela donne
    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
    Sub ouvrir_fichier()
    FichiersChoisis = Application.GetOpenFilename("fichiers texte, *.txt", , , , True)
    If IsArray(FichiersChoisis) Then
      For i = 1 To UBound(FichiersChoisis)
        fichier = FichiersChoisis(i)
     
        Workbooks.OpenText Filename:=fichier, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
          :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
          False, Comma:=False, Space:=False, Other:=True, FieldInfo:=Array(1, 1), _
          TrailingMinusNumbers:=True
        '
        'traitement à réaliser
        '
        'enregistrement du fichier
        ActiveWorkbook.SaveAs Filename:=Left(fichier, Len(fichier) - 4) & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
      Next
    End If
    End Sub
    Le soucis, il faut que je passe le fichier en format .txt et le texte est écrit dans un nouveau fichier excel.
    De plus, je n'arrive pas faire remplacer le " | " par une cellule suivante (ex: lors la lecture de ce caractere, le texte est coupé a cet endroit et on passe de la cellule (i,j) à (i;j+1).

    Si quelque chose n'est pas clair, n'hesitez pas à me demander. Merci d'avance.

  2. #2
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour,

    les phrases suivantes soit ne veulent rien dire soit ne sont vraiment pas claires !

    Citation Envoyé par kekefff Voir le message
    […] je reçois un fichier en format fichier.

    Le soucis, il faut que je passe le fichier en format .txt et le texte est écrit dans un nouveau fichier excel.
    Qui plus est dans le code dans l'instruction des lignes n°7 à 10 le séparateur a été oublié !
    Lire l'aide VBA de la méthode OpenText, paramètre OtherChar

    Sinon en joignant un fichier texte source et un classeur en découlant avec une feuille résultat désiré …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Effectivement, elles ne sont pas claires et je m'en excuse.
    Je vais essayer d'éclaircir tous cela.

    Le fichier que je veux exploiter est un fichier contenant des valeurs de capteurs sur différentes voies.
    Mais ce que j'essayais de vous expliquer, c'est que ce fichier n'a pas d'extension. C'est un fichier brut, sans format. D'où mon charabia "[…] je reçois un fichier en format fichier."

    Pour le reste de mon explication, je voulais dire que: Pour la macro actuelle, je suis obligé de mettre mon fichier brute avec l'extension ".txt" pour l'utiliser ce qui implique qu'il est par la suite inutilisable par d'autre logiciel que j'utilise.
    Est il donc possible de récupérer le texte de ce fichier sans en modifié le format?

    Et pour finir, la macro actuelle me créer un nouveau classeur Excel et non pas une nouvelle feuille dans le classeur Excel où il y a la macro. Excite t-il une fonction qui gère cela?

  4. #4
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut

    D'accord, un fichier sans extension !

    Un tel fichier n'a pas besoin d'être renommé pour l'ouvrir par programme.

    Et il est aussi possible de l'ouvrir en mémoire et de l'utiliser dans une variable tableau
    ou dans une feuille de calculs (exemple ici), suffit juste de créer une nouvelle feuille au préalable …

    Plus simple que cet exemple une fois le fichier lu dans une variable tableau puis copié dans une colonne :
    utiliser la méthode TextToColumns.

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Récuperer les données d'un fichier txt pour les insérer dans une Table
    Par sandokhane dans le forum Bases de données
    Réponses: 47
    Dernier message: 31/05/2014, 15h10
  2. Réponses: 5
    Dernier message: 23/05/2014, 13h09
  3. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  4. Traiter les champs d'un fichier conséquent
    Par darkrio dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/05/2007, 11h10
  5. Réponses: 1
    Dernier message: 05/09/2006, 17h56

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