OVH Cloud OVH Cloud

Recherche cellules extrêmes dans une sélection

16 réponses
Avatar
Bruno CM
Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM

10 réponses

1 2
Avatar
Joël GARBE
Bonsoir

selection.range("a1").row
selection.range("a1").column
pour la premère cellule

selection.range("a1").row + selection.rows.count - 1
selection.range("a1").column + selection.columns.count - 1
pour la dernière cellule

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Bruno CM" a écrit dans le message de
news:
Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en
bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM


Avatar
Bruno CM
Bonsoir,

Merci pour votre réponse rapide. Toutefois ma sélection ne part pas de la
cellule A1, mais comme indiqué il s'agit d'une sélection d'une plage
quelconque dans la feuille ... ce qui complique les choses.
Désolé pour cetterelance.


Bonsoir

selection.range("a1").row
selection.range("a1").column
pour la premère cellule

selection.range("a1").row + selection.rows.count - 1
selection.range("a1").column + selection.columns.count - 1
pour la dernière cellule

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Bruno CM" a écrit dans le message de
news:
Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en
bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM







Avatar
isabelle
bonjour Bruno,

voilà,

Sub Macro1()
Dim R As Long, C As Integer, plg As Range
Set plg = Selection
R = plg.Areas(plg.Areas.Count)(1).Row + plg.Areas(plg.Areas.Count).Rows.Count - 1
C = plg.Areas(plg.Areas.Count)(1).Column + plg.Areas(plg.Areas.Count).Columns.Count - 1
MsgBox "première = " & plg(1).Address & Chr(10) & _
"première ligne = " & plg(1).Row & Chr(10) & _
"première colonne = " & plg(1).Column

MsgBox "dernière = " & Cells(R, C).Address(0, 0) & Chr(10) & _
"dernière ligne = " & Cells(R, C).Row & Chr(10) & _
"dernière colonne = " & Cells(R, C).Column
End Sub

isabelle


Bonsoir,

Merci pour votre réponse rapide. Toutefois ma sélection ne part pas de la
cellule A1, mais comme indiqué il s'agit d'une sélection d'une plage
quelconque dans la feuille ... ce qui complique les choses.
Désolé pour cetterelance.


Bonsoir

selection.range("a1").row
selection.range("a1").column
pour la premère cellule

selection.range("a1").row + selection.rows.count - 1
selection.range("a1").column + selection.columns.count - 1
pour la dernière cellule

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Bruno CM" a écrit dans le message de
news:
Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en
bas Ã
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM









Avatar
Philippe.R
Bonsoir Bruno,
Puisqu'elle est faite, en voici encore une :

Sub prem_et_der()
'MPFE le 15/11/2004 Philippe.R
Dim dEb As String, fIn As String
Dim cCc As Integer, lLl As Long

dEb = ActiveCell.Address
cCc = Selection.Columns.Count - 1
lLl = Selection.Rows.Count - 1
If Not Intersect(ActiveCell.Offset(-1, -1), Selection) Is Nothing Then
fIn = Cells(ActiveCell.Row - lLl, ActiveCell.Column - cCc).Address
MsgBox "La première est en " & fIn & vbNewLine _
& "la dernière en " & dEb
Else
fIn = Cells(ActiveCell.Row + lLl, ActiveCell.Column + cCc).Address
msgBox "La première est en " & dEb & vbNewLine _
& "la dernière en " & fIn
End If
End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Bruno CM" a écrit dans le message de news:

Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM


Avatar
LeSteph
Bonsoir Bruno,
il y aura juste deux points entre les deux:

Sub infoselect()
MsgBox Selection.Address
End Sub

'lSteph
"Bruno CM" a écrit dans le message de
news:
Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en
bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM


Avatar
Daniel.M
Joël,

Enchanté de t'accueillir dans le club des incompris. ;-)

Salutations,

Daniel M.
Avatar
Philippe.R
A oublier, la moitié des cas n'est pas gérée !
Et quand on voit la simplicité de la syntaxe proposée par LeSteph, on rentre sous terre !
;o)))
--
Amicales Salutations

"Philippe.R" a écrit dans le message de news:
%
Bonsoir Bruno,
Puisqu'elle est faite, en voici encore une :

Sub prem_et_der()
'MPFE le 15/11/2004 Philippe.R
Dim dEb As String, fIn As String
Dim cCc As Integer, lLl As Long

