Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Fusion rapide de fichiers texte

12 réponses
Avatar
HD
Bonjour,

Via VBA, je fusionne des fichiers EDI au format texte. Jusque là pas de
souci si ce n'est que je voudrai accélérer la fusion des fichiers. En effet
je passe par des boucles qui lisent chaque fichiers pour les réecrire dans
un fichier commun...

Je me demandai si il était possible de fusionner les fichiers directement
via FSO ou une autre méthode ? Je n'ai pour l'instant rien trouver...

Pour info, voici mon script actuel :
'------------------------------------
[...]
If Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count >
1 Then
Fic = Environ("Temp") & "\CCTemp.edi"
Kill (Fic)
NbLiTot = 0
Open Fic For Output As #1
For j = 1 To
Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count
FicEDI =
Application.FileDialog(msoFileDialogFilePicker).SelectedItems(j)
NbLi = 0
Open FicEDI For Input As #2
Do Until EOF(2)
NbLi = NbLi + 1
NbLiTot = NbLiTot + 1
Line Input #2, Ligne
Print #1, Ligne
Application.StatusBar = "Fusion des fichiers " & Format(j,
"00") & " / " &
Format(Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count,
"00") & " / " & NbLiTot
Loop
Close #2
Next
Close #1
Application.StatusBar = ""
Else
If
Application.FileDialog(msoFileDialogFilePicker).SelectedItems.Count = 0 Then
Exit Sub
Fic =
Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
End If
[...]
'------------------------------------

Cordialement,

HD

2 réponses

1 2
Avatar
HD
J'ai remplacé Application.WorksheetFunction.Substitute par Replace et je
n'ai plus de problème.

Pourquoi avais je un plantage avec Substitute ? Quelle est la différence
entre Substitute de Replace ?

@+
HD
Avatar
MichD
| Pourquoi avais je un plantage avec Substitute ? Quelle est la différence
| entre Substitute de Replace ?

Je n'ai pas d'explication. Cependant, il y a aussi la fonction "Equiv()"
lorsqu'elle
est utilisée en vba comme ceci : Application.WorksheetFunction.Match() bogue
dans plusieurs situations. Par contre, la même fonction si on oublie dans la
ligne de code "WorksheetFunction" pour écrire directement
"application.Match()"
tout fonctionne rondement.

Tu pourrais peut-être faire le test en utilisant dans le code :
Application.Substitute() au lieu de
Application.WorksheetFunction.Substitute()

Bravo pour la solution! Substitution par "Replace".
1 2