Macro copier coller données de plusieurs feuille vers une feuille recap

vincent115

XLDnaute Nouveau
Bonjour à tous,

Je suis nul en VBA ... et débutant en Excel.
J'ai cherché vainement sur le forum une solution à ma question. Par contre, les thèmes sont hyper intéressants et je vais y retourner plus souvent par curiosité, vos compétences sont précieuses.

Je souhaite créer une macro pour chaque feuille (1,2 et 3) pour qu’il me copie les données contenues dans Dates, Noms et Points de chaque feuille (et cela pour chaque jour différent, exemple aujourd’hui = Feuille 1 ; demain = Feuille 2 ; après-demain = Feuille 3 ; etc …) (même format de tableau pour chaque feuille) dans une page recap, et qui met les données de chaque feuille en dessous les unes des autres et terminer par une sauvegarde.

Le but est de cumuler les données (concours de boules !) pour ensuite utiliser un Tableau Croisé Dynamique pour leur classement.

J'espère être assez clair dans mes explications.

Merci de votre aide.
 

Pièces jointes

  • Excel2003_Test001_Copier_coller.xls
    21.5 KB · Affichages: 160

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Bonjour vincent,
Le Forum,

Une suggestion p.j.

À propos, nul besoin de feuille 'RECAP' car le TCD en soi est un recap.

Je suggère une seule feuille intitulée 'DONNEES' dans laquelle tous les pointages seraient entrés les uns à la suite de l'autre.

Je sais qu'il est possible de faire un TCD à partir de plusieurs feuilles mais après test, les résultats n'étaient pas très bons.

En espérant avoir aidé,
 

Pièces jointes

  • Excel2003_Test001_Copier_coller(1).xls
    31.5 KB · Affichages: 201

vincent115

XLDnaute Nouveau
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Bonjour Geneviève,

La solution proposée est ce que je sais déjà faire.

Mais ce que je cherche, c'est une macro qui me copie les données automatiquement après la dernière donnée de l'onglet Recap.

Je pense qu'il y aura un problème dans la macro car il faudra mettre le nom exact de l'onglet source, et pour cela je ne sais pas comment le mettre quand cela évolue.

Merci et à te relire

Vincent
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Re vincent,
Le Forum,

Je ne suis pas ferrue de macro, je me débrouille bien avec les TCD, les macro très élémentaires et quelques formules.

Ce que je sais, c'es qu'il est possible de dire à une macro; prend l'info de tous les onglets et mets-les les uns à la suite de l'autre dans l'onglet Recap.

Ce n'est pas une info trop difficile à trouver sur le forum. Par contre, il faudrait savoir si chacune de ces feuilles vont êtres modifiées par la suite (ajout, retrait d'information). En ce sens, cela peut modifier ta feuille Recap au lancement de la macro...je ne sais pas si tu me suis?

Bref, je vais jeter un coup d'oeil de mon côté en attendant qu'un Macro-iste passe par ici... ;)
 

Efgé

XLDnaute Barbatruc
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Bonjour vincent115, Bonjour genevieve78 :)
Une proposition.
Seul impératif: la feuille Participants, doit s'appeler "Participants" :D
Cordialement
 

Pièces jointes

  • Excel2003_Test001_Copier_coller(3).xls
    51.5 KB · Affichages: 319
Dernière édition:

vincent115

XLDnaute Nouveau
Re : Macro copier coller données de plusieurs feuille vers une feuille recap (resolu°

Bonjour,

Bravo Efgé, c'est exactement ce que je cherche.
Par contre, je ne vois aucun macro, peux tu me dire comment tu as fait cette automatisation parce que je voudrais l'appliquer sur d'autres fichiers.

Merci Geneviève78, Efgé et à tout le forum

Vincent;)
 

vincent115

XLDnaute Nouveau
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Re Efgé

Je découvre UserForm1 ---> pour moi c'est du chinois

J'ai essayé en vain de le refaire sur un autre fichier, d'où mes questions suivantes :
- est il possible de le mettre en macro (pour que je puisse le copier et changer certaines données) ?
- quels sont les codes pour définir les colonnes de cellules de chaque onglet ? ainsi que la cellule d'arrivée ?

Merci d'avance
Vincent
 

Efgé

XLDnaute Barbatruc
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Re
En VBA chaque chose a sa place.

Sur la feuille Recap, il y a un bouton, dont le code est dans le module de la feuille.(clic droit sur l'onglet / visualiser le code)

Il s'agit d'un UserForm, donc les "macros" sont dedans.Il faut doublecliquer sur le userform pour accéder aux codes)
Le userform est composé d'une Combobx (liste déroulante), d'une étiquette de texte, et de deux boutons.

La procédure se défini ainsi:
Clic sur le bouton de la feuille, cela déclenche
VB:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
qui lance le UserForm
Dès l'appel du USF lancement de la procédure:
VB:
Private Sub UserForm_Initialize()
Dim i&
'Pour i = 1 jusqu'au nombre de feuille du classeur
For i = 1 To Sheets.Count
    'Si la feuille i n'est pas la feuille active (celle qui porte le bouton)
    'ET si la feuille i ne s'appelle pas "Participants"
    'Alors on ajoute le nom de la feuill i dans le liste (Combobox)
    If Sheets(i).Name < > ActiveSheet.Name And Sheets(i).Name < > "Participants" Then Me.ComboBox1.AddItem (Sheets(i).Name)
'Prochaine feuille i
Next i
End Sub

Si on clic sur le bouton Sortie :
VB:
Private Sub CommandButton2_Click()
'Fermeture du UserForm
Unload Me
End Sub

