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 :

Verification format fichier texte [XL-2007]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 32
    Par défaut Verification format fichier texte
    Bonjour,

    Je viens demander de l'aide au près de vous .
    J'ai un petit soucis avec mes 2 macros.
    Je m'explique , j'ai deux macros l'un est une fonction permettant de charger plusieurs fichiers texte et l'autre est une procédure permettant de d'ouvrir un par un les fichiers texte et de faire la vérification du format des fichiers.
    Tous les deux macros fonctionnent bien mais j'aimerais changer la procédure de sorte que lors des vérifications qu'on ait une seule validation à la fin de la vérification de tous les fichiers .

    Rappel: actuellement la procédure permet de vériefier et de valider les fichiers un par un or moi j'aimerais une seule validation aprés qu'elle ait vérifié tous les fichiers.

    ci joint mes deux macros et les fichiers text a verifier. Merci d'avance pour votre participation.

    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
    Sub Fonction_concatenee()
    Dim Fichiers As Variant
    Dim i As Integer
    Dim wb As Workbook
    Dim donnees As Range
     
        Fichiers = Application.GetOpenFilename("Fichiers dat (*.txt), *.txt", , , , True)
     
        If IsArray(Fichiers) = True Then
     
            Application.ScreenUpdating = False
     
            For i = LBound(Fichiers) To UBound(Fichiers)
     
              QStat Trim("" & Fichiers(i)), ThisWorkbook.Sheets(1).[A65536].End(xlUp).Row + 1
     
            Next i
     
            Application.ScreenUpdating = True
     
        End If
    End Sub
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    Sub QStat(Source As String, L As Integer)
        Dim num1 As Integer
        Dim num2 As Integer
        Dim diff As Integer
        Dim intFic As Integer
        Dim strLigne As String
        Dim detect As Boolean
        Dim strCount As String
        Dim NomFichier As String
        Dim Position As Integer
        Dim i As Integer
        Dim Tableau() As String
     
        i = 3
      ' On passe à l'affichage
        'Entete
            ThisWorkbook.Sheets(1).Cells(1, 1) = "REFERENCE"
            ThisWorkbook.Sheets(1).Cells(1, 2) = "SERIAL NUM"
            ThisWorkbook.Sheets(1).Cells(1, 3) = "STEP TEST :"
     
        'affectation du repertoire
       'detect : Variable de controle de fichier
        detect = True
        intFic = FreeFile
            'ouverture du fichier
            Open Source For Input As intFic
            While Not EOF(intFic) And detect
                detect = False
                Line Input #intFic, strLigne
                If Left(strLigne, 3) = "EV|" Then
                    'Controle sur le Event
                    'Nbre |
                    num1 = Len(strLigne)
                    strCount = Replace(strLigne, "|", "")
                    num2 = Len(strCount)
                    diff = num1 - num2
                    If diff = 35 Then
                        detect = True
                    Else
                        MsgBox ("Error in the " & NomFichier & " file, EV field contains " & diff & " | instead of 35")
                        detect = False
                        'Exit Sub
                    End If
                End If
                If Left(strLigne, 3) = "ME|" Then
                    'Controle sur la mesure
                    'Nbre |
                    num1 = Len(strLigne)
                    strCount = Replace(strLigne, "|", "")
                    num2 = Len(strCount)
                    diff = num1 - num2
                    If diff = 19 Then
                        detect = True
                    Else
                        MsgBox ("Error in the " & NomFichier & " file, ME field contains " & diff & " | instead of 19")
                        detect = False
                        'Exit Sub
                    End If
                End If
                If Left(strLigne, 3) = "TD|" Then
                    'Controle sur les limites
                    'Nbre |
                    num1 = Len(strLigne)
                    strCount = Replace(strLigne, "|", "")
                    num2 = Len(strCount)
                    diff = num1 - num2
                    If diff = 18 Then
                        detect = True
                    Else
                        MsgBox ("Error in the " & NomFichier & " file, TD contains " & diff & " | instead of 18")
                        detect = False
                        'Exit Sub
                    End If
                End If
            Wend
     
            If detect = False Then
                MsgBox "Error - One or more lines are erroneous"
            Else
                MsgBox (" file is OK!!") 'NomFichier &
            End If
     
     
            If detect = True Then
                intFic = FreeFile
                'ouverture du fichier
                Open Source For Input As intFic
                While Not EOF(intFic)
                    Line Input #intFic, strLigne
                    If Left(strLigne, 3) = "ME|" Then
                        'on incrémente la ligne d'ecriture
                        i = i + 1
                        'on decompose
                        Tableau = Split(strLigne, "|")
                        'on ecrit
                        ThisWorkbook.Sheets(1).Cells(1, i) = Tableau(4)
                        ThisWorkbook.Sheets(1).Cells(L, 1) = Tableau(1)
                        ThisWorkbook.Sheets(1).Cells(L, 2) = Tableau(2)
                        ThisWorkbook.Sheets(1).Cells(L, i) = Tableau(6)
                    End If
                Wend
            End If
        Close intFic 'fermeture fichier
     
     
    End Sub
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Lire un fichier texte pré-formaté
    Par taupinfada dans le forum C++
    Réponses: 7
    Dernier message: 31/03/2007, 11h41
  2. [VBA] Création d'un format d'import de fichier texte
    Par Julien Dufour dans le forum Access
    Réponses: 6
    Dernier message: 12/05/2006, 17h37
  3. [VB6] Format de fichier texte Unicode
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 07/04/2006, 09h10
  4. format de fichier texte
    Par locutus33 dans le forum Access
    Réponses: 3
    Dernier message: 18/10/2005, 11h32
  5. Comment écrire un fichier texte au format MS-DOS ?
    Par fredfred dans le forum Langage
    Réponses: 9
    Dernier message: 20/01/2005, 09h00

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