Bonjour,

voici ma petite problématique, elle doit être due à une incompréhension du fonctionnement des cellules Excel et des références entre range.

J'ai ceci dans un fichier

AAA..........BBBBBBB
...............BBBBBBBB

CCC
DDD

EEE

FFF
Je positionne le curseur sur AAA, le but est que la macro;
- copie AAA
- vienne se placer sur la colonnedes BBBBB
- se positionne sous la dernière ligne de cette colonne
- y colle AAA
- se repositionne sur la cellule de départ AAA
- aille jusqu'au prochain emplacement non vide de la colonne (CCC)
Pour cela j'ai mis le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
'1) selection et mémorise code Gamme
 
    Set a = Range(Selection, Selection)
    Selection.Copy
'2) se positionne sur la dernière colonne/dernière ligne +1
    Selection.End(xlToRight).Select
    Selection.End(xlDown).Select
    Selection.Offset(1, 0).Select
'3) Colle le Code Gamme
    ActiveSheet.Paste
'4) Se repositionne sur A
 
    Selection = Range(a, a)
    Selection.End(xlDown).Select
L'idée étant de mémorise la cellule de départ dans A pour y retourner.
Les étapes 1 à 3 incluses se passent bien.
Par contre la ligne 1 de l'étape 4 semble ne fonctionne pas. Au lieu de me repositionner sur la cellule de départ sur la colonne AAA il reste sur la colonne du BBB puis exécute la dernière instruction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Selection.End(xlDown).Select
Et mon curseur se retrouve sur la ligne 65536 soit un peu loin de ce que je souhaite.
je ne comprend pas bien mon erreur ? Est-ce du au fait que a est devenu un pointeur sur le range de selection et qu'il s'est modifié avec Selection, de sort que l'avant dernière instruction le fait rester sur place ?

le cas échéant comment puis-je faire autrement ?

merci de votre aide précieuse,

Bien cordialement

Cladsam