Bonjour à tous le forum,

Cela fait quelques mois que je n'ai pas été actif sur le forum mais je reviens vers vous car je travaille sur un projet pour le travail qui consiste à alimenter un fichier texte à partir d'un tableau VBA.

La structure du tableau est composé de 18 colonnes et autant de ligne que besoin. Mon problème est le suivant :

Je dois contrôler que certaines colonnes sont complétées, pour cela je me suis dit que j'allais utiliser un tableau temporaire (comme un Set de range sur une ligne) puis l'envoyer sur une fonction qui contrôle la ligne.

J'ai eu l'idée boucler avec redim preserve sur toutes les colonnes pour alimenter ce tableau mais il doit bien exister un moyen de le faire en une commande VBA. J'ai essayé la commande dans le code mais il me récupère que la première et la dernière.

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
'**************************************************************************************************
' NAME : WriteLines (FUNCTION)
' INPUT : sPathFile (String), sData (String)
' OUTPUT : NoComplianceLines (Array)
'**************************************************************************************************
Public Function WriteLines(sPathFile As String, sData() As String) As String()
 
    For lRow = LBound(sData, 1) To UBound(sData, 1) Step 1
 
        Erase sNewLine
        sNewLine = Array(sData(lRow, 0), sData(lRow, UBound(sData, 2))) ' Ici je souhaite comme faire un Set de Range
 
        'Contrôle que les champs obligatoire sont renseignés
        If Compliance(sNewLine) Then
 
            sLine = VBA.Join(sNewLine, VBA.vbTab)
            NumberMemory = VBA.FreeFile
 
            Open sPathFile For Append As #NumberMemory
 
            Print #NumberMemory, sLine
 
            Close #NumberMemory
 
        Else
            ' Gestion des lignes non conforme
        End If
 
    Next lRow
 
 
 
End Function
Avez-vous une idée sur cette question ?