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

Nombre de lignes actives

11 réponses
Avatar
JeanPaulo
Bonjour.

J'aurais besoin de connaître de façon simple (VBA) le nombre de lignes
utilisées dans une feuille. Actuellement, j'utilise un GRAND nombre pour ne
pas avoir à le changer souvent dans le code. Je n'ai pas trouvé sur le web
de méthode simple.

Question subsidiaire : Quand on clique sur le carré le plus haut à gauche,
on sélectionne toute la page. Un nombre s'affiche dans le second rectangle
du bas.

Il semble lié au nombre de lignes, mais toujours supérieur. Qu'est-ce que
c'est ?

Merci d'avance.

10 réponses

1 2
Avatar
MichD
Bonjour,
Tu remarqueras que le code est différent selon que la feuille contient
des formules ou simplement des valeurs. La dernière ligne peut contenir
à l'occasion des formules qui retournent "" . Et pour tenir compte de
cette possibilité, il faut utiliser le bon code.
'Déclaration des variables
Dim DerLig As Long, DerCol As Long
With Worksheets("Feuil1")
'donne la dernière ligne occupée
'soit par une valeur ou une formule
DerLig = .Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'donne la dernière ligne occupée par une valeur
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'donne la dernière colonne occupée
'soit par une valeur ou une formule
DerCol = .Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'donne la dernière colonne occupée par une valeur
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'Donne L'adresse de la dernière cellule occupée
MsgBox .Cells(DerLig, DerCol).Address
End With
Si tu as sélectionné toute la feuille, le nombre de lignes est égal au
nombre maximum de lignes de la feuille soit : 1048576
MichD
Avatar
Jacquouille
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row
Donnera la dernière ligne occupée en colonne A.
Si tu veux colonne B, change le Count,1 en 2 ...
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"JeanPaulo" a écrit dans le message de groupe de discussion :
Bonjour.
J'aurais besoin de connaître de façon simple (VBA) le nombre de lignes
utilisées dans une feuille. Actuellement, j'utilise un GRAND nombre pour ne
pas avoir à le changer souvent dans le code. Je n'ai pas trouvé sur le web
de méthode simple.
Question subsidiaire : Quand on clique sur le carré le plus haut à gauche,
on sélectionne toute la page. Un nombre s'affiche dans le second rectangle
du bas.
Il semble lié au nombre de lignes, mais toujours supérieur. Qu'est-ce que
c'est ?
Merci d'avance.
Avatar
JeanPaulo
MichD wrote in
news:qctmeb$174i$:
Bonjour,
Tu remarqueras que le code est différent selon que la feuille
contient des formules ou simplement des valeurs. La dernière ligne
peut contenir à l'occasion des formules qui retournent "" . Et pour
tenir compte de cette possibilité, il faut utiliser le bon code.

Merci. je vais étudier cette solution. Mais la phrase 'sélectionner' me
trouble, car je na veux pas sélectionner les lignes à l'avance.
Avatar
JeanPaulo
Merci. Ca me semble simple. je vais tester.
"Jacquouille" wrote in
news:qctmqd$18ne$:
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row
Donnera la dernière ligne occupée en colonne A.
Si tu veux colonne B, change le Count,1 en 2 ...
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"JeanPaulo" a écrit dans le message de groupe de discussion :
Bonjour.
Avatar
JeanPaulo
"Jacquouille" wrote in
news:qctmqd$18ne$:
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row

Merci beaucoup. Juste un test rapide sans fioriture. Oui, ça marche au
poil...
@+, JeanPaulo
Avatar
MichD
Merci. je vais étudier cette solution. Mais la phrase 'sélectionner' me
trouble, car je na veux pas sélectionner les lignes à l'avance.

Le code ne requiert aucune sélection.
MichD
Avatar
MichD
Le 01/06/19 à 09:12, JeanPaulo a écrit :
"Jacquouille" wrote in
news:qctmqd$18ne$:
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row

Merci beaucoup. Juste un test rapide sans fioriture. Oui, ça marche au
poil...
@+, JeanPaulo

Cela ne te donne pas la dernière ligne occupée dans la feuille, mais
seulement la dernière ligne occupée dans une colonne particulière de la
feuille.
MichD
Avatar
JeanPaulo
MichD wrote in
news:qcu3mr$11bo$:
Le 01/06/19 à 09:12, JeanPaulo a écrit :
"Jacquouille" wrote in
news:qctmqd$18ne$:
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row


Cela ne te donne pas la dernière ligne occupée dans la feuille, mais
seulement la dernière ligne occupée dans une colonne particulière
de la feuille.
MichD

