macro copier ligne fichier texte

Samuel

XLDnaute Nouveau
Bonsoir à tous,

Je souhaiterais juste savoir comment faire par macro pour lire et copier une partie d'un fichier txt jusqu'à une ligne dont le numéro est stocké dans une variable et calculé à partir d'une valeur apparaissant à une ligne donnée du fichier texte. Comme c'est pas forcément très clair, je vais mettre le bout de code que j'ai essayé de faire:

Sub Rotation_fichier()

fichierL = Application.GetOpenFilename()
textline = ""
ligne = 1
Open fichierL For Input As #1 ' Ouvre le fichier.
Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier.
Line Input #1, textline ' Lit la ligne dans la variable.
If ligne = 4 Then
nC = CInt(textline)
ElseIf ligne = 5 Then
angleC = CDec(textline)
ElseIf ligne = 6 Then
nGamma = CInt(textline)
End If

ligne = ligne + 1
Loop


'Déjà dans cette dernière boucle j'ai du mal à comprendre comment le lien se fait entre la variable "ligne" et la ligne du fichier texte qui doit être lue, mais ça ça marche

anglerotation = InputBox("De combien de degrés voulez-vous tourner le fichier ?", "Angle de rotation", "90")
Nblignesentete = 42 + nC + nGamma
Premierelignedeuxiemepartie = nGamma * ((360 - anglerotation) / angleC) + 42 + 1

'Voilà et là je voudrais juste dire de copier les lignes du fichier texte jusqu'à la ligne juste avant la ligne n°Premierelignedeuxiemepartie et copier ces lignes dans le fichier excel, ça ressemble peut-être à ce que j'ai essayé maladroitement de faire ci-après mais qui génère un message d'erreur:

ligne = 1
textline = ""

Do While ligne < Premierelignedeuxiemepartie
Line Input #1, textline
Sheets(1).Range("A1").Offset(ligne, 0).Value = textline
ligne = ligne + 1
Loop


End Sub

Merci d'avance de votre aide!

Samuel
 

youky(BJ)

XLDnaute Barbatruc
Re : macro copier ligne fichier texte

Bonjour Samuel,
Essaie ceci mais je n'ai pas testé....

Do While ligne Not EOF(1)
Line Input #1, textline
if textline=Premierelignedeuxiemepartie then exit do
Sheets(1).Range("A1").Offset(ligne, 0).Value = textline
ligne = ligne + 1
Loop
'pense à fermer le fichier par close
Close #1
 

Samuel

XLDnaute Nouveau
Re : macro copier ligne fichier texte

Bonsoir Youky,
Non, ça ne marche pas, il me met un message d'erreur "Erreur d'exécution '62': l'entrée dépasse la fin de fichier", de plus, il semble que dans le code que tu as mis, on arrête de lire le fichier quand le texte de la ligne est Premierelignedeuxiemepartie, alors que moi je veux qu'il arrête quand c'est le numéro de la ligne qui est égal à Premierelignedeuxiemepartie.

Merci de ton aide,
Samuel
 

youky(BJ)

XLDnaute Barbatruc
Re : macro copier ligne fichier texte

Re:
oui j'ai mal vu la chose...
on tiens le bon bout...a tester ceci
Do While ligne<=Premierelignedeuxiemepartie-1
Line Input #1, textline
Sheets(1).Range("A1").Offset(ligne, 0).Value = textline
ligne = ligne + 1
Loop
 

Discussions similaires

Réponses
4
Affichages
491

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390