Parcourir chaque ligne d'un fichier

Exemple :

Sub appel()
Dim FSO
Dim oNet
Dim sUsername
Dim Chemin
Dim MonFichier
Dim NumLigne
Const LigneCherchee = 3

Set oNet=CreateObject("WScript.Network")
sUsername=oNet.UserName
Set oNet = Nothing

Chemin = "c:Profiles\" & suserName & "\datenoj.txt"

Set FSO = CreateObject("Scripting.FileSystemObject")
Chemin = FSO.GetAbsolutePathName(Chemin)
Set MonFichier = FSO.OpenTextFile(Chemin,1)

Do While MonFichier.AtEndOfStream <> True
 NumLigne = MonFichier.Line
 If NumLigne < LigneCherchee Then
 MonFichier.SkipLine
 ElseIf NumLigne = LigneCherchee Then
 MsgBox(NumLigne)
 Exit Do
 Else
 Exit Do
 End If
Loop

End Sub

Le script ouvre un fichier situé dans le répertoire de l'utilisateur courant.

Dès que le fichier est ouvert en lecture (OpenTextFile(Chemin,1)), le curseur est placé sur la première ligne du fichier : on peut donc tout de suite lire le numéro de la première ligne (NumLigne = MonFichier.Line).
On compare ensuite ce numéro de ligne avec un autre numéro.
Noter les instructions Exit Do qui permettent de sortir de la boucle While.

Autre script : exemplarisation

Ce script ouvre un fichier et extrait de chaque ligne le PPN et les données d'exemplaire nécessaire à l'exemplarisation.
Le fichier a été créé par un autre script

Sub Exemplarise()
	Dim oNet, sUsername, FSO
	Dim Chemin, MonFichier
	Dim Ligne, DonneesExemplaire
	Dim MonTableau
	Set oNet=CreateObject("WScript.Network")
	sUsername=oNet.UserName
	Set oNet = Nothing
	Chemin = "c:Profiles\" & sUsername & "\monFichier.txt"
	Set FSO = CreateObject("Scripting.FileSystemObject")
	Chemin = FSO.GetAbsolutePathName(Chemin)
	Set MonFichier = FSO.OpenTextFile(Chemin,1)
	Do While MonFichier.AtEndOfStream <> True
		Ligne = MonFichier.ReadLine
		MonTableau = split(Ligne, vbTab)
		Application.ActiveWindow.Command "che ppn " & MonTableau(0), False
		Application.ActiveWindow.NoviceMode False
		Application.ActiveWindow.Command "cre e01", False
		Application.ActiveWindow.Title.InsertText "e01" & " $bx" & vbCrLf
		DonneesExemplaire = Replace(MonTableau(1), "", vbCrLf)
		Application.ActiveWindow.Title.InsertText DonneesExemplaire & vbCrLf
		Application.ActiveWindow.SimulateIBWKey "FR"
	Loop
End Sub

Ce script ne traite que le e01 !
Chaque ligne comporte une tabulation que l'on utilise ici comme délimiteur pour créer un tableau : MonTableau = split(Ligne, vbTab)
Dans la deuxième partie de la ligne, les champs 915 et 930 sont attachés par le caractère £ : il suffit de remplacer ce caractère par un retour chariot pour obtenir les deux champs : DonneesExemplaire = Replace(MonTableau(1), "", vbCrLf).