Effectuer plusieurs "copier coller" VBA

Bonjour à tous,

J'ai de nombreux fichier que je traite par Macro pour en consolider les données dans des tables externes.

Ma problématique est que je souhaite rendre ce traitement plus rapide et efficient et donc ma question est :

Est-il possible d'effectuer plusieurs "copier coller" en même temps à l'aide du VBA. pour le coup je ne sais pas si copier coller est la bonne expression à employer ;)

Exemple : je souhaite d'un coup que ma macro enregistre les données en "A5:A14" et "F5:F14" ect.. pour ensuite aller les disposer dans mon fichier de consolidation et donc ne pas avoir à faire x aller retour entre le fichier traité et celui de consolidation.

Je recherche donc un code permettant d'enregistrer les données de plusieurs plage de données en même temps.

Je ne sais pas si j'ai été clair, je reste donc disponible.

Bien à vous,

Paul

Bonjour,

Pour obtenir une meilleure réponse, il faut que vous donniez davantage de détails.

Mais oui, c'est possible, notamment en utilisant un tableau dynamique (variable multidimensionnelle), ou plusieurs, pour stocker les données et ensuite les restituer d'un coup.

Par exemple, on peut définir un code qui ne retient que les lignes dont la 1ère cellule n'est pas vide :

sub exemple()
t = activesheet.usedrange.resize(, 6).value 'prend la zone utilisée (de la feuille active) limitée à 6 colonnes
for i = lbound(t) to ubound(t) 'pour chaque ligne du tableau
    if t(i, 1) <> "" then 'si la valeur en colonne 1 est non vide
        n = n + 1 'incrémentation de n (nombre de valeurs à retenir)
        for k = lbound(t, 2) to ubound(t, 2) 'pour chaque colonne du tableau
            t(n, k) = t(i, k) 'la ligne n recoit les valeurs de la ligne i >>> méthode de tassement
        next k
    end if
next i
if n = 0 then msgbox "Aucune donnée à copier": exit sub 'msg et sortie anticipée si aucune donnée retenue
with workbooks("Destination.xlsx").sheets(1) 'avec la feuille 1 du classeur de destination >>> A ADAPTER
    nvl = .cells(.rows.count, 1).end(xlup).row + 1 'première ligne vide
    .cells(nvl, 1).resize(n, ubound(t, 2)).value = t 'restitution du tableau t limité à ses n items
end with
end sub

Il y a certaines choses à adapter dans ce code qui doit être exécuté avec la feuille source préalablement activée et le classeur de destination déjà ouvert.

Cdlt,

Rechercher des sujets similaires à "effectuer copier coller vba"