dEb = ActiveCell.Address
cCc = Selection.Columns.Count - 1
lLl = Selection.Rows.Count - 1
If Not Intersect(ActiveCell.Offset(-1, -1), Selection) Is Nothing Then
fIn = Cells(ActiveCell.Row - lLl, ActiveCell.Column - cCc).Address
MsgBox "La première est en " & fIn & vbNewLine _
& "la dernière en " & dEb
Else
fIn = Cells(ActiveCell.Row + lLl, ActiveCell.Column + cCc).Address
msgBox "La première est en " & dEb & vbNewLine _
& "la dernière en " & fIn
End If
End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Bruno CM" a écrit dans le message de news:

Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM





Avatar
Bruno CM
Bonsoir à tous,

Un grand merci pour toutes vos réponses.
Joël : en supprimant la référence "A1" dans tes formules j'ai réussi entre
temps à m'en sortir.

Cordialement.


Bonsoir Bruno,
Puisqu'elle est faite, en voici encore une :

Sub prem_et_der()
'MPFE le 15/11/2004 Philippe.R
Dim dEb As String, fIn As String
Dim cCc As Integer, lLl As Long

dEb = ActiveCell.Address
cCc = Selection.Columns.Count - 1
lLl = Selection.Rows.Count - 1
If Not Intersect(ActiveCell.Offset(-1, -1), Selection) Is Nothing Then
fIn = Cells(ActiveCell.Row - lLl, ActiveCell.Column - cCc).Address
MsgBox "La première est en " & fIn & vbNewLine _
& "la dernière en " & dEb
Else
fIn = Cells(ActiveCell.Row + lLl, ActiveCell.Column + cCc).Address
msgBox "La première est en " & dEb & vbNewLine _
& "la dernière en " & fIn
End If
End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Bruno CM" a écrit dans le message de news:

Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM






Avatar
GD
Bonsour ® Bruno CM ,
wrote:
ce qui complique les choses.
????

;o)))
allons donc !!!
même en cas de selections multiples

Sub bruno()
i = 1
For Each Zone In Selection.Areas
MsgBox "Coin haut gauche" _
& Chr(10) & "Ligne " & Zone.Row _
& Chr(10) & "Colonne " & Zone.Column _
& Chr(10) & Chr(9) & "coin bas droit" _
& Chr(10) & Chr(9) & "Ligne " & (Zone.Row + Zone.Rows.Count - 1) _
& Chr(10) & Chr(9) & "Colonne " & (Zone.Column + Zone.Columns.Count - 1) _
, vbInformation, Zone.Cells.Count & " cellule(s) Zone N°" & i & " / " &
Selection.Areas.Count
i = i + 1
Next
End Sub

;o)))
@+

Avatar
LeSteph
C'était avec plaisir, mais je t'en prie ne rentre pas sous terre,
d'ailleurs la mienne est redondante de détails sur les sélections multiples
alors que la tienne donne simplement la première et la dernière!
Et, est-ce bien ce que veut Bruno?
En plus si je devais en faire autant chaque foisque l'on rattrappe mes ..,
je serais plus profond que la nappe fréatique.
Remarque peut-être qu'au fond il y a du beaujolais!

:-))
lSteph

"Philippe.R" a écrit dans le message de news:
%23P%
A oublier, la moitié des cas n'est pas gérée !
Et quand on voit la simplicité de la syntaxe proposée par LeSteph, on
rentre sous terre !
;o)))
--
Amicales Salutations

"Philippe.R" a écrit dans le message de news:
%
Bonsoir Bruno,
Puisqu'elle est faite, en voici encore une :

Sub prem_et_der()
'MPFE le 15/11/2004 Philippe.R
Dim dEb As String, fIn As String
Dim cCc As Integer, lLl As Long

dEb = ActiveCell.Address
cCc = Selection.Columns.Count - 1
lLl = Selection.Rows.Count - 1
If Not Intersect(ActiveCell.Offset(-1, -1), Selection) Is Nothing Then
fIn = Cells(ActiveCell.Row - lLl, ActiveCell.Column - cCc).Address
MsgBox "La première est en " & fIn & vbNewLine _
& "la dernière en " & dEb
Else
fIn = Cells(ActiveCell.Row + lLl, ActiveCell.Column + cCc).Address
msgBox "La première est en " & dEb & vbNewLine _
& "la dernière en " & fIn
End If
End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Retirer A_S_ pour répondre en privé.
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Bruno CM" a écrit dans le message de
news:
Bonjour,

Je souhaiterai pouvoir obtenir en VBA l'adresse (numéros ligne et
colonne)
de la première cellule (en haut à gauche) et de la dernière cellule (en
bas à
droite) d'une sélection quelconque effectuée dans une feuille.
J'ai cherché sans succès dans divers forums, d'où ma question qui
j'espère
n'a pas été traitée x fois (?).
D'avance, je remercie toute personne qui pourra me mettre sur la piste.
--
BCM








1 2