Trouver position en X Y d'une cellule

néné06

XLDnaute Accro
Bonjour le Forum

Je recherche l'instruction VBA qui me donnerait la position en x et y de la cellule en cours de traitement lors d'une suite d'instruction.


exemple

zone de cellules. select
for each cel in selection
"ici je souhaiterai la position dans ma selection, de la cel en cours de traitement"
next cel

Merci à toutes et à tous!
 

tototiti2008

XLDnaute Barbatruc
Re : Trouver position en X Y d'une cellule

Bonjour néné06,

Si j'ai compris :

Code:
zone de cellules.select
for each cel in selection
MsgBox Cel.Row - Selection.Range("A1").Row + 1 & " " & Cel.Column - Selection.Range("A1").Column + 1
next cel
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Trouver position en X Y d'une cellule

Bonjour à tous
Du même tonneau, avec une syntaxe différente :
VB:
Sub toto()
Dim cel As Range
  With Selection 'une sélection quelconque de cellules
     For Each cel In .Cells
      MsgBox "X:" & cel.Row - .Cells(1).Row + 1 & " Y:" & cel.Column - .Cells(1).Column + 1
    Next
  End With
End Sub
ROGER2327
#5162


Vendredi 6 Clinamen 138 (Saint Ganymède, professionnel, SQ)
8 Germinal An CCXIX
2011-W13-1T15:50:03Z
 

néné06

XLDnaute Accro
Re : Trouver position en X Y d'une cellule

Bonjour tototiti 2008
Je ne peux tester ce programme actuellement mais je le testerai demain matin
Et te tiendras informe des éventuelles difficultés rencontrées

Merci pour ton aide

Salutation a Roger 2327
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Trouver position en X Y d'une cellule

Bonjour néné06, salut tototiti, Roger,

J'avais annulé ce message, le pensant sans intérêt.

Je remets quand même cette solution :

Code:
Dim col&, n&
Range("zone_de_cellules").Select
col = Selection.Columns.Count
For Each cel In Selection
MsgBox "Ligne " & 1 + Int(CDec(n / col)) & " - Colonne " & 1 + n Mod col
n = n + 1
Next cel
Mais ça n'a de sens que s'il s'agit de cellules adjacentes (une seule plage).

De toute façon il me semble qu'autrement le problème n'a pas de sens.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Trouver position en X Y d'une cellule

Re,

Si plusieurs plages peuvent être sélectionnées simultanément, on peut faire comme ceci :

Code:
Sub Test()
Dim a As Range, n&, col&, cel As Range
'Range("zone_de_cellules").Select
For Each a In Selection.Areas
  n = 0
  col = a.Columns.Count
  For Each cel In a
    MsgBox "Plage " & a.Address(0, 0) & " - Ligne " & 1 + Int(CDec(n / col)) & " - Colonne " & 1 + n Mod col
    n = n + 1
  Next cel
Next a
End Sub
Cela me paraît la bonne manière si l'on veut suivre ce qui se passe.

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Trouver position en X Y d'une cellule

Re…
(…)
Mais ça n'a de sens que s'il s'agit de cellules adjacentes (une seule plage).

De toute façon il me semble qu'autrement le problème n'a pas de sens.

(…)
On peut donner un sens au repérage d'une cellule dans une plage discontinue : le résultat renvoyé donne la position par rapport à la première cellule sélectionnée. Exemple :
VB:
Sub toto()
Dim cel As Range
  With Range("D9,B16,G6,H20")
    For Each cel In .Cells
      MsgBox "X:" & cel.Row - .Cells(1).Row + 1 & " Y:" & cel.Column - .Cells(1).Column + 1
    Next
  End With
End Sub
renvoie successivement :
X:1 Y:1
X:8 Y:-1
X:-2 Y:4
X:12 Y:5

qui sont bien les positions des différentes cellules relativement à D9.
Mais seul notre ami peut juger de l'intérêt de la chose car nous ignorons le but qu'il vise.​
ROGER2327
#5164


Vendredi 6 Clinamen 138 (Saint Ganymède, professionnel, SQ)
8 Germinal An CCXIX
2011-W13-1T23:01:16Z
 

néné06

XLDnaute Accro
Re : Trouver position en X Y d'une cellule

Bonjour Tototiti 2008,Roger 2327,Job 75

J'ai étudié avec attention toutes vos propositions,qui évidemment fonctionnent parfaitement.
La dernière méthode de Roger 2327 présente un intérêt qui me sera utile par la suite.
Les coordonnées X et Y sont données par rapport à la première cellule de la sélection, pour mon cas, je les utiliserai en rapport avec la cellule A1 (aucune difficulté à mettre en oeuvre).
Je classe dans mes "archives perso" cette discussion qui présente à mes yeux un vif intérêt.

Un grand merci à tous!
 

Discussions similaires

Réponses
2
Affichages
147
Réponses
10
Affichages
206

Statistiques des forums

Discussions
312 201
Messages
2 086 166
Membres
103 149
dernier inscrit
Deepkneec