Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro nb lignes fichiers txt

8 réponses
Avatar
Vincent_C
bonjour,

je cherche à compter le nombre de lignes présentes dans un fichier .txt à
l'aide d'une macro VBA. Voici le code que j'ai trouvé qui fonctionne
correctement pour des fichiers allant jusqu'à env. 5Mo, mais lorsque cela
dépasse il y a 1 message indiquant un manque de mémoire. Pouvez vous s'il
vous plait m'indiquer un autre code (le fichier que j'ai testé fait 150 Mo)?
D'avance merci de votre aide.
Bien cordialement,
Vincent_C

Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer

iFileNo = FreeFile

Open "C:\YourFile.Txt" For Binary As iFileNo
strFile = Space(LOF(iFileNo)) ' Set File Buffer Size
Get iFileNo, , strFile ' Load the text
Close iFileNo

strArray = Split(strFile, vbNewLine) ' The array now holds the entire file,
one line per element.
strFile = ""

MsgBox "The Number of Lines is: " & CStr(UBound(strArray) - LBound(strArray)
+ 1)

End Sub

8 réponses

Avatar
Daniel.C
Bonjour.
Essaie :
Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer
Dim Enrgt As String
Dim Ctr

iFileNo = FreeFile

Open "C:YourFile.Txt" For Input As iFileNo
Do While Not EOF(eofile)
Line Input #iFileNo, Enrgt ' Load the text
Ctr = Ctr + 1
Loop
Close iFileNo
MsgBox "The Number of Lines is: " & Ctr

End Sub

Cordialement.
Daniel
"Vincent_C" a écrit dans le message de
news:
bonjour,

je cherche à compter le nombre de lignes présentes dans un fichier .txt à
l'aide d'une macro VBA. Voici le code que j'ai trouvé qui fonctionne
correctement pour des fichiers allant jusqu'à env. 5Mo, mais lorsque cela
dépasse il y a 1 message indiquant un manque de mémoire. Pouvez vous s'il
vous plait m'indiquer un autre code (le fichier que j'ai testé fait 150
Mo)?
D'avance merci de votre aide.
Bien cordialement,
Vincent_C

Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer

iFileNo = FreeFile

Open "C:YourFile.Txt" For Binary As iFileNo
strFile = Space(LOF(iFileNo)) ' Set File Buffer Size
Get iFileNo, , strFile ' Load the text
Close iFileNo

strArray = Split(strFile, vbNewLine) ' The array now holds the entire
file,
one line per element.
strFile = ""

MsgBox "The Number of Lines is: " & CStr(UBound(strArray) -
LBound(strArray)
+ 1)

End Sub


Avatar
FdeCourt
Bonsoir,

Voici une petite macro qui va compter le nombre de ligne d'un fichier
texte :

Sub GrosFichierCSV()
Dim NbL As Long
Open "D:FICHIERTEXTE.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
NbL = NbL + 1
Loop
Close #1
MsgBox "The Number of Lines is " & NbL
End Sub

On 26 mar, 17:03, Vincent_C
wrote:
bonjour,

je cherche à compter le nombre de lignes présentes dans un fichier .tx t à
l'aide d'une macro VBA. Voici le code que j'ai trouvé qui fonctionne
correctement pour des fichiers allant jusqu'à env. 5Mo, mais lorsque cel a
dépasse il y a 1 message indiquant un manque de mémoire. Pouvez vous s 'il
vous plait m'indiquer un autre code (le fichier que j'ai testé fait 150 Mo)?
D'avance merci de votre aide.
Bien cordialement,
Vincent_C

Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer

iFileNo = FreeFile

Open "C:YourFile.Txt" For Binary As iFileNo
  strFile = Space(LOF(iFileNo))  ' Set File Buffer Size
  Get iFileNo, , strFile ' Load the text
Close iFileNo

strArray = Split(strFile, vbNewLine) ' The array now holds the entire fi le,
one line per element.
strFile = ""

MsgBox "The Number of Lines is: " & CStr(UBound(strArray) - LBound(strArra y)
+ 1)

End Sub


