Salut à tous.
Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro
de la dernière ligne d'une selection (qu'elle soit continue ou discontinue),
genre Application.Selection.Lastrow, ou faut-il le créer ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonjour,
non , ca n'existe pas. D'ailleurs, que veut exactement dire la dernière ligne d'une selection discontinue p.e ? Je m'explique. Si je prends une plage discontinue A1:C10 et D1:E2 selectionnée avec la 1ere plage en D1:E2. LA dernière ligne selectionnée est-elle la ligne 10 ou la ligne 2 ?
A+
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
bonjour,
non , ca n'existe pas. D'ailleurs, que veut exactement dire la dernière
ligne d'une selection discontinue p.e ?
Je m'explique. Si je prends une plage discontinue A1:C10 et D1:E2
selectionnée avec la 1ere plage en D1:E2. LA dernière ligne selectionnée
est-elle la ligne 10 ou la ligne 2 ?
A+
Salut à tous.
Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro
de la dernière ligne d'une selection (qu'elle soit continue ou discontinue),
genre Application.Selection.Lastrow, ou faut-il le créer ?
non , ca n'existe pas. D'ailleurs, que veut exactement dire la dernière ligne d'une selection discontinue p.e ? Je m'explique. Si je prends une plage discontinue A1:C10 et D1:E2 selectionnée avec la 1ere plage en D1:E2. LA dernière ligne selectionnée est-elle la ligne 10 ou la ligne 2 ?
A+
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
ChrisV
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou
plusieurs sélections...
Sub zaza()
Set nbZn = Selection
For Each Zn In nbZn.Areas
With Zn.Range("A1")
derL = Zn.Row + Zn.Rows.Count - 1
End With
If maxL < derL Then _
maxL = derL
Next Zn
MsgBox maxL
Set nbZn = Nothing
End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza()
With ActiveCell
MsgBox .Row + Selection.Rows.Count - 1
End With
End Sub
ChrisV
"Gadget" <tohpointboh@nooos.fr> a écrit dans le message de news:
42bfd39b$0$18572$79c14f64@nan-newsreader-07.noos.net...
Salut à tous.
Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le
numéro de la dernière ligne d'une selection (qu'elle soit continue ou
discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
Gadget
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza() derL = 0 For Each Zn in Selection.Areas derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _ ZnRange("A1").Row + Zn.Rows.count - 1 ; derL) Next Zn Msgbox derL End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" a écrit dans le message de news:
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza()
derL = 0
For Each Zn in Selection.Areas
derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _
ZnRange("A1").Row + Zn.Rows.count - 1 ; derL)
Next Zn
Msgbox derL
End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les
références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" <chrisv@microsoftgroups.org> a écrit dans le message de news:
eVe5wEyeFHA.2128@TK2MSFTNGP14.phx.gbl...
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une
ou
plusieurs sélections...
Sub zaza()
Set nbZn = Selection
For Each Zn In nbZn.Areas
With Zn.Range("A1")
derL = Zn.Row + Zn.Rows.Count - 1
End With
If maxL < derL Then _
maxL = derL
Next Zn
MsgBox maxL
Set nbZn = Nothing
End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza()
With ActiveCell
MsgBox .Row + Selection.Rows.Count - 1
End With
End Sub
ChrisV
"Gadget" <tohpointboh@nooos.fr> a écrit dans le message de news:
42bfd39b$0$18572$79c14f64@nan-newsreader-07.noos.net...
Salut à tous.
Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le
numéro de la dernière ligne d'une selection (qu'elle soit continue ou
discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza() derL = 0 For Each Zn in Selection.Areas derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _ ZnRange("A1").Row + Zn.Rows.count - 1 ; derL) Next Zn Msgbox derL End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" a écrit dans le message de news:
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
ChrisV
Re,
Ne peut-on pas faire plus court sur ta première proc :
Bonne idée... (d'après ta proposition)
Sub zaza() derL = 0 For Each Zn In Selection.Areas derL = IIf((Zn.Range("A1").Row + Zn.Rows.Count - 1) > derL, _ Zn.Range("A1").Row + Zn.Rows.Count - 1, derL) Next Zn MsgBox derL End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42c0118d$0$18876$
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza() derL = 0 For Each Zn in Selection.Areas derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _ ZnRange("A1").Row + Zn.Rows.count - 1 ; derL) Next Zn Msgbox derL End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" a écrit dans le message de news:
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
Re,
Ne peut-on pas faire plus court sur ta première proc :
Bonne idée...
(d'après ta proposition)
Sub zaza()
derL = 0
For Each Zn In Selection.Areas
derL = IIf((Zn.Range("A1").Row + Zn.Rows.Count - 1) > derL, _
Zn.Range("A1").Row + Zn.Rows.Count - 1, derL)
Next Zn
MsgBox derL
End Sub
ChrisV
"Gadget" <tohpointboh@nooos.fr> a écrit dans le message de news:
42c0118d$0$18876$79c14f64@nan-newsreader-07.noos.net...
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza()
derL = 0
For Each Zn in Selection.Areas
derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _
ZnRange("A1").Row + Zn.Rows.count - 1 ; derL)
Next Zn
Msgbox derL
End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les
références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" <chrisv@microsoftgroups.org> a écrit dans le message de news:
eVe5wEyeFHA.2128@TK2MSFTNGP14.phx.gbl...
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une
ou
plusieurs sélections...
Sub zaza()
Set nbZn = Selection
For Each Zn In nbZn.Areas
With Zn.Range("A1")
derL = Zn.Row + Zn.Rows.Count - 1
End With
If maxL < derL Then _
maxL = derL
Next Zn
MsgBox maxL
Set nbZn = Nothing
End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza()
With ActiveCell
MsgBox .Row + Selection.Rows.Count - 1
End With
End Sub
ChrisV
"Gadget" <tohpointboh@nooos.fr> a écrit dans le message de news:
42bfd39b$0$18572$79c14f64@nan-newsreader-07.noos.net...
Salut à tous.
Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le
numéro de la dernière ligne d'une selection (qu'elle soit continue ou
discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Ne peut-on pas faire plus court sur ta première proc :
Bonne idée... (d'après ta proposition)
Sub zaza() derL = 0 For Each Zn In Selection.Areas derL = IIf((Zn.Range("A1").Row + Zn.Rows.Count - 1) > derL, _ Zn.Range("A1").Row + Zn.Rows.Count - 1, derL) Next Zn MsgBox derL End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42c0118d$0$18876$
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza() derL = 0 For Each Zn in Selection.Areas derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _ ZnRange("A1").Row + Zn.Rows.count - 1 ; derL) Next Zn Msgbox derL End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" a écrit dans le message de news:
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
AV
Ne peut-on pas faire plus court
Sub zz_L() For Each c In Selection If c.Row > x Then x = c.Row Next: MsgBox x End Sub
AV
Ne peut-on pas faire plus court
Sub zz_L()
For Each c In Selection
If c.Row > x Then x = c.Row
Next: MsgBox x
End Sub
Sub zz_L() For Each c In Selection If c.Row > x Then x = c.Row Next: MsgBox x End Sub
AV
Gadget
Ah oui effectivement, j'ai écrit la proc sans la copier sur VBA, alors les ; à la place des , - et le point oublié... Pas vu.
Gadget. "ChrisV" a écrit dans le message de news:
Re,
Ne peut-on pas faire plus court sur ta première proc :
Bonne idée... (d'après ta proposition)
Sub zaza() derL = 0 For Each Zn In Selection.Areas derL = IIf((Zn.Range("A1").Row + Zn.Rows.Count - 1) > derL, _ Zn.Range("A1").Row + Zn.Rows.Count - 1, derL) Next Zn MsgBox derL End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42c0118d$0$18876$
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza() derL = 0 For Each Zn in Selection.Areas derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _ ZnRange("A1").Row + Zn.Rows.count - 1 ; derL) Next Zn Msgbox derL End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" a écrit dans le message de news:
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
Ah oui effectivement, j'ai écrit la proc sans la copier sur VBA, alors les ;
à la place des , - et le point oublié... Pas vu.
Gadget.
"ChrisV" <chrisv@microsoftgroups.org> a écrit dans le message de news:
eiz1n5yeFHA.220@TK2MSFTNGP12.phx.gbl...
Re,
Ne peut-on pas faire plus court sur ta première proc :
Bonne idée...
(d'après ta proposition)
Sub zaza()
derL = 0
For Each Zn In Selection.Areas
derL = IIf((Zn.Range("A1").Row + Zn.Rows.Count - 1) > derL, _
Zn.Range("A1").Row + Zn.Rows.Count - 1, derL)
Next Zn
MsgBox derL
End Sub
ChrisV
"Gadget" <tohpointboh@nooos.fr> a écrit dans le message de news:
42c0118d$0$18876$79c14f64@nan-newsreader-07.noos.net...
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza()
derL = 0
For Each Zn in Selection.Areas
derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _
ZnRange("A1").Row + Zn.Rows.count - 1 ; derL)
Next Zn
Msgbox derL
End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les
références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" <chrisv@microsoftgroups.org> a écrit dans le message de news:
eVe5wEyeFHA.2128@TK2MSFTNGP14.phx.gbl...
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi
une ou
plusieurs sélections...
Sub zaza()
Set nbZn = Selection
For Each Zn In nbZn.Areas
With Zn.Range("A1")
derL = Zn.Row + Zn.Rows.Count - 1
End With
If maxL < derL Then _
maxL = derL
Next Zn
MsgBox maxL
Set nbZn = Nothing
End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza()
With ActiveCell
MsgBox .Row + Selection.Rows.Count - 1
End With
End Sub
ChrisV
"Gadget" <tohpointboh@nooos.fr> a écrit dans le message de news:
42bfd39b$0$18572$79c14f64@nan-newsreader-07.noos.net...
Salut à tous.
Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le
numéro de la dernière ligne d'une selection (qu'elle soit continue ou
discontinue), genre Application.Selection.Lastrow, ou faut-il le créer
?
Ah oui effectivement, j'ai écrit la proc sans la copier sur VBA, alors les ; à la place des , - et le point oublié... Pas vu.
Gadget. "ChrisV" a écrit dans le message de news:
Re,
Ne peut-on pas faire plus court sur ta première proc :
Bonne idée... (d'après ta proposition)
Sub zaza() derL = 0 For Each Zn In Selection.Areas derL = IIf((Zn.Range("A1").Row + Zn.Rows.Count - 1) > derL, _ Zn.Range("A1").Row + Zn.Rows.Count - 1, derL) Next Zn MsgBox derL End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42c0118d$0$18876$
Merci Chris. C'est effectivement ce que je cherchais
Ne peut-on pas faire plus court sur ta première proc :
Sub Zaza() derL = 0 For Each Zn in Selection.Areas derL=iif((Zn.Range("A1").Row + Zn.Rows.count-1)>derL ; _ ZnRange("A1").Row + Zn.Rows.count - 1 ; derL) Next Zn Msgbox derL End Sub
Ou quelque chose comme ça. Je ne l'ai as essayé, je ne sais pas si les références à la même variable des deux côtés du signe = pose problème.
Gadget.
"ChrisV" a écrit dans le message de news:
Bonjour Gadget,
La question est effectivement ambiguë...
Si, comme je crois comprendre, il s'agit du numéro de ligne max parmi une ou plusieurs sélections...
Sub zaza() Set nbZn = Selection For Each Zn In nbZn.Areas With Zn.Range("A1") derL = Zn.Row + Zn.Rows.Count - 1 End With If maxL < derL Then _ maxL = derL Next Zn MsgBox maxL Set nbZn = Nothing End Sub
S'il s'agit du numéro de la dernière ligne de la sélection active
Sub zaza() With ActiveCell MsgBox .Row + Selection.Rows.Count - 1 End With End Sub
ChrisV
"Gadget" a écrit dans le message de news: 42bfd39b$0$18572$
Salut à tous. Y a-t-il un moyen déjà implémenté dans VBA permettant de connaître le numéro de la dernière ligne d'une selection (qu'elle soit continue ou discontinue), genre Application.Selection.Lastrow, ou faut-il le créer ?
Merci de vos réponses.
isabelle
bonjour Gadget,
Ne peut-on pas faire plus court sur ta première proc :
Sub PlusCourt() derL = Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Address End Sub
isabelle
bonjour Gadget,
Ne peut-on pas faire plus court sur ta première proc :
Sub PlusCourt()
derL = Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Address
End Sub