Macro excel : renvoyer à la 1ère cellule vide d'une colonne

Bonjour,

Sous Excel, dans ma Feuil1 ma ligne 1 comprend le mot stage dans certaines colonnes :
A1 Stage B1 Sophie C1 3 mois D1 Stage E1 Caroline F1 Stage G1 DJamel H1 6 mois… J’ai deux questions :

1/ Comment puis-je faire une macro pour qu’elle mette les données Feuil 2 case A1 et qu’ensuite à chaque fois qu’elle voit apparaître le mot “Stage” elle renvoie les données dans la 1ère cellule vide de la ligne du dessous.
exemple Feuil2:
A1 Stage B1 Sophie C1 3 mois
A2 Stage B2 Caroline
A3 Stage B3 DJamel C3 6 mois

2/ Par ailleurs comment faire pour que lorsque le lendemain je mets de nouvelle données en A1 de la Feuil1 cela ne vienne pas scratcher les informations de la veille qui sont Feuil2. Je voudrais que les nouvelles données viennent se mette en dessous, dans la 1ère cellule vide de la colonne A (dans mon exemple, dans la case A4) ?

Merci !!
Message edité le 10/02/2017 à 14:12

Tu peux faire ça avec un Range d’une seule cellule qui va te servir à balayer ta zone de données
Tu places ton range source Feuille1 A1, ton range Cible en Feuil2 A1, tu copies l’un vers l’autre et ensuite tu fais un offset vers la droite (avec Range().offset).
Tu réitères l’opération jusqu’à trouver “Stage” dans la source, auquel cas tu positionnes ta cible ligne suivante colonne 1
Tu arrêtes l’opération à la première cellule vide rencontrée dans la source.

Çà c’est pour la première fois. Pour les suivantes, après avoir positionné ta cible en A1, tu la déplaces vers la première cellule vide vers le bas (avec Range().End.XLDOWN)