Avatar
Vincent_C
Bonsoir. Merci à tous les 2. j'ai essayé les 2 macros, et celle qui
fonctionne bien sous Excel 2003 est la deuxième. Sans vouloir abuser de votre
gentillesse, pourriez vous s'il vous plait insérer un code qui permettrait de
déclancher la macro après sélection d'un fichier .txt ou .csv (quelquesoit
son nom et son emplacement) ?

Merci de nouveau à vous.
Bien cordialement, Vincent_C


Bonsoir,

Voici une petite macro qui va compter le nombre de ligne d'un fichier
texte :

Sub GrosFichierCSV()
Dim NbL As Long
Open "D:FICHIERTEXTE.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
NbL = NbL + 1
Loop
Close #1
MsgBox "The Number of Lines is " & NbL
End Sub

On 26 mar, 17:03, Vincent_C
wrote:
bonjour,

je cherche à compter le nombre de lignes présentes dans un fichier .txt à
l'aide d'une macro VBA. Voici le code que j'ai trouvé qui fonctionne
correctement pour des fichiers allant jusqu'à env. 5Mo, mais lorsque cela
dépasse il y a 1 message indiquant un manque de mémoire. Pouvez vous s'il
vous plait m'indiquer un autre code (le fichier que j'ai testé fait 150 Mo)?
D'avance merci de votre aide.
Bien cordialement,
Vincent_C

Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer

iFileNo = FreeFile

Open "C:YourFile.Txt" For Binary As iFileNo
strFile = Space(LOF(iFileNo)) ' Set File Buffer Size
Get iFileNo, , strFile ' Load the text
Close iFileNo

strArray = Split(strFile, vbNewLine) ' The array now holds the entire file,
one line per element.
strFile = ""

MsgBox "The Number of Lines is: " & CStr(UBound(strArray) - LBound(strArray)
+ 1)

End Sub






Avatar
Daniel.C
Sub test2()
Dim Fich As String
Dim NbL As Long
Fich = Application.GetOpenFilename("Text Files (*.csv;*.txt),
*.csv;*.txt")
Open Fich For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
NbL = NbL + 1
Loop
Close #1
MsgBox "The Number of Lines is " & NbL
End Sub

Daniel
"Vincent_C" a écrit dans le message de
news:
Bonsoir. Merci à tous les 2. j'ai essayé les 2 macros, et celle qui
fonctionne bien sous Excel 2003 est la deuxième. Sans vouloir abuser de
votre
gentillesse, pourriez vous s'il vous plait insérer un code qui permettrait
de
déclancher la macro après sélection d'un fichier .txt ou .csv (quelquesoit
son nom et son emplacement) ?

Merci de nouveau à vous.
Bien cordialement, Vincent_C


Bonsoir,

Voici une petite macro qui va compter le nombre de ligne d'un fichier
texte :

Sub GrosFichierCSV()
Dim NbL As Long
Open "D:FICHIERTEXTE.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
NbL = NbL + 1
Loop
Close #1
MsgBox "The Number of Lines is " & NbL
End Sub

On 26 mar, 17:03, Vincent_C
wrote:
bonjour,

je cherche à compter le nombre de lignes présentes dans un fichier .txt
à
l'aide d'une macro VBA. Voici le code que j'ai trouvé qui fonctionne
correctement pour des fichiers allant jusqu'à env. 5Mo, mais lorsque
cela
dépasse il y a 1 message indiquant un manque de mémoire. Pouvez vous
s'il
vous plait m'indiquer un autre code (le fichier que j'ai testé fait 150
Mo)?
D'avance merci de votre aide.
Bien cordialement,
Vincent_C

Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer

iFileNo = FreeFile

Open "C:YourFile.Txt" For Binary As iFileNo
strFile = Space(LOF(iFileNo)) ' Set File Buffer Size
Get iFileNo, , strFile ' Load the text
Close iFileNo

strArray = Split(strFile, vbNewLine) ' The array now holds the entire
file,
one line per element.
strFile = ""

MsgBox "The Number of Lines is: " & CStr(UBound(strArray) -
LBound(strArray)
+ 1)

End Sub








