OVH Cloud OVH Cloud

Utilisation de EOF

7 réponses
Avatar
ptite grenouille
Bonjour,
Je voudrais utiliser la fonction EOF pour executer mon programme une
première fois jusqu'à la fin de la pages 3 de mon classeur excel, puis
jusqu'à la fin de la première pages du même classeur! Il est la condition
d'une boucle While, mais apparement la syntaxe est pas bonne. pourriez vous
me dire qu'elle est la sytaxe exacte?
Merci beaucoup

7 réponses

Avatar
AV
Je voudrais utiliser la fonction EOF pour executer mon programme


Et c'est quoi cette fonction ?

AV

Avatar
ptite grenouille
C'est la fonction End Of File qui normalement arrète le programme lorsque
l'on arrive à la dernière ligne du fichier! C'est bien ça que vous vouliez
savoir?
Avatar
denis P
EOF (fin de fichier) c'est pour les fichier texte...voir exemple plus bas
Pour un fichier Excel
regarde plutôt vers

Workbooks("ton fichier").Worksheets("ta feuille").range("A1:c34 palge à
traiter")

denis p.



''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

"ptite grenouille" a écrit dans
le message de news:
Bonjour,
Je voudrais utiliser la fonction EOF pour executer mon programme une
première fois jusqu'à la fin de la pages 3 de mon classeur excel, puis
jusqu'à la fin de la première pages du même classeur! Il est la condition
d'une boucle While, mais apparement la syntaxe est pas bonne. pourriez
vous

me dire qu'elle est la sytaxe exacte?
Merci beaucoup


Avatar
ptite grenouille
Merci pour la réponse mais alors connaissez vous une autre solution, car je
ne travail jamais sur la même plage, dc je ne peux pas utiliserlea fonction
workbooks.


EOF (fin de fichier) c'est pour les fichier texte...voir exemple plus bas
Pour un fichier Excel
regarde plutôt vers

Workbooks("ton fichier").Worksheets("ta feuille").range("A1:c34 palge à
traiter")

denis p.



''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

"ptite grenouille" a écrit dans
le message de news:
Bonjour,
Je voudrais utiliser la fonction EOF pour executer mon programme une
première fois jusqu'à la fin de la pages 3 de mon classeur excel, puis
jusqu'à la fin de la première pages du même classeur! Il est la condition
d'une boucle While, mais apparement la syntaxe est pas bonne. pourriez
vous

me dire qu'elle est la sytaxe exacte?
Merci beaucoup







Avatar
PMO
Bonjour,

Je n'ai pas trop bien compris où vous voulez en venir
mais voici peut être une piste.
Tout d'abord oubliez EOF qui n'est pas approprié.
Le code suivant détemine la première ligne et la dernière ligne
ainsi que la première colonne et la dernière colonne de la plage
où existe des données de la feuille active.
Ainsi vous pourrez faire une boucle sur les lignes et les colonnes.

'************************
Option Explicit
Sub CoordonnesFeuille()
With ActiveSheet.UsedRange
MsgBox "La 1ère ligne est " & _
.Row
MsgBox "La dernière ligne est " & _
.Rows.Count + .Row - 1
MsgBox "La 1ère colonne est " & _
.Column
MsgBox "La dernière colonne est " & _
.Columns.Count + .Column - 1
End With
End Sub
'************************

En espérant que ça vous soit utile.

Cordialement.

PMO
Patrick Morange



Bonjour,
Je voudrais utiliser la fonction EOF pour executer mon programme une
première fois jusqu'à la fin de la pages 3 de mon classeur excel, puis
jusqu'à la fin de la première pages du même classeur! Il est la condition
d'une boucle While, mais apparement la syntaxe est pas bonne. pourriez vous
me dire qu'elle est la sytaxe exacte?
Merci beaucoup


Avatar
AV
Ave,

J'émets de fortes réserves sur l'utilisation de UsedRange...

AV juste pour le smilblick
Avatar
denis P
Grand sujet...
pour bien commencer....
http://www.excelabo.net/xl/debuter.php
bonne lecture
denis p.



"ptite grenouille" a écrit dans
le message de news:
Merci pour la réponse mais alors connaissez vous une autre solution, car
je

ne travail jamais sur la même plage, dc je ne peux pas utiliserlea
fonction

workbooks.


EOF (fin de fichier) c'est pour les fichier texte...voir exemple plus
bas


Pour un fichier Excel
regarde plutôt vers

Workbooks("ton fichier").Worksheets("ta feuille").range("A1:c34 palge à
traiter")

denis p.




''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


'''''
Sub ModifFichierTexte()
Dim Tbl()
Dim I As Integer
'ouvre le fichier texte en lecture
Open "C:Test.txt" For Input As #1
'récupère toutes les valeurs
'dans un tableau
Do While Not EOF(1)
I = I + 1
ReDim Preserve Tbl(1 To I)
Input #1, Tbl(I)
Loop
'si le fichier est vide...
If I = 0 Then
Close #1
MsgBox "Le fichier ne contient aucune données !"
Exit Sub
End If
'supprime les guillemets
For I = 1 To UBound(Tbl)
Tbl(I) = Replace(Tbl(I), """", "")
Next I
'referme le fichier avant de le ré-ouvrir
'en écriture
Close #1
Open "C:Test.txt" For Output As #1
'ré-inscrit les valeurs et referme
For I = 1 To UBound(Tbl)
Print #1, Tbl(I)
Next I
Close #1
Erase Tbl
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

"ptite grenouille" a écrit
dans


le message de news:
Bonjour,
Je voudrais utiliser la fonction EOF pour executer mon programme une
première fois jusqu'à la fin de la pages 3 de mon classeur excel, puis
jusqu'à la fin de la première pages du même classeur! Il est la
condition



d'une boucle While, mais apparement la syntaxe est pas bonne. pourriez
vous

me dire qu'elle est la sytaxe exacte?
Merci beaucoup