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

Connaître le nombre exact de lignes d'une plage excel 2003

3 réponses
Avatar
bougeois cecile
bonjour,

J'importe un fichier ".csv" sous excel que je recopie dans un autre classeur
".xls" (version excel 2003) via une macro vba 6.3.
Après quelques traitements des données, je suis amenée à détruire des lignes
inutiles en présence d'un mot clé.
Après cette suppression multiple, excel semble "garder" en mémoire le nombre
de ligne avant destruction. Aussi lorsque je demande le nombre exact de
lignes, j'obtiens un nombre supérieur à la réalité.

Voici le code écrit :

Sub Recherche_Annulee()

Application.DisplayStatusBar = True
Application.StatusBar = "Recherche la mention 'ANNULEE' et/ou 'Total
général' dans la première colonne de l'onglet 'Traitement donnees' pour
suppression ligne "

On Error Resume Next

Dim MonModule As Range
Dim i As Long

Sheets("Traitement donnees").Select
Set MonModule = Range("A2:A" & Range("A2").End(xlDown).Row)

For i = MonModule.Cells.Count To 1 Step -1
If MonModule.Cells(i).Value = "**ANNULÉE**" Then
MonModule.Cells(i).EntireRow.Delete
End If
If MonModule.Cells(i).Value = "Total général" Then
MonModule.Cells(i).EntireRow.Delete
End If
Next

NbLignes = Cells.SpecialCells(xlCellTypeLastCell).Row
MsgBox ("Nombre de lignes après suppression des Mentions **ANNULEE** : " &
NbLignes)

Call SuppColonnes

'Application.StatusBar = ""
'Application.DisplayStatusBar = False

End Sub

Pour précision, je ne suis pas experte en vba et "pioche" alégrement sur le
net. Merci à vous tous de bien vouloir m'aider sur ce petit problème de
macro.

Cordialement,
ceb

3 réponses

Avatar
Jacky
Bonsoir,

Après cette suppression multiple, excel semble "garder" en mémoire le
nombre


C'est l'inconvenant de "Cells.SpecialCells(xlCellTypeLastCell).Row"
Qui sauf sauvegarde du fichier, garde en mémoire les premières occupations.
'----------
NbLignes= Range("a65536").End(3).Row-1
--
Salutations
JJ

"bougeois cecile" a écrit dans le message de
news: 45422906$0$25926$
bonjour,

J'importe un fichier ".csv" sous excel que je recopie dans un autre
classeur ".xls" (version excel 2003) via une macro vba 6.3.
Après quelques traitements des données, je suis amenée à détruire des
lignes inutiles en présence d'un mot clé.
Après cette suppression multiple, excel semble "garder" en mémoire le
nombre de ligne avant destruction. Aussi lorsque je demande le nombre
exact de lignes, j'obtiens un nombre supérieur à la réalité.


Sub Recherche_Annulee()

Application.DisplayStatusBar = True
Application.StatusBar = "Recherche la mention 'ANNULEE' et/ou 'Total
général' dans la première colonne de l'onglet 'Traitement donnees' pour
suppression ligne "

On Error Resume Next

Dim MonModule As Range
Dim i As Long

Sheets("Traitement donnees").Select
Set MonModule = Range("A2:A" & Range("A2").End(xlDown).Row)

For i = MonModule.Cells.Count To 1 Step -1
If MonModule.Cells(i).Value = "**ANNULÉE**" Then
MonModule.Cells(i).EntireRow.Delete
End If
If MonModule.Cells(i).Value = "Total général" Then
MonModule.Cells(i).EntireRow.Delete
End If
Next

NbLignes = Cells.SpecialCells(xlCellTypeLastCell).Row
MsgBox ("Nombre de lignes après suppression des Mentions **ANNULEE** : " &
NbLignes)

Call SuppColonnes

'Application.StatusBar = ""
'Application.DisplayStatusBar = False

End Sub

Pour précision, je ne suis pas experte en vba et "pioche" alégrement sur
le net. Merci à vous tous de bien vouloir m'aider sur ce petit problème de
macro.

Cordialement,
ceb



Avatar
FxM
Bonsoir,

NbLignes = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row

