Macro positionnement de curseur

SanPelegrino Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour

J'ai monté un fichier de saisie de données pour notre groupe. Ce fichier comporte 80 lignes et plusieurs colonnes de saisie de données. Si ces 80 lignes ne sont pas suffisantes, j'ai programmé une macro qui en ajoute 80 autres.

Jusque là tout fonctionne bien.

Avant d'activer la macro, l'utilisateur doit positionner son curseur à la cellule A81 (après le premier bloc) afin que les lignes et colonnes s'insèrent correctement sous le premier bloc. Si un 3e bloc de lignes et colonnes est requis, l'utilisateur doit positionner son curseur à la cellule A161 et activer la macro, etc ...

Jusque là, tout fonctionne bien.

Le problème est le suivant : si par malheur l'utilisateur a activé la macro alors que son curseur était dans la cellule C81 (au lieu de A81), le bloc de lignes et colonnes s'insèrera à partir de cette cellule. Méchante gaffe car il est impossible de faire un UNDO.

J'aimerais modifier ma macro de sorte à ce qu'elle s'exécute toujours dans la colonne A à la ligne suivant la dernière ligne du bloc. La saisie des données pourrait débuter à partir de la colonne B et la cellule A de chaque ligne pourrait comporter un caractère quelconque sur lequel la macro ferait une recherche avant de s'arrêter sur une cellule vide pour exécuter l'ajout d'un bloc de lignes et colonnes.

Des idées ?

Merci
SanPelegrino
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, veux-tu dire que la macro doit rechercher la première cellule vide en colonne A, en descendant à partir de la cellule sélectionnée par l'utilisateur?
faut-il ensuite positionner le curseur dans la cellule trouvée?
1
SanPelegrino Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Salut

Supposons que chacune des 80 lignes d'un bloc possède, dans la colonne A, un caractère quelconque (exemple un point *.*) et que la saisie de mes données débute à la colonne B (B1, B2, B3, .. B80). Donc les cellules A1, A2, A3 ... A80 comporteraient un point (*.*).

Il faudrait que la macro débute à la cellule A1 et recherche la première cellule vide (sans point *.*) en descendant dans la colonne A. Pour un bloc de 80 lignes, la première cellule "vide" devrait être la cellule A81 à partir de laquelle la macro exécuterait l'ajout d'un bloc de 80 lignes et colonnes.

Pour ton info, ma macro fait en sorte d'ouvrir un onglet caché, de copier le bloc de 80 lignes, de fermer l'onglet et de copier ce bloc de 80 lignes là où le curseur est positionné. Cette macro fonctionne très bien sauf qu'il faudrait positionner le curseur à la bonne place avant d'effectuer le "copier". Le bloc à copier comprendrait un point (*.*) dans les cellules A1, A2, A3, ... A80.

Merci
San Pelegrino
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsour, je suggère ceci:
ActiveSheet.Cells(1, 1).End(xlDown).Offset(1).Select
0