Copie de cellule d'un onglet X a Y

PanPan -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai une macro qui copie un onglet dans un autre , et qui renome l'onglet (la copie) au nom d'une cellule stocker sous une variable (dans le premier onglet).
Je souhaite ensuite:
copier plusieurs cellule de l'onglet copier (renomé) (pas a la suite)
sur un autre onglet (avec un nom bien defini) et chaque cellule copier et enregistrer a un emplacement different
'' en fete je copie des cellules (reparti un peu partout sur un doc) dasn un onglet biebn defini ( dans un tableau)
pour l'instant jutilise la fonction: =CELLULE("contenu";nom de l'onglet stocker!I63:J63)

Voici le debut de mon code:

Dim NOMDERUE As Range ' déclare une cellule
Set NOMDERUE = Range("D9") ' Enregistre la cellule D9 et la place de "NOMDERUE"
Range("A1:N74").Select ' Selectiobnne les cellules de A1 à N74 '
Selection.Copy ' Copie la selection
Sheets.Add After:=Sheets(Sheets.Count) ' Ouvre un nouvelle onglet apres le dernier
Range("A1").Select ' Place le curseur sur la cellule A1
ActiveSheet.Paste ' Colle les cellules selectionné
ActiveSheet.Name = NOMDERUE.Value ' Renome l'onglet avec la plage de donné "NOMDERUE"

deplus, je voudrai que ces cellules que je copie soit copier a la suite des autre...

Merci d'avance au genie de l'informatique

PS: il m'a fallu 2 heure pour faire ce bout de code (grace a mes connaissance du C++!!!)

++
A voir également:

1 réponse

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir,

Pas sûr d'avoir bien compris ta demande mais tu peux retrouver la dernière cellule remplie de la colonne A par :
[65536].end(xlup)
et donc la 1ère ligne libre par :
lig=[65536].end(xlup).row+1

et y coller qcq chose avec :
cells(lig,1).paste

Et tu n'es pas obligé de faire tous les select (gourmand en ressources)
Par exemplke tu peux remplacer avantageusement :
Range("A1").Select
ActiveSheet.Paste

par :
activesheet.[A1].paste
et comme c'est la feuille active tu n'est pas obligé de la désigner, donc :
[A1].paste

eric
0