Si on clic sur le plus important, le bouton "Importation"
VB:
Private Sub CommandButton1_Click()
'On déclare F entant que feuille
Dim F As Worksheet
'Si la Combobox a un texte (donc si une feuille est choisie par l'utilisateur) alors
If Me.ComboBox1.Text < > "" Then
    'On attribu la feuille à la variable F
    Set F = Sheets(Me.ComboBox1.Text)
    'On copie la plage(Range)de la feuille F
    'F.Cells(2, 1) = $A$2 (Cells(Ligne, Colonne))
    'F.Cells(Rows.Count, 3).End(3)(2) = La derniere cellule remplie en colonne 3 (C) en partant de la dernière ligne (Rows.Count)
    'et en remontant (End)(3)) + 1 ligne (2) (plus une ligne car si la feuille est vide on va copier l'en tête
    'On copie cette plage (.Copy) sur la premiere celleule vide en colonne A de la feuiille active
    F.Range(F.Cells(2, 1), F.Cells(Rows.Count, 3).End(3)(2)).Copy ActiveSheet.Cells(Rows.Count, 1).End(3)(2)
    'On demande à l'utilisateur s'il veux sauvegarder
    'si c'est oui on le fait
    If MsgBox("Voulez-vous sauvegarder le classeur ?", 36, "Sauvegarde") = vbYes Then ThisWorkbook.Save
'Si non (si la Combobox est vide)
Else
    'On avise l'utilisateur
    MsgBox "Veuillez choisir une feuille à importer", 64, "Pas de feuille sélectionnée"
End If
End Sub

J'ai laissé les commentaires dans le fichier joint.

Si tu veux transférer le principe, c'est le userform que tu doit transférer dans le nouveau classeur

N'hésite pas si tu rencontre d'autres difficultés

Cordialement
 

Pièces jointes

  • Copier_coller_Commentaires.xls
    53 KB · Affichages: 142
Dernière édition:

vincent115

XLDnaute Nouveau
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Re Efgé

Merci de la réponse rapide.
Je comprends mieux certaines lignes.
Demain, je m'achète un livre sur le language VBA, car je trouve formidable ce que tu m'expliques, mais l'étude sera peut-être longue !

En attendant, je ne sais pas comment copier le UserForm dans le nouveau fichier.
Vincent
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Vincent,
titiborregan et Efgé :)

Tu n'as qu'à copier les feuilles de ton document original (pour lequel tu veux ce userform) vers celui-ci.

Ensuite, tu effaces les feuille 'exemple' de ce fichier qu'Efgé t'a adapté.

Pour copier tes feuille excel d'un document à l'autre:
- clic droit sur l'onglet; choisir 'Déplacer ou copier'
- cocher 'Créer une copie'
- et ne pas oublier de choisir le classeur de destination.

L'avantage est que tu n'auras pas à 'jouer' dans le VBE et que tu pourras adapter tout de suite ton fichier.

À noter que tu peux copier plusieurs feuilles de ton classeur d'un seul coup; clic sur le premier onglet voulu, maintien Shift et clic sur les autres onglets et finalement, les étapes que je t'ai donné plus haut.

En espérant le tout clair comme de l'eau de roche :)

Bonne journée XlNautes!
 

vincent115

XLDnaute Nouveau
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Bonjour à tous,
Désolé, je ne suis vraiment pas bon !
Pas réussi à faire cette exportation, donc je vais utiliser uniquement ce fichier en attendant.

J'ai acheté le livre Excel et VBA de Mikaël Bidault des éditions Pearson pour essayer d'en apprendre plus (j'arrive à la page 50 !).

En résumé, j'utilise actuellement le fichier créé par Efgé (ci-joint), il y a malheureusement encore une erreur de ma part : je n'arrive pas à faire la mise à jour automatique de mon tableau croisé dynamique malgré la découverte de la formule sur votre site.
Peut-être que l'un de vous peut me la rajouter dans ce fichier, et en me précisant l'emplacement à mettre de cette formule.

Merci d'avance en attendant de vous lire.
Vincent
 

Pièces jointes

  • tcd DU 24072013.xls
    122.5 KB · Affichages: 78

Efgé

XLDnaute Barbatruc
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Bonjour vincent115
Pourquoi refaire un TCD à chaque foi ?
Tu as une plage nommée "BDD" dans ton gestionaire de nom, il faut l'utiliser comme source de données pour le TCD.
Ensuite ton refreshAll, placé dans la feuille TCD suffit à actualiser.

Je n'ai pas compris ce que tu cherche à faire avec la macro Effacer_ligne :
Tu cherches si la valeur en colonne est égale à 0 pour pouvoir supprimer la ligne, mais en colonne B il n'y a que du texte.

Je te laisse un classeur avec ce que j'ai compris et remis en place.
Cordialement
 

Pièces jointes

  • tcd_DU_2024072013(2).xls
    141 KB · Affichages: 130

vincent115

XLDnaute Nouveau
Re : Macro copier coller données de plusieurs feuille vers une feuille recap

Bonsoir

Merci Efgé et tous.

Je suis bluffé par le résultat. C'est professionnel !
Ma macro Effacer 0 m'est utile car j'ai des défaillances dans la suite des inscriptions et cela marche super.
La solution est impeccable, c'est ce que je cherchais. Mes copains vont malheureusement croire que je suis bon en informatique et cela grâce à vous !

Mais, il y a toujours un mais, c'est comme le mouton à cinq pattes !
Dans ma petite et vielle tête, mon but prochain est de convertir automatiquement ce TCD en tri décroissant avec la colonne Total du TCD avec une macro. Cela me permettra d'imprimer ce tableau à chaque modification.

Je crois que j'abuse de votre temps, mais je compte sur votre bonne volonté.
Vincent
 

Discussions similaires

Statistiques des forums

Discussions
312 182
Messages
2 086 003
Membres
103 084
dernier inscrit
Hervé30120