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

VBA Discussion :

Comment initialiser les parametres d'entrées d'une procédure en VBA?


Sujet :

VBA

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 Comment initialiser les parametres d'entrées d'une procédure en VBA?
    Bonjour;

    J'ai crée une procédure contenant 3 parametres d'entrées "Sub QStat(Source As String, L As Integer, detect As Boolean)". La procédure marche trés bien.
    Je voudrais reinitialiser "L" à 4 (pour que l'affichage des données commence à partir de la 4 eme colonne ) .
    Actuellement la procédure commence l'affichage des données à partir la 2eme colonne.
    Vos suggestions seront les biens venues .
    Merci d'avance .
    ci joint ma procédure et la fonction qui appelle la procédure pour afficher la données de test, exemple d'affichage actuelle et d'affichage attendue


    NB : la fonction "Fonction_concatenee()" permet d'accéder aux fichiers de test, de les extraire et de les afficher sur excel en appelant la procédure QSTAT.
    Je vous joint aussi des fichiers de test

    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
     
    Sub QStat(ByVal Source As String, ByVal L As Long, ByRef Msg As String)
    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
     
    '--------Recupération nom fichier----------------------------
        Position = InStrRev(Source, "\")
            If Position = 0 Then
               NomFichier = Source
            Else
               NomFichier = Mid(Source, Position + 1)
               'Pour enlever l'extension, on cherche le dernier point
               Position = InStrRev(NomFichier, ".")
               'Si on le trouve, on ne garde que ce qui précède
               If Position <> 0 Then
                   NomFichier = Mid(NomFichier, 1, Position - 1)
               End If
           End If
    '--------Fin Recupération nom fichier-------------------------
    '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
                Msg = Msg & vbNewLine & "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
                Msg = Msg & vbNewLine & "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
                Msg = Msg & vbNewLine & "Error in the " & NomFichier & " file, TD contains " & diff & " | instead of 18"
                detect = False
                'Exit Sub
            End If
        End If
    Wend
    Close intFic
     
    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
    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
     
    Sub Fonction_concatenee()
    Dim Fichiers As Variant
    Dim i As Integer
    Dim wb As Workbook
    Dim donnees As Range
    Dim Message As String
     
    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, Message
     
        Next i
        Application.ScreenUpdating = True
        MsgBox IIf(Message = "", "All files are Corrects", Message)
    End If
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/01/2012, 08h54
  2. demande avis : comment stocker les parametres d'une application
    Par ZashOne dans le forum Framework .NET
    Réponses: 9
    Dernier message: 30/03/2008, 19h14
  3. Réponses: 1
    Dernier message: 13/06/2007, 09h34
  4. Réponses: 2
    Dernier message: 29/11/2006, 11h52
  5. [Struts] Comment initialiser les valeurs d'un formulaire
    Par Sniper37 dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/04/2005, 15h02

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