@+
FxM



bonjour,

J'importe un fichier ".csv" sous excel que je recopie dans un autre classeur
".xls" (version excel 2003) via une macro vba 6.3.
Après quelques traitements des données, je suis amenée à détruire des lignes
inutiles en présence d'un mot clé.
Après cette suppression multiple, excel semble "garder" en mémoire le nombre
de ligne avant destruction. Aussi lorsque je demande le nombre exact de
lignes, j'obtiens un nombre supérieur à la réalité.


Sub Recherche_Annulee()

Application.DisplayStatusBar = True
Application.StatusBar = "Recherche la mention 'ANNULEE' et/ou 'Total
général' dans la première colonne de l'onglet 'Traitement donnees' pour
suppression ligne "

On Error Resume Next

Dim MonModule As Range
Dim i As Long

Sheets("Traitement donnees").Select
Set MonModule = Range("A2:A" & Range("A2").End(xlDown).Row)

For i = MonModule.Cells.Count To 1 Step -1
If MonModule.Cells(i).Value = "**ANNULÉE**" Then
MonModule.Cells(i).EntireRow.Delete
End If
If MonModule.Cells(i).Value = "Total général" Then
MonModule.Cells(i).EntireRow.Delete
End If
Next

NbLignes = Cells.SpecialCells(xlCellTypeLastCell).Row
MsgBox ("Nombre de lignes après suppression des Mentions **ANNULEE** : " &
NbLignes)

Call SuppColonnes

'Application.StatusBar = ""
'Application.DisplayStatusBar = False

End Sub

Pour précision, je ne suis pas experte en vba et "pioche" alégrement sur le
net. Merci à vous tous de bien vouloir m'aider sur ce petit problème de
macro.

Cordialement,
ceb




Avatar
bougeois cecile
bonjour,

Un grand merci aux deux personnes qui m'ont apportée leur aide sur mon petit
problème.

cordialement,
ceb

"Jacky" a écrit dans le message de news:
upKo6Ge%
Bonsoir,

Après cette suppression multiple, excel semble "garder" en mémoire le
nombre


C'est l'inconvenant de "Cells.SpecialCells(xlCellTypeLastCell).Row"
Qui sauf sauvegarde du fichier, garde en mémoire les premières
occupations.
'----------
NbLignes= Range("a65536").End(3).Row-1
--
Salutations
JJ

"bougeois cecile" a écrit dans le message de
news: 45422906$0$25926$
bonjour,

J'importe un fichier ".csv" sous excel que je recopie dans un autre
classeur ".xls" (version excel 2003) via une macro vba 6.3.
Après quelques traitements des données, je suis amenée à détruire des
lignes inutiles en présence d'un mot clé.
Après cette suppression multiple, excel semble "garder" en mémoire le
nombre de ligne avant destruction. Aussi lorsque je demande le nombre
exact de lignes, j'obtiens un nombre supérieur à la réalité.


Sub Recherche_Annulee()

Application.DisplayStatusBar = True
Application.StatusBar = "Recherche la mention 'ANNULEE' et/ou 'Total
général' dans la première colonne de l'onglet 'Traitement donnees' pour
suppression ligne "

On Error Resume Next

Dim MonModule As Range
Dim i As Long

Sheets("Traitement donnees").Select
Set MonModule = Range("A2:A" & Range("A2").End(xlDown).Row)

For i = MonModule.Cells.Count To 1 Step -1
If MonModule.Cells(i).Value = "**ANNULÉE**" Then
MonModule.Cells(i).EntireRow.Delete
End If
If MonModule.Cells(i).Value = "Total général" Then
MonModule.Cells(i).EntireRow.Delete
End If
Next

NbLignes = Cells.SpecialCells(xlCellTypeLastCell).Row
MsgBox ("Nombre de lignes après suppression des Mentions **ANNULEE** : "
& NbLignes)

Call SuppColonnes

'Application.StatusBar = ""
'Application.DisplayStatusBar = False

End Sub

Pour précision, je ne suis pas experte en vba et "pioche" alégrement sur
le net. Merci à vous tous de bien vouloir m'aider sur ce petit problème
de macro.

Cordialement,
ceb