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

Excel Discussion :

mise en forme fichier texte particulier [XL-2003]


Sujet :

Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut mise en forme fichier texte particulier
    bonjour le phorum

    j'ai un petit fichier texte qui a un format particulier
    les informations sont en colonnes et je souhaiterai les intégrer en lignes dans excel
    j'ai un début de code qui me permet de chercher la première ligne et de la coller dans la cellule excel
    mais je ne parviens pas à integrer les lignes situées dessous ma ligne de référence
    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 test()
    Dim Cellule As Range   
    Dim ValeurLigne As String
     
      Set Cellule = Range("a2")
     
      Open ThisWorkbook.Path & "\log.txt" For Input As #1
      Do While Not EOF(1)
        Line Input #1, ValeurLigne
        If InStr(1, ValeurLigne, "Identifiant pli") <> 0 Then
          Cellule = Mid(ValeurLigne, 17)
          Set Cellule = Cellule(2)
        End If
      Loop
      Close #1
     
    End Sub
    ci dessous un exemple des informations du fichier texte
    Identifiant Pli : 639293
    Identifiant document : 1118855
    Corbeille : CORBEILLE_APRESMIDI
    Depuis le : Tue Nov 29 09:17:35 UTC+0100 2011
    Lot : PRISMA\S_MU_F_CHEQUE_FR\15747
    EN ATTENTE - Code marketing : MANLHS1211
    \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000864-0001_1.TIF
    \\svlvnas01\dharma\itesoft\res\1111\29\2011112900011\11000865-0001_1_1_1.TIF
    --------------
    Identifiant Pli : 639295
    Identifiant document : 1118859
    Corbeille : CORBEILLE_APRESMIDI
    Depuis le : Tue Nov 29 09:29:00 UTC+0100 2011
    Lot : PRISMA\S_MU_F_CHEQUE_FR\15747
    EN ATTENTE - Code marketing : MANLHS1211
    \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000868-0001_1.TIF
    \\svlvnas01\dharma\itesoft\res\1111\29\2011112900011\11000869-0001_1_1.TIF
    --------------
    Identifiant Pli : 639296
    Identifiant document : 1118861
    Corbeille : CORBEILLE_APRESMIDI
    Depuis le : Tue Nov 29 09:52:12 UTC+0100 2011
    Lot : PRISMA\S_MU_F_CHEQUE_FR\15747
    EN ATTENTE - Code marketing : MANLHS1211
    \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000870-0001_1.TIF
    \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000871-0001_1.TIF
    --------------
    Identifiant Pli : 639297
    Identifiant document : 1118863
    Corbeille : CORBEILLE_APRESMIDI
    Depuis le : Tue Nov 29 09:53:19 UTC+0100 2011
    Lot : PRISMA\S_MU_F_CHEQUE_FR\15747
    EN ATTENTE - Code marketing : MANLHS1211
    \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000873-0001_1.TIF
    \\svlvnas01\dharma\itesoft\res\1111\29\2011112900011\11000874-0001_1_1.TIF
    .........


    quelqu'un aurait il une idée ou début de solution à me proposer

    merci d'avance

    munity

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, de façon basique, à toi de poursuivre
    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
     
    Option Explicit
     
    Sub test()
    Dim ValeurLigne As String
    Dim i As Long
     
        i = 2
        Open ThisWorkbook.Path & "\" & "log.txt" For Input As #1
            Do While Not EOF(1)
                Line Input #1, ValeurLigne
                If InStr(ValeurLigne, "Identifiant Pli") > 0 Then
                    Range("A" & i) = Mid$(ValeurLigne, 17)
                    i = i + 1
                End If
            Loop
        Close #1
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut
    merci pour ta réponse mais ce n'est pas tout à fait ca que je souhaite faire
    en fait dans le fichier texte (exemple ci dessous)
    Identifiant Pli : 639293
    Identifiant document : 1118855
    Corbeille : CORBEILLE_APRESMIDI
    Depuis le : Tue Nov 29 09:17:35 UTC+0100 2011
    Lot : PRISMA\S_MU_F_CHEQUE_FR\15747
    EN ATTENTE - Code marketing : MANLHS1211
    \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000864-0001_1.TIF
    \\svlvnas01\dharma\itesoft\res\1111\29\2011112900011\11000865-0001_1_1_1.TIF
    je fais un test sur la ligne 'identifiant pli', dès que cette valeur est trouvée je souhaite prendre tout ce qui est après les : pour les valeurs en dessous de la ligne de départ
    je souhaite donc avoir un tableau comme suit (les séparateurs | sont à titre d'exemple

    639293 | 1118855 | CORBEILLE_APRESMIDI | Tue Nov 29 09:17:35 UTC+0100 2011 | \\SVLVNAS01\DHARMA\ITESOFT\RES\1111\29\2011112900011\11000864-0001_1.TIF| \\svlvnas01\dharma\itesoft\res\1111\29\2011112900011\11000865-0001_1_1_1.TIF

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Re,déjà relis toi, à toi de poursuivre et adapter à ton contexte
    Pour l'usage du CodeName ( ici ShDatas ) voir http://www.developpez.net/forums/d92...cel/vba-bases/

    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
     
    Option Explicit
     
    Sub SelFichier()
    Dim sChemin As String
        sChemin = ThisWorkbook.Path
     
        With Application.FileDialog(msoFileDialogFilePicker)
            .InitialFileName = sChemin & "\"
            .Title = "Sélectionner le fichier TXT"
            .AllowMultiSelect = False
            .ButtonName = "Sélection Fichier"
            .Filters.Add "Texte", "*.txt"
            .Show
            If .SelectedItems.Count > 0 Then
                DoEvents
                Application.ScreenUpdating = False
                ShDatas.Cells.Clear
                Lecture .SelectedItems(1)
                Application.ScreenUpdating = True
            End If
        End With
    End Sub
     
    Private Sub Lecture(sFichier As String)
    Dim r As Long, c As Long
    Dim Pos As Long
    Dim sChaine As String
    Dim iNum As Integer
     
        Close
        r = 2
     
        iNum = FreeFile
        Open sFichier For Input As #iNum
            Do While Not EOF(iNum)
                c = 1
                Line Input #iNum, sChaine
                sChaine = Trim$(sChaine)
                If InStr(sChaine, "Identifiant Pli") > 0 Then
                    Pos = InStr(sChaine, " : ")
                    ShDatas.Cells(r, c) = Mid$(sChaine, Pos + 3)
                    For c = 2 To 8
                        Line Input #iNum, sChaine
                        sChaine = Trim$(sChaine)
                        Pos = InStr(sChaine, " : ")
                        If Pos > 0 Then
                            ShDatas.Cells(r, c) = Mid$(sChaine, Pos + 3)
                        Else
                            ShDatas.Cells(r, c) = sChaine
                        End If
                    Next c
                    r = r + 1
                End If
            Loop
        Close #iNum
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut
    c vrai
    merci pour la réponse
    cela fonctionne parfaitement
    munity

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

Discussions similaires

  1. [Toutes versions] Import&Mise en forme Fichier texte vers excel
    Par roadmender dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2009, 14h45
  2. Mise en forme fichier xls à partir d'access
    Par Bigdeal dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/09/2005, 15h47
  3. Garder la mise en forme de texte dans un champ
    Par dany13 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/07/2005, 14h49
  4. Mise en forme fichier avant Import
    Par jeff37 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2004, 15h16

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