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
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