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 :

Traiter un fichier .txt


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut Traiter un fichier .txt
    Bonjour!

    Voilà, mon problème est très simple mais je n'ai pas de bonnes connaissance en programmation sur excel.

    J'aimerais savoir s'il est possible de traiter un fichier .txt contenant des informations du style (provenant de AUTOCAD)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                  Espace
                    en point, X=111322.3898  Y=152163.6342  Z=  23.8230
     
                      SOMMET    Calque: "eau_navig"
                                Espace: Espace objet
                       Couleur: 5 (bleu)    Type de ligne: "DASHED"
                                 Maintien = 3263f
                Espace
                    en point, X=111324.8895  Y=152167.3594  Z=  23.8230
     
                      SOMMET    Calque: "eau_navig"
                                Espace: Espace objet
    (...)
    Continuant ainsi sur plusieurs dizaines de points.

    Le but de la manoeuvre est au final avoir trois colonnes (X,Y,Z) contenant uniquement les coordonnées X,Y,Z de chaque point pour après créer un fichier texte contenant uniquement ces informations.

    Comment puis-je arriver à mes fins?

    Existe-t-il un moyen plus rapide qu'Excel? Je sais également utiliser matlab.

    Un grand merci!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Technicien qualité et métrologie industrielle
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien qualité et métrologie industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Par défaut
    Bonjour,

    j'utiliserais la démarche suivante :

    - copie du fichier texte sur une feuille Excel
    - compter le nombre de lignes totale si cela est variable
    - supprimer toutes les lignes inutiles (la première, puis en partant de la deuxième ligne : sélectionner les 6 prochaines lignes et les supprimer)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 0 To nblines
    j = 2 + i * 7
    k = 7 + i * 7
    'si le nombre de lignes sont variables la sélection se fait des lignes de j à k
    - comme le nombre de caractères à l'air régulier, j’utiliserais la formule :

    =STXT(case;n° de départ;n° de caractères)
    pour isoler X, Y et Z...

    - copier les données sur un fichier texte vierge si cela est nécessaire

    Si cette solution t’intéresse tiens moi au courant...

    Cordialement

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste pour voir si ça convient :
    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
     
    Sub lireFichierTexte()
     
        Dim Tbl() As String
        Dim Ligne As String
        Dim X As Double
        Dim Y As Double
        Dim Z As Double
        Dim I As Long
        Dim J As Long
        Dim PosX As Integer
        Dim PosY As Integer
        Dim PosZ As Integer
     
        'ouvre le fichier texte et stocke les données
        'dans un tableau
        Open "F:\Fichier.txt" For Input As #1
     
            Do While Not EOF(1)
                Line Input #1, Ligne
                I = I + 1
                ReDim Preserve Tbl(1 To I)
                Tbl(I) = Ligne
            Loop
     
        'referme le fichier
        Close #1
     
        'pour l'inscription à partir de la ligne 2
        J = 1
     
        For I = 1 To UBound(Tbl)
     
            'recherche la ligne des points
            If InStr(Tbl(I), "en point") <> 0 Then
     
                'remplace le point par la virgule (à voir si nécessaire ?)
                Tbl(I) = Replace(Tbl(I), ".", ",")
     
                'récupère la position des lettres
                PosX = InStr(Tbl(I), "X")
                PosY = InStr(Tbl(I), "Y")
                PosZ = InStr(Tbl(I), "Z")
     
                'extrait les valeurs numériques
                X = CDbl(Mid(Tbl(I), PosX + 2, PosY - PosX - 2))
                Y = CDbl(Mid(Tbl(I), PosY + 2, PosZ - PosY - 2))
                Z = CDbl(Mid(Tbl(I), PosZ + 2, Len(Tbl(I)) - PosY - 2))
     
                'et les inscrit dans la feuille active à partir de la seconde ligne
                J = J + 1
                Range("A" & J) = X
                Range("B" & J) = Y
                Range("C" & J) = Z
     
            End If
     
        Next I
     
    End Sub
    Hervé.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut
    Un grand merci pour votre aide!

    Je dois vous avouer que lors de mon message je venais d'apprendre qu'il était possible d'utiliser excel avec autre chose que les cellules donc je suis preneur de tout tutoriel qui montre où taper ces lignes, comment compiler, en voir le résultat, etc

    J'ai fini par trouver en chipotant avec matlab, mais vos réponses m'ouvrent à une parcelle d'excel qui m'était inconnue, merci à vous!

    Bonne journée

Discussions similaires

  1. Traiter un fichier .txt avec plusieurs colonnes
    Par degio1er dans le forum C#
    Réponses: 7
    Dernier message: 13/09/2014, 00h16
  2. [Toutes versions] Traiter un fichier txt à partir d'une macro VBA Excel
    Par alaize dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2011, 15h25
  3. comment traiter un fichier.txt avec "replace" ?
    Par pasrico dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 11/04/2011, 23h06
  4. Réponses: 5
    Dernier message: 19/06/2008, 23h03
  5. Débutant, Comment traiter un fichier txt (csv)?
    Par djodjo2050 dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/10/2007, 17h41

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