Macro: décaler la copie de cellules d'une feuille à une autre

  • Initiateur de la discussion Initiateur de la discussion Jon
  • Date de début Date de début

Jon

XLDnaute Nouveau
Bonjour à tous,

Je suis novice en VBA et j'aurais besoin d' une macro qui copie les valeurs d'un formulaire donc de cellules qui ne sont pas à la suite (exemple: A1; H19; V25..) dans un tableau d'une autre feuille.
Exemple: A1 feuille1 copiée en A2 feuille 2; H19 feuille 1 copiée en B2 feuille 2; V25 feuille 1 copiée en C2 feuille 2.

J'arrive à faire ceci, mais j'aimerais en plus qu'à chaque fois la macro décale la copie d'une ligne pour ne pas réécrire sur les lignes précédentes et là je bloque. :confused:

Enfaite le but est de créer un tableau des données rentrées dans le formulaire.


Pièce jointe: Dans la pièce jointe je voudrais que les champs "nom", "prénom", "date de naissance" soient copiés dans la tableau page2. Chaque personne saisi ses informations et à la fin on retrouve un tableau récapitulatif avec les données de chacun.

Merci :)
 

Pièces jointes

Jon

XLDnaute Nouveau
Re : Macro: décaler la copie de cellules d'une feuille à une autre

Merci camarchepas, c'est exactement ça! :D

Voici la partie du code qui permet de décaler la copie:
Code:
  With Worksheets("tableau récap")
    Derligne = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A" & Derligne + 1) = Prenom
    .Range("B" & Derligne + 1) = Nom
    .Range("C" & Derligne + 1) = Naissance

Je ne connaissais ni "derligne" ni "Rows.Count", c'est très intéressant.

Reste plus qu'a adaptée la macro à mon projet, merci! :)
 

camarchepas

XLDnaute Barbatruc
Re : Macro: décaler la copie de cellules d'une feuille à une autre

Jon,

Petite explication pour d'aider à adapter :

Derligne est une variable de type long où l'on peut stocker une valeur numérique entière, elle aurait aussi bien pu s'appeler LigneFin ou indexe. En l’occurrence l'on va stocker ici la dernière ligne non vide dans la colonne A grace à l'instruction .end qui nous permet grace au parametre xlup de balayer la colonne A en remontant vers le haut de la feuille, depuis la ligne 65536 si Excel 2003 ou 1048576 pour Excel 2010 , l'astuce rows.count permet entre autre une portabilité entre les différentes versions.

Voilà à oui , le balayage s'arrête sur la première ligne non vide, donc si l'on veut écrire sur la 1° ligne vide disponible, il faut incrémenter de 1.

Je vois que tu mets le doigt dans l'engrenage de la programmation, bon courage, quelques nuits blanches, mais quel plaisir lorsque qu'enfin ca marche et que c'est toi le créateur .... surtout lorsque OTTO dit Dacte ,
 

Discussions similaires

Statistiques des forums

Discussions
315 297
Messages
2 118 173
Membres
113 445
dernier inscrit
lmomo