Copie collage plage avec xldown Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
A
Ahmedyassin
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 février 2019
Version d'Excel : 2016

Message par Ahmedyassin » 28 février 2019, 10:15

Bonjour,

Je suis nouveau sur ce groupe et novice en VBA. Je bosse sur un projet et l'automatisation de mon tableur me serait d'une très grande utilité. Je vous expose le cas :

Je voudrais faire en sorte que les données d'une plage dans une feuille A soient reportées sur une la feuille B du même classeur avec reportage des données en xldown.

Merci
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'599
Appréciations reçues : 250
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 28 février 2019, 10:30

bonjour

mon conseil pour reporter des données :
- soit mettre de simples "=" (collage avec liaison)
- soit utiliser Power Query

tout dépend de ce que tu veux faire avec les données reportées

joins un fichier exemple, avec 3 colonnes et 5 lignes et le résultat que tu attends

à te relire
amitiés
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
A
Ahmedyassin
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 février 2019
Version d'Excel : 2016

Message par Ahmedyassin » 28 février 2019, 10:46

Merci Jmd pour votre retour

J'ai omis de préciser que les données de la Plage peuvent être modifiées mais avant qu'ils ne le soivent, en appuyant sur un bouton de commande qu'on rapporte les données sur la feuille B.

En gros, je voudrais que la feuille B sert d'archivage de tout ce qui doit être noter sur la plage de la feuille A.

Merci
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'599
Appréciations reçues : 250
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 28 février 2019, 10:56

re

tu veux créer un formulaire

je te conseille de créer un modèle. Chaque utilisateur va remplir le formulaire, l'enregistrer avec son nometladate.xlsx
tu ranges TOUS ces fichiers dans un unique répertoire
et avec Power Query tu les charges dans un tableau tout simple

à te relire
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
A
Ahmedyassin
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 février 2019
Version d'Excel : 2016

Message par Ahmedyassin » 28 février 2019, 11:15

Rebonjour JMD,

Je suis pas encore très clair mais en pièce jointe un tableur qui pourra vous faire comprendre.

Merci
Démonstration.xlsx
(12.18 Kio) Téléchargé 3 fois
A
Ahmedyassin
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 février 2019
Version d'Excel : 2016

Message par Ahmedyassin » 28 février 2019, 11:17

Je voudrais avoir le code VBA pour avoir ce code qui permettra de coller les données de la plage de la feuille A vers la feuille B avec Xldown des données copies.
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'599
Appréciations reçues : 250
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 28 février 2019, 11:35

re

j'ai bien compris, mais comme c'est un "truc" que je fais tous les jours, je te conseille de faire des fichiers indépendants pour chaque commande (ne pas écraser une commande pour en saisir une nouvelle) et ensuite de prendre Power Query pour avoir comme dans ton exemple les colonnes K, L et M
des milliers de commandes et bien plus !

amitiés
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'716
Appréciations reçues : 703
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 28 février 2019, 12:22

Bonjour,
Un exemple à étudier (et à adapter).
Cdlt.
Démonstration.xlsm
(20.33 Kio) Téléchargé 4 fois
Public Sub Copy_data()
Dim lo As ListObject, lo2 As ListObject
Dim rCell As Range
    Set lo = ActiveSheet.ListObjects(1)
    Set lo2 = Worksheets("Feuil2").ListObjects(1)
    If Not lo.DataBodyRange Is Nothing Then
        Application.ScreenUpdating = False
        With lo2
            If .InsertRowRange Is Nothing Then
                Set rCell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
            Else
                Set rCell = .InsertRowRange.Cells(1)
            End If
        End With
        With lo.DataBodyRange
            .Copy
            rCell.PasteSpecial xlPasteValuesAndNumberFormats
            Application.CutCopyMode = False
            .Delete
        End With
    End If
End Sub
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
A
Ahmedyassin
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 28 février 2019
Version d'Excel : 2016

Message par Ahmedyassin » 4 mars 2019, 10:23

Rebonjour Jean-Eric et Jmd,

Merci Jean-Eric ton code marche très bien et merci aussi Jmd.

Amicalement
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message