Bonjour
j'ai fais une petite macro qui fonctionne sous excel (car mes fichiers sources sont en Excel)
elle a pour but de trouver dans une colonne un mot
si ce mot est trouvé alors la valeur d'une autre colonne devra être envoyé dans un fichier TXT
le traitement de 680 000 ligne me prends 25 secondes
cela fonctionne, c'est déjà çà !
connaissez vous une méthode plus rapide ?
en VBS, avec des fonctions de dictionnaire, tableau, sans ouvrir le fichier xls
Code :
- Sub export_TXT()
- Application.ScreenUpdating = False
- Open "c:Text1.txt" For Append As #1
- For i = 1 To 1048000
- On Error GoTo suivant:
- If Range("H" & i) Like "*PORTE*" Then
- plan = Left(Range("C" & i), 9)
- If plan = dernierplan Then GoTo suivant:
- Print #1, plan
- dernierplan = plan
- End If
- suivant:
- Next i
- Close #1
- Application.ScreenUpdating = False
- End Sub
|
pour expliquer le code ci dessus, voila ce que je dirais
For i = 1 To 1048000 => les tables sont assez grosses en général, sans être pleines
append => j'ai plusieurs feuilles a traiter
on error goto suivant => évite les erreurs quand la cellule en comporte une
le teste sur le dernierplan est la pour éviter les doublons