Copie d'une liste [Résolu]

chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 12:34 - Dernière réponse : NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention
- 2 mai 2010 à 21:00
Bonjour
Je travaille sur excel 2007. J'aimerais copier une liste qui n'est jamais de meme longueur. Elle peux aller sur deux lignes jusqu'a 20 lignes. Je ne sais pas comment ecrire copie la liste du debut jusqu'a la derniere ligne non vide. Si quelqu'un a la solution, je suis preneur, merci a vous.
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 20:45
3
Merci
excuse moi encore, mais peux tu me dire comment je fais pour signaler que la reponse est exacte sur le forum de facon a clore. merci encore
christian

Merci chris09300 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 13:05
0
Merci
Bonjour,

Une liste dans des cellules ?
Dim lRangeSrc as Range
Dim lRangeDst as range

Set lRangeSrc=Range("A1")
Set lRangeDst=Range("A1")

Do Until IsEmpty(lRangeSrv.value)
    lRangeDst.value=lRangeSrv.value
    Set lRangeSrc=lRangeSrc.Offset(1,0)
    Set lRangeDst=lRangeDst.Offset(1,0)
Loop


Code non testé, à vérifier.

ça te convient ?

Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 15:32
0
Merci
Bonjour et merci pour ta reponse. Je ne comprends pas tout le code. J'ai fait un essai et le code ce bloque a

Do Until IsEmpty(lRangeSrv.valeur)

peux tu me donner un petit exemple.
merci
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 15:45
0
Merci
Bonjour,

quelle erreur ?
ça ne fais pas ce que tu veux ?

Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 16:24
0
Merci
pour mieux exprimer ce que je souhaiterais, voici un exemple de liste. Qui peux soit aller de article 1 a 4 ou le fois d'apres aller de 1 a 13. Je souhaiterais quand il y a 3 article que je puisse copier ces 3 articles et les mettre dans une autre feuille, et lorsqu'il y en a plus que je puisse copier la liste complete. Je souhaiterai avoir une code ou une macro qui recherche dans la liste le dernier article, que la recherche s'arrette quand la ligne est vide. J'espere que je me fait mieux comprendre.

article1
article2
article3
article4
article5
article6
article7
article8
article9
article10
article11
article12
article13

merci pour le temps que tu passe a me repondre.
christian
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 16:37
0
Merci
Bonjour,

Donc chercher la première ligne libre et ensuite, mettre à la suite les données copiées ?

Dim lRangeSrc as Range
Dim lRangeDst as range

Set lRangeSrc=sheets("FeuilleSource").Range("A1")
Set lRangeDst=sheets("FeuilleDestination")Range("A1")

Do Until IsEmpty(lRangeDst.value)
    Set lRangeDst=lRangeDst.Offset(1,0)
Loop

Do Until IsEmpty(lRangeSrv.value)
    lRangeDst.value=lRangeSrv.value
    Set lRangeSrc=lRangeSrc.Offset(1,0)
    Set lRangeDst=lRangeDst.Offset(1,0)
Loop


Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 16:48
0
Merci
quand je lance la macro , elle s'arrete apres loop.
sur la ligne do until isempty....
vois tu pourquoi

Sub Macro1()
'
' Macro1 Macro

Dim lRangeSrc As Range
Dim lRangeDst As Range

Set lRangeSrc = Sheets("Feuil1").Range("A1")
Set lRangeDst = Sheets("Feuil2").Range("A1")

Do Until IsEmpty(lRangeDst.Value)
Set lRangeDst = lRangeDst.Offset(1, 0)
Loop

Do Until IsEmpty(lRangeSrv.Value)
lRangeDst.Value = lRangeSrv.Value
Set lRangeSrc = lRangeSrc.Offset(1, 0)
Set lRangeDst = lRangeDst.Offset(1, 0)
Loop
End Sub
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 16:53
0
Merci
Bonjour,

Tu as un message d'erreur ?

Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 16:58
0
Merci
excuse moi j'avais pas compris avant.
erreur d'execution 424
objet requis
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 18:00
0
Merci
Bonjour,

De base, mets toujours :
Option Explicit
en haut de tes modules de code.
tu aurais eu une erreur indiquant une varibable non définie.

    Dim lRangeSrc As Range
    Dim lRangeDst As Range
    
    Set lRangeSrc = Sheets("Feuil1").Range("A1")
    Set lRangeDst = Sheets("Feuil2").Range("A1")
    
    Do Until IsEmpty(lRangeDst.Value)
        Set lRangeDst = lRangeDst.Offset(1, 0)
    Loop
    
    Do Until IsEmpty(lRangeSrc.Value)
        lRangeDst.Value = lRangeSrc.Value
        Set lRangeSrc = lRangeSrc.Offset(1, 0)
        Set lRangeDst = lRangeDst.Offset(1, 0)
    Loop



Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 18:10
0
Merci
je viens de faire ce que tu me dis, j'ai lancer la macro et j'ai bien une erreur indiquant une variable non définie.
que faire
merci de ta patience
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 18:50
0
Merci
Bonjour,

Tu as recopier le code que j'ai posté en dernier ?
Je l'ai testé.

Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 19:03
0
Merci
oui je l'es copie en debut de code et m'as donne, message variable non definie. peux tu me faire un petit fichier excel sur lequel il y aurait quelques lignes, et me mettre le code dans un module, je verrais si cela marche.
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 19:35
0
Merci
Je parlais de ce code :
    Dim lRangeSrc As Range
    Dim lRangeDst As Range
    
    Set lRangeSrc = Sheets("Feuil1").Range("A1")
    Set lRangeDst = Sheets("Feuil2").Range("A1")
    
    Do Until IsEmpty(lRangeDst.Value)
        Set lRangeDst = lRangeDst.Offset(1, 0)
    Loop
    
    Do Until IsEmpty(lRangeSrc.Value)
        lRangeDst.Value = lRangeSrc.Value
        Set lRangeSrc = lRangeSrc.Offset(1, 0)
        Set lRangeDst = lRangeDst.Offset(1, 0)
    Loop


Il fonctionne chez moi.

Mon site
Commenter la réponse de NHenry
chris09300 140 Messages postés lundi 9 juin 2008Date d'inscription 18 avril 2012 Dernière intervention - 2 mai 2010 à 20:42
0
Merci
super ca fonctionne. je suis desole il devais marche des que tu me l'as donne. Cela est tellement rapide que je n'avais pas regarder la feuille 2.
merci a toi pour ce code que va me rendre bien service.
a plus
christian
Commenter la réponse de chris09300
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 2 mai 2010 à 21:00
0
Merci
Bonjour,

A coté des réponses, tu as un bouton à cliquer pour dire que la "réponse acceptée".

Mon site
Commenter la réponse de NHenry

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.