[VBA E]adresse de cellule d'une selection

  • Initiateur de la discussion Initiateur de la discussion treza88
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

treza88

XLDnaute Occasionnel
Bonjour à tous

Quelqu'un saurait il comment recuperer l'adresse de la premiere cellule et l'adresse de la derniere cellule d'une selection faite sur une plage de cellule sur une seule colonne.

Exemple:
Selection avec la souris de D4 à D10 et donc recuperer l'adresse D4 et l'adresse D10 dans une variable.

Merci d'avance.
 
Re : [VBA E]adresse de cellule d'une selection

Salut treza88,

Pour récupérer l'adresse de la plage sélectionnée :
adress = Selection.Address(0, 0)

Apres pour avoir seulement la première, tu fais un Left(Selection.Address(0, 0), InStr(1, Selection.Address(0, 0), ":") - 1) et pour la seconde un Mid(Selection.Address(0, 0), InStr(1, Selection.Address(0, 0), ":") + 1, Len(Selection.Address(0, 0)))

Il y a surement plus simple, mais la fatigue fais que je me lance dans des trucs un peu bizarre.

@+
 
Re : [VBA E]adresse de cellule d'une selection

Merci porcinet82

Ton code marche impec mais ma demande à evoluer, je ne veux recuperer que le numero de ligne car avec l'adresse D4 qui me designe la ligne 4 car je veux recuperer la valeur contenu dans la cellule C4.

ce qui me permetrait de faire un truc du genre:
Dim f as variant
f = "C"&"Numero de ligne"
textbox.value = range(f).value

J'espere que c'est suffisament clair.

Merci
 
Re : [VBA E]adresse de cellule d'une selection

treza88 à dit:
Bonjour à tous

Quelqu'un saurait il comment recuperer l'adresse de la premiere cellule et l'adresse de la derniere cellule d'une selection faite sur une plage de cellule sur une seule colonne.

Exemple:
Selection avec la souris de D4 à D10 et donc recuperer l'adresse D4 et l'adresse D10 dans une variable.

Merci d'avance.
slaut
autre solution
Deb = Cells(Selection.Row, _
Selection.Column).Address(rowabsolute:=False, columnabsolute:=False)
Fin = Cells(Selection.Row + (Selection.Rows.Count - 1), _
Selection.Column + (Selection.Columns.Count - 1)).Address(rowabsolute:=False, columnabsolute:=False)
A+
 
Re : [VBA E]adresse de cellule d'une selection

re, salut Gorfael,

Avec l'aide d'Hervé (quand je disais qu'il devait y avoir plus court) :
Pour la ligne de la première cellule :
Selection(1).Row

Pour la dernière de la sélection :
Selection(Selection.Count).Row

@+
 
Dernière édition:
Re : [VBA E]adresse de cellule d'une selection

porcinet82 à dit:
re, salut Gorfael,

Avec l'aide d'Hervé (quand je disais qu'il devait y avoir plus court) :
Pour la ligne de la première cellule :
Selection(1).Row

Pour la dernière de la sélection :
Selection(Selection.Count).Row

@+
Salut porcinet82
une demi-heure que je teste des selection.range ou .cells(0,0)
Quel clown je suis 🙂
merci et A+
 
Re : [VBA E]adresse de cellule d'une selection

bonsoir 🙂

selection n'est qu'une collection des cellules sélectionnées, on peut donc employer toutes les méthodes appliquées à une collection :l'index, .count, etc...

exemple de code faisant appel à la collection de range :

PHP:
Dim c As Range

Range("a1:c5").Select

For i = 1 To Selection.Count
    Selection(i) = i
Next i


salut
 
Re : [VBA E]adresse de cellule d'une selection

Hervé si tu as un peu plus d'explication pour ton code car j'ai un peu de mal à m'y retrouver.

Tu declare une variable c sans t'en servir.
Qui doit servir à contenir la plage de cellule je pense, mais je suis desolé ça doit etre interressant mais je ne m'y retrouve pas.

Ou alors je suis pas du niveau pour le digérer.

Merci
 
Re : [VBA E]adresse de cellule d'une selection

re tout le monde

Normal trezar que tu sois perdu, j'ai fait n'importe quoi 😛

c'est juste un code pour te montrer que sélection est bien une collection, je te replace le code corrigé :

PHP:
Sub Bouton1_QuandClic()
Dim i As Integer

'sélectionne la plage A1:C5
Range("a1:c5").Select

'selection.count nous donne le total de cellule sélectionnée
For i = 1 To Selection.Count
    'à l'index i de la sélectionne place la valeur de i
    Selection(i) = i
Next i
End Sub

une collection en vba est un "ensemble" de données regroupées au sein du meme objet.

on peut soit appeler la collection dans son integralité, exemple :

range("a1:c5").select
selection.interior.colorindex=3

ici on affecte la couleur rouge à la collection de cellule sélectionnée

soit individuellement à travers une boucle, comme dans l'exemple que je t'ai donnée.

comme chaque élément(cellule dans ce cas) de la collection est indéxé on peut faire appelle à un élément en particulier, exemple :

msgbox selection(1).address

ce code te donnera l'adresse de la cellule se trouvant en haut à gauche de la sélection(quelque soit celle-ci)

et celle ci la deuxieme cellule msgbox selection(2).address, etc...

en espérant t'avoir aidé

pour ton souci porcinet t'a apporté une solution.

salut



on aurait pu aussi utiliser la boucle classique for each c in selection

salut
 
Re : [VBA E]adresse de cellule d'une selection

Bonjour a tous,

Et bien merci Hervé pour ce petit cours a propos des Collections, j'en avais entendu parler, mais je n'avais pas pris le temps de regarder ce que c'etait en particulier et a quoi ca pouvait bien servir (ca fait un peu barbare comme nom, je trouve...)

Tes explications me permettraont de me coucher mon con ce soir, meme si j'ai encore le temps d'en apprendre au cours de la journée...

@+
 
Re : [VBA E]adresse de cellule d'une selection

merci à vous tous j'ai tout ce qu'il me faut et même plus, et c'est ça qui est cool et qui vous fait dire qu'il y a encore beaucoup à apprendre.

Maintenant j'ai plus qu'a bossé dessus.

Merci encore.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour