Macro générer fichier texte

Elodie195

XLDnaute Occasionnel
Bonjour,

Suite à l'aide d'Hasco sur ce forum par le biais de cette macro qui fonctionne très bien, je souhaiterais ajouter une fonctionnalité à cette macro :

référence du topic :
https://www.excel-downloads.com/threads/generer-des-fichiers-textes-avec-criteres.212350/

Macro de Hasco :

Code:
Sub CreationFichiersTexte()
Dim rng As Range, r As Range, plgAnalyses As Range, a As Range
Dim f As Integer, first As Boolean, idx As Integer
Dim ligne As String
    'déterminer la plage des données
    With Sheets("Sheet1").Range("A1").CurrentRegion
        If .Rows.Count > 2 Then
            Set rng = .Offset(2).Resize(.Rows.Count - 2)
        Else
            MsgBox "aucune donnée à traiter n'a été trouvé!"
            Exit Sub
        End If
    End With
   
    'Pour chaque ligne dans la plage des données
    For Each r In rng.Rows
        'Si la première cellule commence par une Lette, un point,4 chiffres, un point
        If r.Cells(1, 1) Like "[A-Z].####.#*" Then
            'déterminer s'il existe des analyse à enregistrer
            On Error Resume Next
                Set plgAnalyses = r.Offset(, 3).Resize(, r.Columns.Count - 3).SpecialCells(xlCellTypeConstants)
            On Error GoTo 0
            If Not plgAnalyses Is Nothing Then
                'ouvrir un fichier
                f = FreeFile()
                idx = idx + 1
                Open ThisWorkbook.Path & "\PHARMA_" & Format(Now, "yyyymmdd_hhmmss") & "_" & idx & ".txt" For Append As #f
                Print #f, "LABORATOIRE;"
                Print #f, r.Cells(1, 1)
                first = True 'il faut ecrire PHARMA
                For Each a In plgAnalyses.Cells
                    If a.Value <> "" Then
                        ligne = "ANALYSE " & a.Column - 3 & ";" & a.Text & ";"
                        If first Then ligne = "PHARMA;" & ligne
                        Print #f, ligne
                        first = False
                    End If
                Next
            End If
            Print #f, "END;"
            Close #f
        End If
    Next
End Sub

Cette macro avait pour but de générer des fichiers textes dans le dossier C:\TEMP\ par type de dossier et analyse.

En fait, mon fichier brut a changé de forme.
Il y a une nouvelle ligne avec 2 intitulés en dessous de chaque analyse Conc [g] et Conc PMD.
Ce qui donne :

ANALYSE P
Conc [G] - Conc PMD
valeur 1 - valeur 2

Je voudrais que les fichiers textes générés ne reprennent que les valeurs qui sont sous la colonne Conc [g].

Les numéros A.2013.X sont déplacés en colonne G (là je suppose qu'on a juste a changer :

Code:
If r.Cells(1, 1) Like "[A-Z].####.#*" Then
par
Code:
If r.Cells(1, 7) Like "[A-Z].####.#*" Then
?

Merci d'avance de votre aide.

Elo
 

Pièces jointes

  • fichier-brut-ancien.xlsx
    9.2 KB · Affichages: 28
  • fichier-brut-nouveau.xlsx
    10 KB · Affichages: 34
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 298
Membres
103 171
dernier inscrit
clemm