VBA Copier/déplacer lignes d'un classeur/document vers un autre

Bonjour à tous, je suis débutant sur VBA et je suis bloqué sur cela depuis quelques jours. J'ai deux document Excel différents, le premier document que j'appelle classeur 1 contient une feuille avec 2 colonnes et X lignes de données. J'ai un autre document que je nomme classeur 2 qui lui contient X feuilles, donc le nombre de lignes de données du premier document est le même que le nombre de feuille du deuxième document Excel. J'aimerais copier ou déplacer l'information de la première ligne de mon classeur 1 dans la dernière feuille du classeur 2, ensuite faire de même avec la deuxième ligne de donnée de mon classeur 1 et la mettre dans l'avant dernière feuille de mon classeur 2, etc. jusqu'à la X ième ligne de donnée qui elle ira dans la première feuille de mon classeur 2. Quelqu'un aurait une idée de comment faire cela avec des codes VBA?

Bonjour,

Voici un premier code à essayer (à placer dans le classeur 1) avec le classeur 2 fermé avant l'exécution :

sub test()
set wss = thisworkbook.activesheet 'feuille source (active) du classeur source et exécutant (classeur1)
dls = wss.cells(wss.rows.Count, 1).end(xlup).row 'dl en colonne 1
with workbooks.open("C:\...\classeur2.xlsx") 'avec classeur destination (class2)
    for i = 1 to dls 'pour chaque ligne
        with .sheets(dls - i + 1) 'avec la feuille en cours (décroissance : fin vers début)
            nvld = .cells(.rows.count, 1).end(xlup).row + 1 'nouvelle ligne (1ere vide) en colonne 1
            for k = 1 to 2 'de 1 à 2
                .cells(k, 1).value = wss.cells(i, k).value 'la cellule dest en ligne k (col 1) vaut cellule source en ligne i colonne k
            next k
        end with
    next i
    .save 'sauvegarde
    'close true 'pour fermer et sauver directement
end with
end sub

Il y a encore beaucoup d'éléments à clarifier donc le résultat ne sera probablement pas directement celui attendu.

En tout cas, pour chaque ligne (1 à la dernière non vide en colonne 1) de la feuille source (qui doit être active au moment de l'exécution), on copie les cellules en A et B respectivement vers les lignes 1 et 2 du classeur de destination à la feuille dont l'index est le nombre de feuilles - le numéro de ligne en cours + 1.

J'ai considéré qu'il y avait autant de feuilles que de lignes (sinon, il faudra corriger).

Il faudra mettre le chemin complet du classeur 2 évidemment et préciser si possible le nom de la feuille source (en remplaçant activesheet par sheets("nomfeuille")).

Cdlt,

Rechercher des sujets similaires à "vba copier deplacer lignes classeur document"