Avatar
Vincent_C
Génial super ! Merci beaucoup à tous.

Bien cordialement,

Vincent_C


Sub test2()
Dim Fich As String
Dim NbL As Long
Fich = Application.GetOpenFilename("Text Files (*.csv;*.txt),
*.csv;*.txt")
Open Fich For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
NbL = NbL + 1
Loop
Close #1
MsgBox "The Number of Lines is " & NbL
End Sub

Daniel
"Vincent_C" a écrit dans le message de
news:
Bonsoir. Merci à tous les 2. j'ai essayé les 2 macros, et celle qui
fonctionne bien sous Excel 2003 est la deuxième. Sans vouloir abuser de
votre
gentillesse, pourriez vous s'il vous plait insérer un code qui permettrait
de
déclancher la macro après sélection d'un fichier .txt ou .csv (quelquesoit
son nom et son emplacement) ?

Merci de nouveau à vous.
Bien cordialement, Vincent_C


Bonsoir,

Voici une petite macro qui va compter le nombre de ligne d'un fichier
texte :

Sub GrosFichierCSV()
Dim NbL As Long
Open "D:FICHIERTEXTE.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
NbL = NbL + 1
Loop
Close #1
MsgBox "The Number of Lines is " & NbL
End Sub

On 26 mar, 17:03, Vincent_C
wrote:
bonjour,

je cherche à compter le nombre de lignes présentes dans un fichier .txt
à
l'aide d'une macro VBA. Voici le code que j'ai trouvé qui fonctionne
correctement pour des fichiers allant jusqu'à env. 5Mo, mais lorsque
cela
dépasse il y a 1 message indiquant un manque de mémoire. Pouvez vous
s'il
vous plait m'indiquer un autre code (le fichier que j'ai testé fait 150
Mo)?
D'avance merci de votre aide.
Bien cordialement,
Vincent_C

Sub CountNbLines()

Dim strArray() As String
Dim strFile As String
Dim iFileNo As Integer

iFileNo = FreeFile

Open "C:YourFile.Txt" For Binary As iFileNo
strFile = Space(LOF(iFileNo)) ' Set File Buffer Size
Get iFileNo, , strFile ' Load the text
Close iFileNo

strArray = Split(strFile, vbNewLine) ' The array now holds the entire
file,
one line per element.
strFile = ""

MsgBox "The Number of Lines is: " & CStr(UBound(strArray) -
LBound(strArray)
+ 1)

End Sub













Avatar
Michel Angelosanto
Juste un petit conseil:
puisqu'il s'agit de gros fichiers, autant que le comptage soit le plus
rapide possible et c'est possible en mettant la boucle sur la même ligne
comme ceci:

Do While Not EOF(1): Line Input #1, Ligne: NbL = NbL + 1: Loop

Bon week end à tous.

Michel Angelosanto, Bordeaux
http://angelosa.free.fr/
Avatar
JB
Bonjour,

Le temps d'exécution est le même.

JB
On 29 mar, 10:13, "Michel Angelosanto" wrote:
Juste un petit conseil:
puisqu'il s'agit de gros fichiers, autant que le comptage soit le plus
rapide possible et c'est possible en mettant la boucle sur la même ligne
comme ceci:

 Do While Not EOF(1): Line Input #1, Ligne: NbL = NbL + 1: Loop

Bon week end à tous.

Michel Angelosanto, Bordeauxhttp://angelosa.free.fr/


Avatar
Dan67
Sous Office 2007 macro Word : EOF provoque systématiquement une erreur de
compilation : nombre d'arguments incorrect ou affectation de propriété
incorrecte !


Bonjour,

Le temps d'exécution est le même.

JB
On 29 mar, 10:13, "Michel Angelosanto" wrote:
Juste un petit conseil:
puisqu'il s'agit de gros fichiers, autant que le comptage soit le plus
rapide possible et c'est possible en mettant la boucle sur la même ligne
comme ceci:

Do While Not EOF(1): Line Input #1, Ligne: NbL = NbL + 1: Loop

Bon week end à tous.

Michel Angelosanto, Bordeauxhttp://angelosa.free.fr/