Cibler une ligne dans un tableau VBA à deux dimensions
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:
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 ?