Copier données de plusieurs feuilles dans une feuille récap

Bonjour,

Je souhaiterai copier des données de plusieurs feuilles sur une seule feuille excel.

J'ai des données réparties sur 7 feuilles excel. Ces données sont au format texte (avec des cellules vides pour certaines), sur les colonnes D à M. Toutes les feuilles ont un format identique.

Je souhaite rapatrier les données de chaque feuille les unes en dessous des autres sur une feuille "Récap". Cette dernière également au même format que les autres.

Pourriez vous s'il vous plait m'aider?

Dois-je réaliser une macro ou une fonction suffit-elle?

Je suis désolée, cela fait longtemps que je n'ai plus utilisé Excel, ca doit certainement être simple pour vous.

Ci-joint le document pour exemple.

Merci d'avance et meilleures salutations,

Cécile.

2'433test-cecilecosma.zip (18.64 Ko)

Bonjour,

Voici un code à placer dans le module créé en VBA

Sub transfert()
'Macro Dan pour CecileCosma - 20/09/12
Dim dlgR As Integer, dlgi As Integer
Dim i As Byte
For i = 1 To Worksheets.Count
    If UCase(Sheets(i).Name) <> "RECAP" Then
        dlgR = Sheets("RECAP").Range("D" & Rows.Count).End(xlUp).Row
        With Sheets(i)
            dlgi = .Range("D" & Rows.Count).End(xlUp).Row
            .Range("D2:M" & dlgi).Copy Sheets("RECAP").Range("D" & dlgR + 1)
        End With
    End If
Next
End Sub

La colonne D de chaque feuille doit avoir une donnée

Si ok, merci de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Cordialement

Cher Dan,

C'est fantastique! Et quelle rapidité!

Cela fonctionne, c'est vraiment top! Un GRAND MERCI!!!

J'ai encore juste une petite question: à chaque fois que j'exécute la macro, les données s'incrémentent les unes après les autres.

Etant donné que ce fichier sera actualisé régulièrement, il y aura des lignes qui vont changer, s'additionner, et certaines qui vont rester intactes... du coup je risque d'avoir des doublons.

Le mieux, c'est que je fasse une petite macro avant pour supprimer toutes les données existantes du dossier récap avant d'exécuter votre macro?

Qu'en pensez vous?

Merci d'avance pour votre retour,

Bien cordialement,

Cécile.

Dan, encore une question (désolée)

Si après je veux ajouter une nouvelle feuille pour un traitement de données (graphs, etc -voir feuilles annexes du fichier joint) qui ne doit pas entrer dans la macro de la feuille récap... cela va-t-il fonctionner quand même? ou devrais-je créer un nouveau fichier?

Merci encore

Meilleures salutations,

Cécile.

924test-cecilecosma2.zip (20.10 Ko)

Re,

Le mieux, c'est que je fasse une petite macro avant pour supprimer toutes les données existantes du dossier récap avant d'exécuter votre macro?

Qu'en pensez vous?

Simplement rajouter ceci juste après l'instruction DIM i

With Sheets("RECAP")
dlgR = .Range("D" & Rows.Count).End(xlUp).Row
.Range("D2:M" & dlgR).ClearContents
End With

Si après je veux ajouter une nouvelle feuille pour un traitement de données (graphs, etc -voir feuilles annexes du fichier joint) qui ne doit pas entrer dans la macro de la feuille récap... cela va-t-il fonctionner quand même? ou devrais-je créer un nouveau fichier

Là il faudra modifier le code. Combien de feuilles seraient rajoutées ? C'est aléatoire ?

Dan,

Merci pour l'instruction... encore une fois c'est super rapide merci beaucoup

Pour les feuilles à ajouter, il s'agit de 5 feuilles au maximum... (feuilles de type chiffre d'affaire, budget, tableau de bord, etc.)

L'idée était d'avoir tout sous un seul fichier. Mais si c'est trop compliqué, je ferai deux fichiers...

Bien cordialement,

Cécile.

Re,

Non c'est mieux un seul fichier.

Il me faut le nom exact qui sera donné aux feuilles pour adapter le code.

A vous relire

Dan.

Merci encore et encore.

Les noms des feuilles additionnelles sont:

Dashboard

Base_budget

Budget

Base_turnover

Turnover

Mais c'est un peu génant tout de même,

J'espère que ce n'est pas trop de travail pour vous...

Je joins le fichier avec les bons noms.

Bien cordialement,

Cécile.

1'254test-cecilecosma-2.zip (20.72 Ko)

Re,

Code à essayer en lieu et place de l'autre

Sub transfert()
'Macro Dan pour CecileCosma - 20/09/12
Dim dlgR As Integer, dlgi As Integer
Dim i As Byte
With Sheets("RECAP")
dlgR = .Range("D" & Rows.Count).End(xlUp).Row
.Range("D2:M" & dlgR).ClearContents
End With
For i = 1 To Worksheets.Count
    Select Case UCase(Sheets(i).Name)
    Case Is = "RECAP"
    Case Is = "DASHBOARD"
    Case Is = "BASE_BUDGET"
    Case Is = "BUDGET"
    Case Is = "BASE_TURNOVER"
    Case Is = "TURNOVER"
    Case Else
        dlgR = Sheets("RECAP").Range("D" & Rows.Count).End(xlUp).Row
        With Sheets(i)
            dlgi = .Range("D" & Rows.Count).End(xlUp).Row
            .Range("D2:M" & dlgi).Copy Sheets("RECAP").Range("D" & dlgR + 1)
        End With
    End Select
Next
End Sub

Amicalement

Dan,

Merveilleux! Cela fonctionne parfaitement.

Un grand grand merci pour votre aide, vous pouvez pas savoir comme cela me simplifie la vie.

Meilleures salutations,

Cécile.

Bonjour,

Je débute dans le monde VBA

J'ai récupéré le programme présenté ci-dessus par contre il copie les formules. Comment peut on copier seulement les valeurs.

Merci par avance de votre retour

Bonjour,

Tu devais ouvrir ton propre sujet et joindre un fichier.

Nous sommes en 2018, les versions Excel sont différentes, et d'autres solutions peuvent être envisagées.

Cdlt.

ok merci

Rechercher des sujets similaires à "copier donnees feuilles feuille recap"