Copie d'une plage de valeurs dans un tableau récapitulatif

Bonjour à tous,

J'apprécierais qu'on m'aide à concevoir une macro qui permet de copier une plage de valeurs de diverses feuilles de données dans un tableau récapitulatif.

Dans l'exemple ci-joint, j'ai 4 feuilles de données "D1", "D2", "D3" & "D4" dans lesquelles sont contenues des données à être copiées dans la feuille "BDCAD (modèle)".

Veuillez noter que le nom et le nombre de feuilles de données sont variables.

Dans la première feuille, la macro doit vérifier si la cellule B5 contient les caractères "ID :" et que la cellule C5 n'est pas vide. Si ces conditions sont bonnes, la macro doit copier la plage AI:CJ (ligne 3) dans la plage C9:BD (ligne 9) de la feuille BDCAD (modèle). La macro doit effectuer les mêmes opérations pour la seconde feuille ("D2") de données en ajoutant les prochaines données copiées dans la ligne suivante (ligne 10), et ainsi de suite, jusqu'à la dernière feuille de données (DX).

Dans l'exemple ci-joint, j'ai représenté le résultat de l'exécution d'une telle macro dans la feuille BDCAD (résultats).

J'ai essayé de concevoir une macro "Copie_donnees()" mais cela ne fonctionne pas.

Je vous remercie par avance pour votre précieuse collaboration.

Salutations

Renaud D.

14exemple.xlsm (59.73 Ko)

Bonjour,

à tester,

Sub test()
For Each f In Worksheets
  If f.Name <> "BDCAD (résultats)" Or f.Name <> "BDCAD (modèle)" Then
    rw = Sheets("BDCAD (résultats)").Cells(Rows.Count, 3).End(xlUp).Row + 1
    Sheets("BDCAD (résultats)").Range("C" & rw & ":BD" & rw).Value = Sheets(f.Name).Range("AI3:CJ3").Value
  End If
Next
End Sub

Bonjour i20100,

Merci d'avoir répondu à ma demande d'aide.

Je dois préciser que la feuille "BDCAD (résultats)" a été insérée dans le fichier joint qu'à titre indicatif. La macro ne doit pas faire mention de cette feuille.

Seules les feuilles de données, la feuille "BDCAD (modèle)" et d'autres feuilles quelconques (page titre,...) seront présentes dans le fichier. La feuille "BDCAD (modèle)" représente la feuille dans laquelle les données seront copiées.

Il est donc important que la macro vérifie dans chacune des feuilles si la cellule B5 contient les caractères "ID :" et que la cellule C5 n'est pas vide afin de bien identifier les feuilles de données à partir desquelles les données seront copiées dans la feuille "BDCAD (modèle)".

Au plaisir de vous lire,

Salutations

Renaud D.

re,

à tester,

Sub test()
For Each f In Worksheets
  If Sheets(f.Name).Range("B5") = "ID :" And Sheets(f.Name).Range("C5") <> "" Then
    rw = Sheets("BDCAD (résultats)").Cells(Rows.Count, 3).End(xlUp).Row + 1
    Sheets("BDCAD (résultats)").Range("C" & rw & ":BD" & rw).Value = Sheets(f.Name).Range("AI3:CJ3").Value
  End If
Next
End Sub

Bonsoir i20100,

La feuille "BDCAD (modèle)" est celle dans laquelle les données sont copiées. Dans votre macro, il doit y avoir aucune référence à la feuille "BDCAD (résultats)". La feuille "BDCAD (résultats)" ne représente que le résultat des copies (exemple) dans la feuille "BDCAD (modèle)".La feuille "BDCAD (résultats)" n'apparait pas dans le fichier. Les données doivent être copiées à premier lieu dans la ligne 9 de la feuille "BDCAD (modèle)" et ainsi de suite pour les feuilles de données suivantes.

Serait-il possible pour vous d'y intégrer votre macro dans le fichier que j'ai envoyé et me le retourner?

Au plaisir,

Renaud D.

re,

le voici,

Bonsoir i20100,

C'est fois, c'est la bonne.

Votre macro fonctionne à merveille.

Merci beaucoup pour votre aide.

Je vous souhaite une bonne soirée.

Salutations,

Renaud D.

Rechercher des sujets similaires à "copie plage valeurs tableau recapitulatif"