Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce forum,
c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et
qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la
première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la première et
de la
dernière ligne de la sélection. Le simple recours à l'utilisation de la
propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par la
cellule "A1", l'adresse retournée pour la plage est "A1". Il me suffirait
donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par un
count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule "B9",
l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun contrôle
sur le sens dans lequel la sélection a été effectuée, je ne peux pas changer
mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le nombre de
lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse.
J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à une
telle donnée, mais je n'ai pas trouvé de solution "facile".
Merci à toi aussi. Décidément, on peut dire que vous êtes actfis. C'est rare et précieux.
Bonne soirée et à bientôt,
Log
"Ange Ounis" wrote:
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la première cellule sélectionnée.
Ben, pas vraiment si tu utilises la propriété Address de la plage (voir les réponses de mes petits camarades). A partir de cette adresse, si tu travailles avec Excel 2000 ou plus récent, tu peux récupérer facilement la première ligne et la dernière, à l'aide de la fonction Split :
''''''''''''''''' Sub essai() Dim Plage As Range, Adr$, S$ Set Plage = Range("A1:B9") Adr = Plage.Address S = "Adresse : " & Adr & vbLf S = S & "Première ligne : " & _ Left(Split(Adr, "$")(2), Len(Split(Adr, "$")(2)) - 1) S = S & vbLf & "Dernière ligne : " & Split(Adr, "$")(4) MsgBox S End Sub '''''''''''''''''
---------- Ange Ounis ----------
Bonjour,
Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce forum, c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la première et de la dernière ligne de la sélection. Le simple recours à l'utilisation de la propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par la cellule "A1", l'adresse retournée pour la plage est "A1". Il me suffirait donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par un count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule "B9", l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun contrôle sur le sens dans lequel la sélection a été effectuée, je ne peux pas changer mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le nombre de lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse. J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à une telle donnée, mais je n'ai pas trouvé de solution "facile".
Si l'un d'entre vous avait une idée...
Bonne nuit,
Log
Bonsoir Ange Ounis,
Merci à toi aussi. Décidément, on peut dire que vous êtes actfis. C'est
rare et précieux.
Bonne soirée et à bientôt,
Log
"Ange Ounis" wrote:
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et
qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la
première cellule sélectionnée.
Ben, pas vraiment si tu utilises la propriété Address de la plage (voir les
réponses de mes petits camarades).
A partir de cette adresse, si tu travailles avec Excel 2000 ou plus récent, tu
peux récupérer facilement la première ligne et la dernière, à l'aide de la
fonction Split :
'''''''''''''''''
Sub essai()
Dim Plage As Range, Adr$, S$
Set Plage = Range("A1:B9")
Adr = Plage.Address
S = "Adresse : " & Adr & vbLf
S = S & "Première ligne : " & _
Left(Split(Adr, "$")(2), Len(Split(Adr, "$")(2)) - 1)
S = S & vbLf & "Dernière ligne : " & Split(Adr, "$")(4)
MsgBox S
End Sub
'''''''''''''''''
----------
Ange Ounis
----------
Bonjour,
Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce forum,
c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et
qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la
première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la première et
de la
dernière ligne de la sélection. Le simple recours à l'utilisation de la
propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par la
cellule "A1", l'adresse retournée pour la plage est "A1". Il me suffirait
donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par un
count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule "B9",
l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun contrôle
sur le sens dans lequel la sélection a été effectuée, je ne peux pas changer
mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le nombre de
lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse.
J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à une
telle donnée, mais je n'ai pas trouvé de solution "facile".
Merci à toi aussi. Décidément, on peut dire que vous êtes actfis. C'est rare et précieux.
Bonne soirée et à bientôt,
Log
"Ange Ounis" wrote:
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la première cellule sélectionnée.
Ben, pas vraiment si tu utilises la propriété Address de la plage (voir les réponses de mes petits camarades). A partir de cette adresse, si tu travailles avec Excel 2000 ou plus récent, tu peux récupérer facilement la première ligne et la dernière, à l'aide de la fonction Split :
''''''''''''''''' Sub essai() Dim Plage As Range, Adr$, S$ Set Plage = Range("A1:B9") Adr = Plage.Address S = "Adresse : " & Adr & vbLf S = S & "Première ligne : " & _ Left(Split(Adr, "$")(2), Len(Split(Adr, "$")(2)) - 1) S = S & vbLf & "Dernière ligne : " & Split(Adr, "$")(4) MsgBox S End Sub '''''''''''''''''
---------- Ange Ounis ----------
Bonjour,
Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce forum, c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la première et de la dernière ligne de la sélection. Le simple recours à l'utilisation de la propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par la cellule "A1", l'adresse retournée pour la plage est "A1". Il me suffirait donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par un count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule "B9", l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun contrôle sur le sens dans lequel la sélection a été effectuée, je ne peux pas changer mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le nombre de lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse. J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à une telle donnée, mais je n'ai pas trouvé de solution "facile".
Si l'un d'entre vous avait une idée...
Bonne nuit,
Log
lSteph
Bonsoir, Ta réponse me laisse tout aussi perplexe car Selection.Address a toujours répondu chez moi à ce qu'il est sensé dire... Humeur de machine..bon...pourquoi pas? ;-) à bientôt
lSteph "LogA3" a écrit dans le message de news:
Bonsoir lSteph,
Ce code là n'est pas perdu, je me le garde dans un coin... Toutefois, je dois avouer être un peu perplexe... j'ai passé ma journée d'hier (c'est une façon de parler, bien sûr ;-) ) à me battre avec cette fameuse propriété Address. Et, franchement, il en va de l'humeur de ma machine. De temps à autre elle me retounre l'adresse de la sélection, mais elle passe plus clair de son temps à ne me retourner que celle de la première cellule sélectionnée. D'où ma question sur le forum.
Log
"lSteph" wrote:
ReBonjour, Sinon on peut à la limite mettre ceci qui affichera l'addresse dans la barre d'état: ' '''***dans le code de la feuille** Private Sub Worksheet_Activate() Application.StatusBar = Selection.Address End Sub
Private Sub Worksheet_Deactivate() Application.StatusBar = False End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.StatusBar = Selection.Address End Sub '''*****
'lSteph
"LogA3" a écrit dans le message de news:
Bonjour,
Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce forum, c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la première et de la dernière ligne de la sélection. Le simple recours à l'utilisation de la propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par la cellule "A1", l'adresse retournée pour la plage est "A1". Il me suffirait donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par un count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule "B9", l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun contrôle sur le sens dans lequel la sélection a été effectuée, je ne peux pas changer mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le nombre de lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse. J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à une telle donnée, mais je n'ai pas trouvé de solution "facile".
Si l'un d'entre vous avait une idée...
Bonne nuit,
Log
Bonsoir,
Ta réponse me laisse tout aussi perplexe car Selection.Address
a toujours répondu chez moi à ce qu'il est sensé dire...
Humeur de machine..bon...pourquoi pas?
;-) à bientôt
lSteph
"LogA3" <LogA3@discussions.microsoft.com> a écrit dans le message de news:
4F5C071B-277C-463B-A42D-C2D1AC5C85FE@microsoft.com...
Bonsoir lSteph,
Ce code là n'est pas perdu, je me le garde dans un coin...
Toutefois, je dois avouer être un peu perplexe... j'ai passé ma journée
d'hier (c'est une façon de parler, bien sûr ;-) ) à me battre avec cette
fameuse propriété Address. Et, franchement, il en va de l'humeur de ma
machine. De temps à autre elle me retounre l'adresse de la sélection,
mais
elle passe plus clair de son temps à ne me retourner que celle de la
première
cellule sélectionnée. D'où ma question sur le forum.
Log
"lSteph" wrote:
ReBonjour,
Sinon on peut à la limite mettre ceci qui affichera l'addresse dans la
barre d'état:
'
'''***dans le code de la feuille**
Private Sub Worksheet_Activate()
Application.StatusBar = Selection.Address
End Sub
Private Sub Worksheet_Deactivate()
Application.StatusBar = False
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.StatusBar = Selection.Address
End Sub
'''*****
'lSteph
"LogA3" <LogA3@discussions.microsoft.com> a écrit dans le message de
news:
A97C93DF-A9ED-430F-AD55-579F942D1512@microsoft.com...
Bonjour,
Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce
forum,
c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules
et
qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la
première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la
première
et
de la
dernière ligne de la sélection. Le simple recours à l'utilisation de
la
propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par
la
cellule "A1", l'adresse retournée pour la plage est "A1". Il me
suffirait
donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par
un
count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule
"B9",
l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun
contrôle
sur le sens dans lequel la sélection a été effectuée, je ne peux pas
changer
mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le
nombre
de
lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse.
J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à
une
telle donnée, mais je n'ai pas trouvé de solution "facile".
Bonsoir, Ta réponse me laisse tout aussi perplexe car Selection.Address a toujours répondu chez moi à ce qu'il est sensé dire... Humeur de machine..bon...pourquoi pas? ;-) à bientôt
lSteph "LogA3" a écrit dans le message de news:
Bonsoir lSteph,
Ce code là n'est pas perdu, je me le garde dans un coin... Toutefois, je dois avouer être un peu perplexe... j'ai passé ma journée d'hier (c'est une façon de parler, bien sûr ;-) ) à me battre avec cette fameuse propriété Address. Et, franchement, il en va de l'humeur de ma machine. De temps à autre elle me retounre l'adresse de la sélection, mais elle passe plus clair de son temps à ne me retourner que celle de la première cellule sélectionnée. D'où ma question sur le forum.
Log
"lSteph" wrote:
ReBonjour, Sinon on peut à la limite mettre ceci qui affichera l'addresse dans la barre d'état: ' '''***dans le code de la feuille** Private Sub Worksheet_Activate() Application.StatusBar = Selection.Address End Sub
Private Sub Worksheet_Deactivate() Application.StatusBar = False End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.StatusBar = Selection.Address End Sub '''*****
'lSteph
"LogA3" a écrit dans le message de news:
Bonjour,
Tout d'abord, nouvel utilisateur, je tiens à vous féliciter pour ce forum, c'est une vréritable mine d'or...
Ensuite, je recontre un petit problème et j'aimerais avoir votre avis.
D'un point de vue pratique, lorsqu'on sélectionne une plage de cellules et qu'on cherche à récupèrer son adresse, on n'obtient que l'adresse de la première cellule sélectionnée.
Pour des raisons pratiques j'aimerais récupérer le numéro de la première et de la dernière ligne de la sélection. Le simple recours à l'utilisation de la propriété count n'est, en soit, pas suffisant.
Je m'explique : Soit la plage de cellules à sélectionner = "A1:B9"
- Si l'utilisateur commence la sélection de la plage de cellules par la cellule "A1", l'adresse retournée pour la plage est "A1". Il me suffirait donc d'ajouter le nombre de lignes de ma sélection (nombre obtenu par un count) - 1 à "1" pour récupérer "9". C'est logique.
- Si, maintenant, l'utilisateur commence la sélection par la cellule "B9", l'adresse retournée pour la plage sera "B9". Et comme je n'ai aucun contrôle sur le sens dans lequel la sélection a été effectuée, je ne peux pas changer mon calcul en disant : "9" est la dernière ligne, donc "9" + 1 - le nombre de lignes de ma sélection est la première ligne.
Bref, je suis dans une impasse. J'ai bien essayé de réécrire mon code pour ne plus avoir à recourrir à une telle donnée, mais je n'ai pas trouvé de solution "facile".