XL 2013 Problème de tableau VBA

jpmetge

XLDnaute Nouveau
Bonjour,

J'ai un souci avec une macro que j'ai récupéré sur un forum.
Elle permet de lire un fichier .csv sans l'ouvrir puis le stocker dans une table, et enfin recopier son contenu dans une feuille excel.
Cette macro fonctionne lorsque j'ai un fichier de peu de lignes, mais affiche le message suivant lorsque j'utilise mon fichier complet:

1573984609863.png

Je soupçonne la déclaration de mon tableau tab_lu, mais j'ai essayé plusieurs déclarations sans succès.
Voici mon code :
---------------------------------------------------------
Sub remplir_tab()

Dim var As Variant
Dim tab_val()
Dim tab_lu()
Dim i, j, cpt As Integer

'ouvre et lie le fichier fastclose et le stocke en mémoire
fich_in = Application.GetOpenFilename("Fichiers csv, *.csv")
'vérification des données dans le fichier

cpt = 0
caract_en_erreur = "*?!%"
erreur_lec = False
num_fich = FreeFile

Open fich_in For Input As #num_fich
Do While Not EOF(num_fich)


Line Input #num_fich, textline
' compteur
cpt = cpt + 1

' boucle des caractères invalides

For i = 1 To Len(caract_en_erreur)
erreur_lue = Mid(caract_en_erreur, i, 1)
caractere = InStr(1, textline, erreur_lue)
If caractere <> 0 Then
erreur_lec = True
End If
Next i

'dimensionnement des champs
tab_lu = Split(textline, ";")


'dimensionnement du tableau
ReDim Preserve tab_val(UBound(tab_lu, 1) + 1, cpt)

' boucle de chargement des données
For j = 1 To UBound(tab_lu, 1)
tab_val(j, cpt) = tab_lu(j - 1)
Next j


Loop
FinTab = cpt
Close #num_fich
Sheets("Prévisionnel").Activate

Range("A4:K9999").End(xlUp).ClearContents

For j = 3 To FinTab
For i = 1 To 11
Cells(j, i) = tab_val(i, j)
Next i
Next j
End Sub
-----------------------------------------------
Merci pour vos réponses.
Jean-Paul
 

Discussions similaires

Réponses
11
Affichages
280