[Déplacé encore, encore et encore de .Net --> VBA] deplacement de donnees d'une

Résolu
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 - 3 mai 2010 à 18:28
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 - 4 mai 2010 à 13:52
bonjour
je travaille sur excel 2007
Sur la feuille 1 j'ai une liste de donnees dont la longueur varie. Elle peux etre de 2 ligne jusqu'a 20 lignes, ci-dessus

feuille 1
date test1 2.0 base1 ok
date test2 1.0 base2 ok


cette ligne est la ligne vierge de la feuille 2

date test3 .0 € ok
date test4 -1.0 € ok
date test5 -2.0 € ok
date test6 -3.0 € ok
date test7 -4.0 € ok


Je souhaiterais recuperer cette liste de la ligne 1 a la ligne X, non vide,de la feuille 1 et l'inserer dans la feuille 2, a la ligne 15 car j'ai d'autres donnees a partir de la ligne 16. que les donnees a partir de la ligne 16 soir decalees vers le bas, afin de permettre aux nouvelles donnees de s'y inserer. J'espere que je suis assez clair dans mon besoin. Car l'administrateur m'as signale a juste titre que je je formulais pas clairement ma question.merci de vos reponses.
christian

7 réponses

chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
4 mai 2010 à 13:52
J'AI ESSAYER CA MARCHE NICKEL.
Merci encore sinon je crois que j'aurais chercher un moment
3
fngoagouni Messages postés 22 Date d'inscription vendredi 3 juillet 2009 Statut Membre Dernière intervention 3 mai 2010
3 mai 2010 à 19:25
Hello,

je vais supposer ici que tu veux programmer cette action en VBA, et que tu sais un minimum programmer en VBA.

Je vais aussi supposer qu'il n'y a qu'une seule colonne qui t'intéresse, et on dira que c'est la colonne A

1°) Sous Excel, tu sélectionnes la cellule à partir de laquelle tu veux faire ta copie (A1 je suppose).
2°) Tu passes maintenant en mode enregistrement de Macro
(nb : sous Excel 2007 je ne peut pas te dire ou se trouve ce bouton, mais avant c'était dans le menu "Outis/Macro/Nouvelle macro...")
Choisi un nom (ex:"CopieListe") à la place de "Macro1"
3°) Enchaîne les touches suivante : Ctrl + Shift + Flèche vers le bas (Ca devrait te sélectionner la plage de données à copier)
4°) Enchaine les touches Ctrl+C (pour Copier tes données sélectionnées)
5°) Bascule sur ta feuille de destination
6°) Attention lis bien ! : Sélectionne la ligne 16 (et non pas la cellue A16). Pour çà tu doit cliquer sur le Chiffre 16 indiquant le n° de ligne comlètement à gauche.
7°) Clique droit sur le n°16 (la ligne), et dans le menu sélectionne
"Insérer les celulles copiée"
8°) Arrêtes ta macro, et va voir le code généré (procédure "CopieListe", ou le nom que tu lui a donné).
9°) Adapte le à tes besoins

Si tu ne parviens pas à l'adapter, reviens avec ton code et exposes tes difficultés plus précisément.
0
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
3 mai 2010 à 21:45
ce n'est pas ce que je souhaite. faire une macro je sais faire. Je voudrais choisir la liste qui n'est jamais de meme longueur elle peux aller de 2,3 jusqu'a 20 lignes. je voudrais que la macro cherche la derniere ligne, copie toute la liste jusqu'a cette derniere, et l'insere dans une autre feuille a la ligne 15, car a partir de la ligne 16 il y a des donnees. et que les donnees a partir de la ligne 16 se decalent vers le bas. Je pense avoir ete plus clair. merci de ta reponse
0
fngoagouni Messages postés 22 Date d'inscription vendredi 3 juillet 2009 Statut Membre Dernière intervention 3 mai 2010
3 mai 2010 à 23:35
Et c'est précisément ce que devrait faire la macro que je t'ai décrite (si je ne me suis pas planté).

Une fois ta macro enregistrée, tu n'a plus qu'a récupérer le code et l'adapter si nécessaire.

La macro que je t'ai décrite réalise les opération suivantes :

1° Sélection de toutes les lignes de FeuilX renseignées entre A1 et la dernière ligne renseignée vers le bas.
2° Copie de la sélection
3° Collage en insertion dans feuilY à partir de la ligne sélectionnée et en décalant le reste vers le bas.


Aprés que tu choisisses d'insérer en ligne 15 ou 16 ç'est à toi de voir.C'est pour çà que je te parle "d'adapter" le code généré, en fonction des éventuels petits détails que tu aurais omis, ou mal précisé.

Si c'est pas ce que tu essaies d'expliquer, je suis désolé de devoir te dire que tu dois vraiment mal t'exprimer

Ce que je te conseil:
FAIT UNE SAUVEGARDE DE TON DOCUMENT
Essaie quand même la manip que je te propose même si tu n'y crois pas. Ca te donneras surement des idées...Voire même des solutions peut être!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
4 mai 2010 à 07:54
Salut , le forum
voici un exemple simple. Je parcours chaque ligne de la ligne 1 à la ligne x de la feuille 1 que je colle à la ligne 15 de la feuille 2 puis j'insère une nouvelle ligne ce qui fait que j'ai toujours une ligne vide (la 15).
Sub copiercoller()
Dim i As Long, derlign As Long

derlign = Sheets(1).Range("A65536").End(xlUp).Row

For i = 1 To derlign
Sheets(1).Rows(i).Copy Sheets(2).Rows(15)
Sheets(2).Rows(15).Insert
Next i

End Sub

Adapte le si besoin, bonne journée.
@+
0
chris09300 Messages postés 140 Date d'inscription lundi 9 juin 2008 Statut Membre Dernière intervention 18 avril 2012 1
4 mai 2010 à 10:46
bonjour
j'ai copier le code dans ma macro, elle s'execute bien, mais ne m'a pas copier la liste dans l'autre feuille, as tu une idee. merci

Dim j As Long, derlign As Long

derlign = Sheets(1).Range("A50000").End(xlUp).Row

For j = 4 To derlign
Sheets(1).Rows(j).Copy Sheets(3).Rows(15)
Sheets(3).Rows(15).Insert
Next j
0
rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
4 mai 2010 à 13:40
Salut,
pour aller plus vite j'ai remplacé le nom des feuilles par leur numéro, c'est valable que si on est sur du numéro de la feuille. Alors
essaye ceci :
derlign = Sheets("Feuilsource").Range("A50000").End(xlUp).Row 

For j = 4 To derlign 
Sheets("Feuilsource").Rows(j).Copy Sheets("Feuildestination").Rows(15) 
Sheets("Feuildestination").Rows(15).Insert 
Next j 

remplace "Feuilsource" par le nom de la feuille ou se trouve les lignes que tu veux copier
et "Feuildestination" par le nom de la feuille ou tu veux coller les données.

çà fonctionne nickel

@+
0
Rejoignez-nous