Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2011, 11h10   #1
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
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 :
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
Citation:
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
munity est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 11h45   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 713
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

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

Informations forums :
Inscription : juin 2006
Messages : 1 713
Points : 3 650
Points : 3 650
Salut, de façon basique, à toi de poursuivre
Code :
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
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 11h52   #3
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
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)
Citation:
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
munity est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 13h10   #4
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 713
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

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

Informations forums :
Inscription : juin 2006
Messages : 1 713
Points : 3 650
Points : 3 650
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 :
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
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 13h54   #5
Membre régulier
 
Inscription : septembre 2007
Messages : 278
Détails du profil
Informations personnelles :
Âge : 41
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : septembre 2007
Messages : 278
Points : 89
Points : 89
c vrai
merci pour la réponse
cela fonctionne parfaitement
munity
munity est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h43.


 
 
 
 
Partenaires

Hébergement Web