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 -
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
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:
- Macro positionnement de curseur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Comment faire apparaître le curseur sans souris - Guide
- Logiciel positionnement gratuit - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
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?
faut-il ensuite positionner le curseur dans la cellule trouvée?
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
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