Oui, j'ai bien noté cela, mais ma feuille DOIT contenir quelques chose dans
cette colonne. Le but est de cacher temporairement les lignes qui ne
comportent pas un mot (comme le 'chercher', mais multi lignes en même
temps)
Avatar
JeanPaulo
"Jacquouille" wrote in
news:qctmqd$18ne$:
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row
Donnera la dernière ligne occupée en colonne A.
Si tu veux colonne B, change le Count,1 en 2 ...

Juste pour montrer, ce code marche bien pour mon besoin: (peut-être pas
élégant...) La colonne 2 contient des titres de films.
' Bouton_filtre DVD
' Macro crée le 2/6/2019 par Jean-Paulo
'
Dim Le_texte As String
Dim Le_dernier As Integer
Dim a As Integer
Dim derL As Long
Dim DerU As Long
Dim Dert As String
'
Le_texte = UCase(InputBox("Filtre ? (rien pour effacer le filtre)",
"Filtrage"))
'
derL = Cells(Rows.Count, 2).End(xlUp).Row
DerU = derL + 200
Dert = "A2:" + "W" + Format(DerU, "#")
'
If Le_texte = "" Then
a = 2
Range(Dert).Select
Selection.EntireRow.Hidden = False
For a = DerU To 2 Step -1
'Debug.Print Cells(a, 1)
If Cells(a, 1) = 0 Then Le_dernier = a
Next a
ActiveSheet.Cells(Le_dernier, 1).Select
Else
Range(Dert).Select
Selection.EntireRow.Hidden = True
For a = DerU To 5 Step -1
If InStr(1, UCase(Cells(a, 2)), Le_texte) = 0 And InStr(1, UCase
(Cells(a, 9)), Le_texte) = 0 Then
'Rows(a).Select
'Selection.EntireRow.Hidden = True
Else
Rows(a).Select
Selection.EntireRow.Hidden = False
End If
Next a
End If
End Sub
et le résultat avec 'Tristan'
Fini Tristan et Isolde Acte 1 G:Video_rawWagner TristanWagner -
Tristan 2.webm 1082 YouTube DVD9446a Son + st
ajoutés 162600
Fini Tristan et Isolde Acte 2 G:Video_rawWagner TristanWagner -
Tristan 2.webm YouTube DVD9446b
162600
Fini Tristan et Isolde Acte 3 G:Video_rawWagner TristanWagner -
Tristan 2.webm YouTube DVD9446c
162600
Avatar
Jacquouille
Triste fin pour Tristan et Isolde. -((
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"JeanPaulo" a écrit dans le message de groupe de discussion :
"Jacquouille" wrote in
news:qctmqd$18ne$:
Bonjour,
derL= Cells(Rows.Count, 1).End(xlUp).Row
Donnera la dernière ligne occupée en colonne A.
Si tu veux colonne B, change le Count,1 en 2 ...

Juste pour montrer, ce code marche bien pour mon besoin: (peut-être pas
élégant...) La colonne 2 contient des titres de films.
' Bouton_filtre DVD
' Macro crée le 2/6/2019 par Jean-Paulo
'
Dim Le_texte As String
Dim Le_dernier As Integer
Dim a As Integer
Dim derL As Long
Dim DerU As Long
Dim Dert As String
'
Le_texte = UCase(InputBox("Filtre ? (rien pour effacer le filtre)",
"Filtrage"))
'
derL = Cells(Rows.Count, 2).End(xlUp).Row
DerU = derL + 200
Dert = "A2:" + "W" + Format(DerU, "#")
'
If Le_texte = "" Then
a = 2
Range(Dert).Select
Selection.EntireRow.Hidden = False
For a = DerU To 2 Step -1
'Debug.Print Cells(a, 1)
If Cells(a, 1) = 0 Then Le_dernier = a
Next a
ActiveSheet.Cells(Le_dernier, 1).Select
Else
Range(Dert).Select
Selection.EntireRow.Hidden = True
For a = DerU To 5 Step -1
If InStr(1, UCase(Cells(a, 2)), Le_texte) = 0 And InStr(1, UCase
(Cells(a, 9)), Le_texte) = 0 Then
'Rows(a).Select
'Selection.EntireRow.Hidden = True
Else
Rows(a).Select
Selection.EntireRow.Hidden = False
End If
Next a
End If
End Sub
et le résultat avec 'Tristan'
Fini Tristan et Isolde Acte 1 G:Video_rawWagner TristanWagner -
Tristan 2.webm 1082 YouTube DVD9446a Son + st
ajoutés 162600
Fini Tristan et Isolde Acte 2 G:Video_rawWagner TristanWagner -
Tristan 2.webm YouTube DVD9446b
162600
Fini Tristan et Isolde Acte 3 G:Video_rawWagner TristanWagner -
Tristan 2.webm YouTube DVD9446c
162600
1 2