recuperation coordonnées cellules

denisR

XLDnaute Nouveau
Bonjour à tous

dans une macro je demande à l'utilisateur de cliquer sur une cellule pour se positionner sur cette cellule et continuer la macro

Set myrange = Application.InputBox(prompt:="Sample", Type:=8)


quel code dois je entrer ensuite pour récuperer les coordonnées de cette cellule

merci

Denis
 

Luki

XLDnaute Accro
Re : recuperation coordonnées cellules

bonjour Denis,

Qu'entends-tu par "coordonnées"?

si c'est l'adresse : myrange.adress
si c'est la ligne et la colonne: myrange.row et myrange.column

d'autre part, si par erreur l'utilisateur sélectionne une plage de plusieurs cellules, il vaut mieux la ramener à une seule cellulle, (la première de la plage), pour éviter des désagréments: set Myrange=myrange.cells(1) à ajouter juste après la ligne de l'inputbox.

Bonne journée.
 

Droussel

XLDnaute Occasionnel
Re : recuperation coordonnées cellules

Merci LUKI
c'est effectivement l'adresse que je voulais
encore une question
j'ai modifié ma macro comme suit et je ne comprends pas

Dim macellule
Sheets("BASE").Select
Set macellule = Application.InputBox("Sélectionner la colonne du mois concerné", "Colonne du mois", Type:=8)
macellule = macellule.Column
Range("a2").End(xlToRight).Offset(0, macellule - 1).Select

il me selectionne la cellule BE2 comme s'il comptait les cellules à partir de l'adresse de la cellule "macellule" (AD1)

dois je inserer une instruction redefinissant la cellule active à A2

Merci
Denis
 

porcinet82

XLDnaute Barbatruc
Re : recuperation coordonnées cellules

Salut,

Comme l'ami Luki n'a plus l'air d'etre présent pour le moment, je me permet d'essayer de t'apporter une solution.
Le code suivant te permet de sélectionner la première cellule non vide de la ligne 2 vers la droite, en partant de la cellule A2
Range("a2").End(xlToRight).Select

Ensuite, tu rajoutes un Offset qui te permet de faire a nouveau un décalage. Ici tu lui indiques de rester sur la meme ligne (le 0) et tu lui dits de décaler de macellule-1 colonne (si macellule vaut 4, tu lui dits donc de se décaler de 3 colonnes)
Range("a2").End(xlToRight).Offset(0, macellule - 1).Select

Ne comprenant pas ce que tu veux vraiment, j'espère t'avoir un peu aidé

@+
 

Luki

XLDnaute Accro
Re : recuperation coordonnées cellules

Bonjour à vous 2,

Effectivement Porcinet, je suis peu au bureau...

Denis,
1er point:
Evite d'utiliser la même variable pour 2 informations différentes.dans ce cas, 2 variable: macellule as range, macellCol as integer.
2ème point:
Comme Porcinet, je ne vois pas bien ce que tu veux faire, mais ses explications sont claires.

A te lire
 

Droussel

XLDnaute Occasionnel
Re : recuperation coordonnées cellules

Bonjour

voilà je joins mon fichier pour que vous puissiez comprendre mon probleme
il faut executer la macro mise à jour pas a pas

les premieres lignes execute une recopie de cellule apres que l'on ait indique la colonne en saisissant un chiffre

la deuxieme partie de la macro fait la meme chose mais avec une autre methode c'est à dire en allant selectionner la cellule et en recuperant l'adresse de colonne de la cellule selectionnees
par exemple AB1
et dans ce cas il selectionne la cellule BE2 c'est à dire la 27eme colonne à partir de la cellule AB1
j je ne comprends pas pourquoi dans l'instruction suivante il ne repart pas de a2
Range("a2").End(xlToRight).Offset(0, macellule - 1).Select

a vous lire
merci
Denis
 

Pièces jointes

  • essai.xls
    42.5 KB · Affichages: 110
  • essai.xls
    42.5 KB · Affichages: 112
  • essai.xls
    42.5 KB · Affichages: 106

Pierrot93

XLDnaute Barbatruc
Re : recuperation coordonnées cellules

Bonjour Droussel, Romain Luki

je ne suis pas sur d'avoir tout compris, mais il me semble que les 3 lignes de code ci-dessous suffiraient :

Code:
    Range("Y40:Y64").Copy
    Range("a2").End(xlToRight).Offset(0, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues

Bon après midi
@+
 

Droussel

XLDnaute Occasionnel
Re : recuperation coordonnées cellules

les deux copies sont à faire au meme endroit

c'est juste pour montrer que dans un cas le resultat est conforme à ce que j'attends et dans le deuxieme cas le resultat n'est pas conforme

ma question directe est celle-ci :
si la valeur de "macellule" est à 27
la ligne de code suivante
Range("a2").End(xlToRight).Offset(0, macellule - 1).Select
devrait s'executer ainsi
selection de la cellule a2
comtage de la ligne 2 et de la colonne 28 (27+1)
selection de la colonne 29 ligne 2 soit la cellule AB2


effectivement la réponse de pierrot93 doit fonctionner mais je ne comprends pas pourquoi l'instruction ci-dessus ne decompte pas les colonnes à partir de A2

Denis
 

Discussions similaires

Réponses
0
Affichages
154
  • Résolu(e)
Microsoft 365 FORMULE Excel VBA
Réponses
17
Affichages
787

Statistiques des forums

Discussions
312 277
Messages
2 086 716
Membres
103 378
dernier inscrit
phdrouart