Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro copier ligne fichier texte

  • Initiateur de la discussion Initiateur de la discussion Samuel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Samuel

Guest
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
431
Réponses
15
Affichages
925
Réponses
5
Affichages
598
Réponses
9
Affichages
820
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…