OVH Cloud OVH Cloud

récuperer la plage selectionnée

13 réponses
Avatar
AndréSch
Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André

10 réponses

1 2
Avatar
isabelle
bonjour André,

MsgBox Selection.Address

isabelle


Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André







Avatar
-=lolol=-
Bonjour AndréSch,

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...


Usedrange.address
... mais qui renvoie $A$1:$B$12
(je ne sais pas faire comme tu veux désolé)

hth
@+lolo

Avatar
michdenis
Bonjour André,

UsedRange ne représente pas nécessairement l'étendue de la plage réellement utilisée dans une feuille de calcul.

Voici une façon de le faire :

Tu copies ceci dans un module standard.
Le résultat obtenu représente une forme rectangulaire de la plage de cellules
de la première ligne à la dernière ligne
de la première colonne à la dernière colonne


'---------------------------
Sub Adresse()

Dim Sh As Worksheet, Adr As String

Set Sh = Worksheets("Feuil2") 'A déterminer

Adr = Range(Cells(DerLig(Sh, xlNext), DerCol(Sh, xlNext)), _
Cells(DerLig(Sh, xlPrevious), DerCol(Sh, xlPrevious))).Address(0, 0)

MsgBox "La plage utiliseé de la feuille """ & Sh.Name & """ est : " & Adr

End Sub

'---------------------------
Function DerLig(Sh As Worksheet, Search As String)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=Search).Row
On Error GoTo 0
End Function
'---------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'---------------------------


Salutations!




"AndréSch" a écrit dans le message de news:
Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André
Avatar
RGI
un petit rectificatif dans ta seconde function

Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
'SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function


salutations

Gilbert

Bonjour André,

UsedRange ne représente pas nécessairement l'étendue de la plage réellement utilisée dans une feuille de calcul.

Voici une façon de le faire :

Tu copies ceci dans un module standard.
Le résultat obtenu représente une forme rectangulaire de la plage de cellules
de la première ligne à la dernière ligne
de la première colonne à la dernière colonne


'---------------------------
Sub Adresse()

Dim Sh As Worksheet, Adr As String

Set Sh = Worksheets("Feuil2") 'A déterminer

Adr = Range(Cells(DerLig(Sh, xlNext), DerCol(Sh, xlNext)), _
Cells(DerLig(Sh, xlPrevious), DerCol(Sh, xlPrevious))).Address(0, 0)

MsgBox "La plage utiliseé de la feuille """ & Sh.Name & """ est : " & Adr

End Sub

'---------------------------
Function DerLig(Sh As Worksheet, Search As String)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=Search).Row
On Error GoTo 0
End Function
'---------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'---------------------------


Salutations!




"AndréSch" a écrit dans le message de news:
Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André








Avatar
michdenis
Bonjour RGI,

Merci de la correction, j'ai remplacé par un copier-coller le mauvais paramêtre ... ;-))

Mais je crois que ceci devrait suffire !
'-----------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
On Error GoTo 0
End Function
'-----------------------------


Salutations!



"RGI" a écrit dans le message de news: %
un petit rectificatif dans ta seconde function

Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
'SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function


salutations

Gilbert

Bonjour André,

UsedRange ne représente pas nécessairement l'étendue de la plage réellement utilisée dans une feuille de calcul.

Voici une façon de le faire :

Tu copies ceci dans un module standard.
Le résultat obtenu représente une forme rectangulaire de la plage de cellules
de la première ligne à la dernière ligne
de la première colonne à la dernière colonne


'---------------------------
Sub Adresse()

Dim Sh As Worksheet, Adr As String

Set Sh = Worksheets("Feuil2") 'A déterminer

Adr = Range(Cells(DerLig(Sh, xlNext), DerCol(Sh, xlNext)), _
Cells(DerLig(Sh, xlPrevious), DerCol(Sh, xlPrevious))).Address(0, 0)

MsgBox "La plage utiliseé de la feuille """ & Sh.Name & """ est : " & Adr

End Sub

'---------------------------
Function DerLig(Sh As Worksheet, Search As String)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=Search).Row
On Error GoTo 0
End Function
'---------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'---------------------------


Salutations!




"AndréSch" a écrit dans le message de news:
Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André








Avatar
RGI
l' erreur est toujours possible ;-)))

gilbert


Bonjour RGI,

Merci de la correction, j'ai remplacé par un copier-coller le mauvais paramêtre ... ;-))

Mais je crois que ceci devrait suffire !
'-----------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
On Error GoTo 0
End Function
'-----------------------------


Salutations!



"RGI" a écrit dans le message de news: %
un petit rectificatif dans ta seconde function

Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
'SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function


salutations

Gilbert


Bonjour André,

UsedRange ne représente pas nécessairement l'étendue de la plage réellement utilisée dans une feuille de calcul.

Voici une façon de le faire :

Tu copies ceci dans un module standard.
Le résultat obtenu représente une forme rectangulaire de la plage de cellules
de la première ligne à la dernière ligne
de la première colonne à la dernière colonne


'---------------------------
Sub Adresse()

Dim Sh As Worksheet, Adr As String

Set Sh = Worksheets("Feuil2") 'A déterminer

Adr = Range(Cells(DerLig(Sh, xlNext), DerCol(Sh, xlNext)), _
Cells(DerLig(Sh, xlPrevious), DerCol(Sh, xlPrevious))).Address(0, 0)

MsgBox "La plage utiliseé de la feuille """ & Sh.Name & """ est : " & Adr

End Sub

'---------------------------
Function DerLig(Sh As Worksheet, Search As String)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=Search).Row
On Error GoTo 0
End Function
'---------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'---------------------------


Salutations!




"AndréSch" a écrit dans le message de news:
Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André













Avatar
AndréSch
salut isabelle

ça ne donne que l'adresse de la cellule active

merci tout de mm

André
"isabelle" a écrit dans le message de news:
%
bonjour André,

MsgBox Selection.Address

isabelle


Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière
ligne etc..

merci d'avance et bravo à ceux qui m'aideront

André








Avatar
AndréSch
bonjour ami
la aussi ça ne donne que l'adresse de la cellule active de la userrange...

merci quad mm

andré
"-=lolol=-" a écrit dans le message de news:

Bonjour AndréSch,

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...


Usedrange.address
... mais qui renvoie $A$1:$B$12
(je ne sais pas faire comme tu veux désolé)

hth
@+lolo




Avatar
AndréSch
Salut Michel denis

sympa, comme d'ab, mais bien lourd...
Je suis de niveau... inférieur et ai du mal à comprendre ta formule

je vais essayer tout de mm

encore merci

andré

"michdenis" a écrit dans le message de news:

Bonjour André,

UsedRange ne représente pas nécessairement l'étendue de la plage
réellement utilisée dans une feuille de calcul.

Voici une façon de le faire :

Tu copies ceci dans un module standard.
Le résultat obtenu représente une forme rectangulaire de la plage de
cellules
de la première ligne à la dernière ligne
de la première colonne à la dernière colonne


'---------------------------
Sub Adresse()

Dim Sh As Worksheet, Adr As String

Set Sh = Worksheets("Feuil2") 'A déterminer

Adr = Range(Cells(DerLig(Sh, xlNext), DerCol(Sh, xlNext)), _
Cells(DerLig(Sh, xlPrevious), DerCol(Sh, xlPrevious))).Address(0, 0)

MsgBox "La plage utiliseé de la feuille """ & Sh.Name & """ est : " & Adr

End Sub

'---------------------------
Function DerLig(Sh As Worksheet, Search As String)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=Search).Row
On Error GoTo 0
End Function
'---------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'---------------------------


Salutations!




"AndréSch" a écrit dans le message de news:

Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière
ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André








Avatar
AndréSch
merci les gars
on va essayer tout ça

un peu hebreu... mais ya qu'à copier...

bon WE

andré
"RGI" a écrit dans le message de news:

l' erreur est toujours possible ;-)))

gilbert


Bonjour RGI,

Merci de la correction, j'ai remplacé par un copier-coller le mauvais
paramêtre ... ;-))

Mais je crois que ceci devrait suffire !
'-----------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
On Error GoTo 0
End Function
'-----------------------------


Salutations!



"RGI" a écrit dans le message de news:
%
un petit rectificatif dans ta seconde function

Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=Search).Column
'SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function


salutations

Gilbert


Bonjour André,

UsedRange ne représente pas nécessairement l'étendue de la plage
réellement utilisée dans une feuille de calcul.

Voici une façon de le faire :

Tu copies ceci dans un module standard.
Le résultat obtenu représente une forme rectangulaire de la plage de
cellules
de la première ligne à la dernière ligne
de la première colonne à la dernière colonne


'---------------------------
Sub Adresse()

Dim Sh As Worksheet, Adr As String

Set Sh = Worksheets("Feuil2") 'A déterminer

Adr = Range(Cells(DerLig(Sh, xlNext), DerCol(Sh, xlNext)), _
Cells(DerLig(Sh, xlPrevious), DerCol(Sh, xlPrevious))).Address(0, 0)

MsgBox "La plage utiliseé de la feuille """ & Sh.Name & """ est : " & Adr

End Sub

'---------------------------
Function DerLig(Sh As Worksheet, Search As String)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=Search).Row
On Error GoTo 0
End Function
'---------------------------
Function DerCol(Sh As Worksheet, Search As String)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
After:=Sh.Range("IV65536"), _
LookIn:=xlFormulas, _
SearchOrder:=Search, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'---------------------------


Salutations!




"AndréSch" a écrit dans le message de news:

Bonjour à tous

une question idiote, mais dont je ne trouve pas la réponse:

Comment connaitre simplement la plage selectionnée par Usedrange

trouver A1:B12 par exemple...

autrement qu'en calculant 1ere e dernière colonne ; 1 ere et dernière
ligne
etc..

merci d'avance et bravo à ceux qui m'aideront

André














1 2