Macro copier - coller

Fermé
JeuneDebutantVBA - 3 déc. 2016 à 22:49
 jeunedebutantVBA - 5 déc. 2016 à 20:59
Bonjour à tous,
J'aurais besoin de votre aide pour trouver une macro qui copierai une ligne non vide de la "feuil1" du classeur "srce" pour la coller dans la première ligne vide que la macro trouve dans la "feuil1" du classeur "dest".
Voici un bout de macro :
Sub test2()
Dim srce As Workbook
Dim Dest As Workbook
Set Dest = Workbooks.Open(Filename:="dest")
Workbooks("srce").Sheets("feuil1").Rows(1).Copy Workbooks("dest").Sheets("feuil1").Cells(Rows.Count, 1).End(xlUp)
End Sub
Le problème avec cette macro est qu'elle colle la ligne non vide de la "feuil1" du classeur "srce" dans la dernière ligne non vide de la "feuil1" du classeur "dest".
Or, je souhaiterais que si la macro détecte qu'une ligne de la "feuil1" du classeur "dest" est non vide, alors elle la saute et colle dans la ligne suivante seulement si cette ligne est vide.
J'espère que j'ai été assez explicite.
Merci pour votre aide.
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 4/12/2016 à 08:45
Bonjour

essaie
Workbooks("srce").Sheets("feuil1").Rows(1).Copy Workbooks("dest").Sheets("feuil1").Cells(Columns("A").Find("").Row, "A")  
 Michel
0
JeuneDebutantVBA
4 déc. 2016 à 14:14
Bonjour, j'ai essayé ton code mais ça ne marche pas. Avec ton code, le collage s'effectue sur la dernière ligne non vide de la "feuil1" du classeur "dest".
Or je ne veux pas que la macro écrive sur des lignes non vides.
1) Je souhaiterais qu'elle écrive uniquement sur des lignes vides
2) Je souhaiterais qu'elle soit capable d'écrire dans la première ligne vide qu'elle rencontre.
Par exemple : si les 20 premières lignes de la "feuil1" du classeur "dest" sont non vides et que la 21e ligne est vide, alors je voudrais que le collage se fasse dans cette 21e ligne.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 4/12/2016 à 14:25
Tu as écris:
Merci pour avoir essayé de m'aider

Désolé, j'avais testé avant de répondre et c'était OK

La preuve
https://mon-partage.fr/f/e6Ya2IwO/
0
JeuneDebutantVBA
4 déc. 2016 à 15:52
J'ai ouvert ton classeur et essayé ta macro. Elle identifie ou trouve seulement la ligne vide en l’occurrence la ligne A15 dans ton classeur. Or je souhaiterais qu'elle trouve les lignes vides de la "feuil1" du classeur "dest" et qu'elle y colle aussi toutes les lignes non vides provenant de la "feuil1" du classeur "srce".

De plus, autre problème auquel je n'avais pas pensé.
Si l'utilisateur ferme le classeur "srce" et le reouvre après pour écrire de nouvelles lignes sur la "feuil1" du classeur "srce" à la suite des précédentes lignes non vides. Il faudrait qu'une autre macro soit capable de copier uniquement toutes ces nouvelles lignes pour les coller dans "feuil1" du classeur "dest" et non copier toutes les lignes (c'est-à-dire les précédentes lignes qui ont déjà été copiées par la 1ère macro + les nouvelles lignes).
Est-ce possible ?

Merci beaucoup pour ton aide
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 déc. 2016 à 08:38
Bonjour,

Avec ton code, le collage s'effectue sur la dernière ligne non vide
..."Elle identifie ou trouve seulement la ligne vide"...


BOULOT EFFECTUE
0
jeunedebutantVBA
5 déc. 2016 à 20:59
merci pour ton aide
0