OVH Cloud OVH Cloud

Première et dernière colonne d'un objet range

12 réponses
Avatar
Misange
Bonjour

Je récupère dans une macro un range. Disons A2:D20
comment récupérer :
preml= N° de la première ligne (2)
dernl= n° de la dernière ligne(20)
premc= N° de la première colonne (1) ou mieux, directement sa lettre, A
dernc= N° de la dernière colonne (4 ou D)

merci merci
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

10 réponses

1 2
Avatar
AV
Parmi la foultitude de soluces :
Sub zoziau()
Set plg = [D4:IV1000]
ligne1 = plg(1).Row '1° ligne de la plage
derLigne = plg.Rows.Count + ligne1 - 1 'der ligne

col1 = Split(plg(1).Address, "$")(1) '1° colonne de la plage
derCol = Split(Cells(1, plg.Columns.Count + plg(1).Column - 1).Address, "$")(1)
'der colonne

MsgBox ligne1: MsgBox derLigne: MsgBox col1: MsgBox derCol
End Sub

AV
Avatar
Misange
perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux


--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Avatar
FxM
Tiens ... quelqu'un qui veut être plus vieux :o)

Jean-François Aubert wrote:

Re salut,

Correction à apporter à ma proc:

Lettre_derc = Left$(Cells(1, rng(1, 1).Column + rng.Columns.Count - 1).Address(0, 0), _
(Cells(1, rng(1, 1).Column + rng.Columns.Count - 1).Column < 27) + 2)



Avatar
Jean-François Aubert
Je viens de corriger la date système
(un vieux reste de test de mise à jour....)

Merci de la remarque.

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"FxM" a écrit dans le message de
news:%
Tiens ... quelqu'un qui veut être plus vieux :o)

Jean-François Aubert wrote:

Re salut,

Correction à apporter à ma proc:

Lettre_derc = Left$(Cells(1, rng(1, 1).Column + rng.Columns.Count - 1).Address(0, 0), _
(Cells(1, rng(1, 1).Column + rng.Columns.Count - 1).Column < 27) + 2)






Avatar
isabelle
bonjour Florence,

il y a aussi la méthode item

Set plg = Range("A2:D20")
preml = plg.Item(1).Row
dernl = plg.Item(plg.Count).Row
premc = plg.Item(1).Column
dernc = plg.Item(plg.Count).Column
MsgBox Range(Cells(preml, premc), Cells(dernl, dernc)).Address

isabelle


perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Avatar
Misange
Salut Isabelle
Ah !!! les items :-)
Pas mal pas mal !
Je garde aussi

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


isabelle wrote:
bonjour Florence,

il y a aussi la méthode item

Set plg = Range("A2:D20")
preml = plg.Item(1).Row
dernl = plg.Item(plg.Count).Row
premc = plg.Item(1).Column
dernc = plg.Item(plg.Count).Column
MsgBox Range(Cells(preml, premc), Cells(dernl, dernc)).Address

isabelle


perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta




Avatar
isabelle
ou bien,

Sub Macro1()
Set plg = Range("A2:D20")
preml = plg.Item(1).Row
dernl = plg.Item(plg.Count).Row
premc = LettreColonne(plg.Item(1).Column)
dernc = LettreColonne(plg.Item(plg.Count).Column)
End Sub

Function LettreColonne(c As Integer)
If c < 27 Then LettreColonne = Chr(c + 64) _
Else: LettreColonne = Left(Cells(1, c).Address(0, 0), 2)
End Function

isabelle


perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Avatar
isabelle
Ho! que oui Michel, j'aimme bien ce Iif fonction, adopté
isabelle


Bonjour,

Version simplifiée de la fonction :

Function LettreColonne(c As Integer)
LettreColonne = Left(Cells(1, c).Address(0, 0), IIf(c < 27, 1, 2))
End Function


ou bien,

Sub Macro1()
Set plg = Range("A2:D20")
preml = plg.Item(1).Row
dernl = plg.Item(plg.Count).Row
premc = LettreColonne(plg.Item(1).Column)
dernc = LettreColonne(plg.Item(plg.Count).Column)
End Sub

Function LettreColonne(c As Integer)
If c < 27 Then LettreColonne = Chr(c + 64) _
Else: LettreColonne = Left(Cells(1, c).Address(0, 0), 2)
End Function

isabelle


perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
Michel Gaboly
Bonjour,

Version simplifiée de la fonction :

Function LettreColonne(c As Integer)
LettreColonne = Left(Cells(1, c).Address(0, 0), IIf(c < 27, 1, 2))
End Function



ou bien,

Sub Macro1()
Set plg = Range("A2:D20")
preml = plg.Item(1).Row
dernl = plg.Item(plg.Count).Row
premc = LettreColonne(plg.Item(1).Column)
dernc = LettreColonne(plg.Item(plg.Count).Column)
End Sub

Function LettreColonne(c As Integer)
If c < 27 Then LettreColonne = Chr(c + 64) _
Else: LettreColonne = Left(Cells(1, c).Address(0, 0), 2)
End Function

isabelle


perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Michel Gaboly
Re,

Le "IIF" avec 2 "i" est l'équivalent du SI() des feuilles de calcul.

Curieusement, je l'ai découvert très tard, et j'ai l'impression de ne pas
y penser assez souvent, et je ne suis probablement pas le seul ;-))))



Ho! que oui Michel, j'aimme bien ce Iif fonction, adopté
isabelle


Bonjour,

Version simplifiée de la fonction :

Function LettreColonne(c As Integer)
LettreColonne = Left(Cells(1, c).Address(0, 0), IIf(c < 27, 1, 2))
End Function


ou bien,

Sub Macro1()
Set plg = Range("A2:D20")
preml = plg.Item(1).Row
dernl = plg.Item(plg.Count).Row
premc = LettreColonne(plg.Item(1).Column)
dernc = LettreColonne(plg.Item(plg.Count).Column)
End Sub

Function LettreColonne(c As Integer)
If c < 27 Then LettreColonne = Chr(c + 64) _
Else: LettreColonne = Left(Cells(1, c).Address(0, 0), 2)
End Function

isabelle


perfecto !
je pensais naivement qu'on devait pouvoir faire plus simple ;-)
merci à tous les deux

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



--
Cordialement,

Michel Gaboly
http://www.gaboly.com




1 2