Nombre de lignes actives

Le
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.
  • Partager ce contenu :
Vos réponses Page 1 / 2
Trier par : date / pertinence
MichD
Le #26517888
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
Jacquouille
Le #26517889
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.
JeanPaulo
Le #26517898
MichD 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.
JeanPaulo
Le #26517907
Merci. Ca me semble simple. je vais tester.
"Jacquouille" 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.
JeanPaulo
Le #26517906
"Jacquouille" 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
MichD
Le #26517929
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
MichD
Le #26517928
Le 01/06/19 à 09:12, JeanPaulo a écrit :
"Jacquouille" 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
JeanPaulo
Le #26517980
MichD news:qcu3mr$11bo$:
Le 01/06/19 à 09:12, JeanPaulo a écrit :
"Jacquouille" 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)
JeanPaulo
Le #26517982
"Jacquouille" 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
Jacquouille
Le #26518002
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" 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
Poster une réponse
Anonyme