Copier coller valeurs d'une feuille vers une autre feuille à partir de la premiè [Résolu]

talined 44 Messages postés jeudi 8 décembre 2011Date d'inscription 14 mars 2012 Dernière intervention - 20 févr. 2012 à 22:48 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 21 févr. 2012 à 20:25
Bonjour,

Après de nombreuses recherches, je n'ai pu trouver ce que je voulais.
C'est pourquoi je fais appel à vos compétences pour m'aider à résoudre mon problème :

J'ai un ensemble de données dans une "feuil1".
Je souhaite copier ces données dans la "feuil2" (qui contient aussi des valeurs) à partir de la première ligne vide rencontrée (ou cellule vide, peu importe car c'est un tableau).

Voici le code que j'ai tenté, mais qui ne marche pas.. :

..............................................
Worksheets("Feuil1").Range("A8:F800").Copy
Worksheets("Feuil2").Range("A8").Select

Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Loop

Selection.Paste

End Sub
...............................................

Merci de votre aide
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 févr. 2012 à 10:44
3
Merci
dans mon cas c'est bien la première ligne vide d'une colonne qui suit la dernière ligne remplie de cette colonne car dans mon tableau

C'est maintenant très clair, et tellement différent de :
à partir de la première ligne vide rencontrée (ou cellule vide, peu importe car c'est un tableau).

et tout ton code se résume alors à ceci :
 Dim toto As Long
 toto = Sheets("Feuil2").Cells.SpecialCells(xlCellTypeLastCell).Row + 1
 Sheets("Feuil1").Range("A8:F800").Copy Destination:=Sheets("Feuil2").Range("A" & toto + 1)

je n'ai là ni select, ni paste, comme tu le vois.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 20 févr. 2012 à 23:17
0
Merci
Bonjour,
à partir de la première ligne vide rencontrée (ou cellule vide, peu importe car c'est un tableau).

n'est pas clair.
De quoi s'agit-il exactement ? de la première cellule vide rencontrée dans la colonne A à partir de la ligne 8 ou de la première cellule vide rencontrée, dans la colonne A, après la dernière remplie dans cette colonne ?
Car ce n'est pas la même chose du tout !
La preuve :
A8, A9, A10 remplies, A11 vide, A12 remplie ===>> la première vide rencontrée après A8 est A11 et non A13 !
Et surtout : quand comptes-tu t'arrêter de travailler à coups de select, copy, paste ? C'est lourd et inutile !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
talined 44 Messages postés jeudi 8 décembre 2011Date d'inscription 14 mars 2012 Dernière intervention - 21 févr. 2012 à 00:01
0
Merci
Alors, en effet, c'est bien la première cellule vide rencontrée dans la colonne A à partir de la ligne 8..

Que me suggères tu?

Merci bcp
Commenter la réponse de talined
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 févr. 2012 à 00:05
0
Merci
Es-tu certain de ta réponse ?
Car si exacte et qu'après cette cellule il y en a une autre remplie deux lignes plus bas, comment vas-tu insérer sur 2 lignes toute la plage ("A8:F800") ?
D'où l'absolue nécessité d'être très précis !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
mjpmjp 115 Messages postés dimanche 6 avril 2003Date d'inscription 29 juin 2012 Dernière intervention - 21 févr. 2012 à 01:00
0
Merci
bonjour
pour la derniere ligne j'utilise
Set ListeCelluleFin = Sheets(OngletName).Range
(CelluleColonne & CelluleLigne).End(xlDown)
DerniereLigne = ListeCelluleFin.Row

mais il faut se débarasser des lignes vides soit par un trie alpha ou par un code qui teste et suprime la ligne vide ou copie le reste de la liste une ligne plus haut...
@+JP
Commenter la réponse de mjpmjp
mjpmjp 115 Messages postés dimanche 6 avril 2003Date d'inscription 29 juin 2012 Dernière intervention - 21 févr. 2012 à 01:02
0
Merci
bonjour
j'ai oublié la déclaration
Public ListeCelluleFin As Range

@+JP
Commenter la réponse de mjpmjp
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 févr. 2012 à 07:43
0
Merci
Un peu d'attention et de précision, s'il vous plait !

Ce n'est pas là une affaire de code, mais VRAIMENT, une affaire de précision de l'expression :

Et j'insiste car je sais les dégâts que peuvent provoquer certaines imprécisions (je suis précisément en train d'aider un jeune homme de mes connaissances à réparer ceux qu'il a commis par manque de précision de son expression) !

- La première ligne vide d'une colonne n'est pas forcément la première ligne vide qui suit la dernière ligne remplie de cette colonne. Ce sont deux concepts très différents et l'utilisation de l'un ou de l'autre dépend uniquement de ce que l'on veut faire, en parfaite connaissance de cause
- la première ligne vide rencontrée sur une feuille au-delà de sa plage déjà occupée n'est pas forcément la première ligne vide qui suit la dernière ligne remplie d'une colonne X ou Y.

Chaque chose s'exprime distinctement et a sa solution distincte, mais aussi un rôle distinct avec ses conséquences distinctes.

Je pinaille ? Je joue sur les mots ? ===>> venez donc m'aider à réparer le soukh ce que je suis en train de tenter de réparer pour un ami et vous comprendrez vite que non !

______________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
talined 44 Messages postés jeudi 8 décembre 2011Date d'inscription 14 mars 2012 Dernière intervention - 21 févr. 2012 à 10:21
0
Merci
Ucfoutu,

Je comprend très bien ton analyse et tu as tout à fait raison d'insister sur la précision de l'expression.

Néanmois, dans mon cas c'est bien la première ligne vide d'une colonne qui suit la dernière ligne remplie de cette colonne car dans mon tableau, je ne peux pas avoir de ligne vide intercalé entre les données..

Merci
Commenter la réponse de talined
talined 44 Messages postés jeudi 8 décembre 2011Date d'inscription 14 mars 2012 Dernière intervention - 21 févr. 2012 à 20:16
0
Merci
Merci bien!

C'est bien ce que je recherchais.

Comme je suis perfectionniste, je voudrais éviter de définir la plage copier ("A8:F800") et de la remplacer par une formule de type Do while loop par exemple qui permettrait de copier la plage en feuille 1 (en partant de la ligne 8)jusqu’à rencontrer la première cellule vide.

Comment crois tu que je peux adapter ce changement avec ta formule?

Merci bcp.

Je valide ta réponse!
Commenter la réponse de talined
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 21 févr. 2012 à 20:25
0
Merci
Ben oui, pardi !
Et en t'inspirant très directement de ce que j'ai fait pour la feuille Feuil2 !
Si tu as compris ce que tu as copié/collé (mon code) ===>> tue ne devrais avoir aucune difficulté ===>> Montre donc !
A toi ...


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.