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
Je positionne le curseur sur AAA, le but est que la macro;AAA..........BBBBBBB
...............BBBBBBBB
CCC
DDD
EEE
FFF
- 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 :
L'idée étant de mémorise la cellule de départ dans A pour y retourner.
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
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
Et mon curseur se retrouve sur la ligne 65536 soit un peu loin de ce que je souhaite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Selection.End(xlDown).Select
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
Partager