erreur 1004 - importation de fichiers texte

nephtys38

XLDnaute Nouveau
Bonjour,

J'ai une erreur d'exécution 1004 : "erreur définie par l'application ou par l'objet" lors de l'exécution de la macro suivante qui importe les lignes contenant des adresses emails d'un dossier de fichiers texte.
Il semblerait que certains fichiers texte que j'importe la provoque et pas d'autres (ce sont des emails du genre "Returned mail_ see transcript for details").


Code:
Sub ImportTextFile()
'code de Coriolan modif par MJ issu de http://www.excel-downloads.com/forum/83569-pb-dimportation-dobjets-dans-une-macro.html
'Dim ceclasseur As String
'Dim monrépertoire As String
Dim ii As Integer, nomtxt As String, Ligne As String, TabLigne, i As Long
Dim fc, f1, fso
'monrépertoire = "nom du répertoire contenant les fichiers .txt à importer"

'Stop
    chemin = "J:\npai\Invalides\test"
    ceclasseur = ThisWorkbook.Name
   
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fc = fso.GetFolder(chemin).Files
    If fc.Count > 0 Then 'il y a des fichiers
        ii = 0
        For Each f1 In fc
            If UCase(f1.Name) Like "*.TXT" Then  'c'est un fichier texte
                'ii = ii + 1
                nomtxt = f1.Name
                ii = ActiveSheet.Range("a65536").End(xlUp).Row + 1
                Set f1 = fso.OpenTextFile(chemin & "\" & nomtxt, 1, False, -2)
                Do Until f1.AtEndOfStream
                    Ligne = f1.readline
                    If Ligne Like "*@*.*" Then
                        TabLigne = Split(Ligne, ";")
                        For i = LBound(TabLigne) To UBound(TabLigne)
                            ActiveSheet.Cells(ii, i + 1).Value = TabLigne(i)
                        Next i
ii=ii+1
                    End If
                Loop
                f1.Close
            End If
        Next
    End If
    Set f1 = Nothing
    Set fc = Nothing
    Set fso = Nothing
End Sub

Si quelqu'un a une idée pour remédier à ce problème, je l'en remercie d'avance.
 

kjin

XLDnaute Barbatruc
Re : erreur 1004 - importation de fichiers texte

Bonjour,
A tester
Code:
Sub ImportTextFile()
Dim L&, Ligne$, TabLigne, i%
Dim fso, fc, f, sf
L = ActiveSheet.Range("a65536").End(xlUp).Row + 1
chemin = "J:\npai\Invalides\test\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fc = fso.GetFolder(chemin).Files
For Each f In fc
    If UCase(fso.GetExtensionName(f.Path)) = "TXT" Then
        Set sf = fso.OpenTextFile(f.Path, 1, False, -2)
        Do Until sf.AtEndOfStream
            Ligne = sf.readline
            If InStr(Ligne, "@") > 0 Then
                TabLigne = Split(Ligne, ";")
                For i = LBound(TabLigne) To UBound(TabLigne)
                    ActiveSheet.Cells(L, i + 1).Value = TabLigne(i)
                Next i
            L = L + 1
            End If
        Loop
        sf.Close
    End If
Next
Set f = Nothing
Set fc = Nothing
Set fso = Nothing
End Sub
A+
kjin
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof