Plage de cellule de plusieurs onglets vers un seul
Bonjour le forum,
Après des recherches sur le forum et sur le web je me décide à vous contacter.
Voilà je pense ne pas être très loin mais je bloque sur une dernière chose.
La macro fonctionne bien cependant je souhaiterai que les plages (B26:S39) que je selectionne dans mon classeur sur les différents onglets se mette les unes à la suite des autres sur une feuille synthése. Or la macro que je vous envoi copie bien les plages de tous les onglets du classeur mais ne met que les premières lignes de chaque plage, puis fini par la plage complète sur ma feuille synthèse. Je n'arrive pas à trouver la subtilité d'un décalage pour que toutes mes plages apparaissent. Je vous envoi le code ci dessous
Sub SYNTHESE()
Joueur = Application.PathSeparator & Range("A6")
xnomfic = Range("A6"): ficd = Application.PathSeparator & xnomfic & " Musculation.xlsx"
Application.ScreenUpdating = False
If FileOrFolderExistsOnMac(ThisWorkbook.Path & Joueur & ficd) = True Then
Application.Workbooks.Open (ThisWorkbook.Path & Joueur & ficd), UpdateLinks:=0
Workbooks("Monclasseur.xlsm").Sheets(synthese).Range("B3:S1000").ClearContents
For i = 1 To Worksheets.Count
[color=#0080FF] Workbooks("Monclasseur.xlsm").Sheets(synthese).Range("B3:S16").Offset(i, 0).Value = Worksheets(i).[B26:S39].Value[/color]
Next i
ActiveWorkbook.Close
Workbooks("Monclasseur.xlsm").Sheets("Modele").Activate
Application.ScreenUpdating = True
Application.CutCopyMode = False
Else
MsgBox "Le dossier " & xnomfic & " n' existe pas!"
End If
End Sub
La plage (B26:S39) fais 12 lignes sur 18 colonnes
Je pense que j'ai loupé une étape sur la zone colorée
Si vous pouviez m'aider a terminer ce code ça serait Genial
Cordialement
JUJUDESEXCEL
Salut Juju,
Voici un code qui devrait réaliser ton souhait :
Sub SYNTHESE()
Application.ScreenUpdating = False
Range("B3:S" & Rows.Count).ClearContents
For i = 1 To Worksheets.Count
If Sheets(i).Name <> "Synthèse" Then
Sheets(i).Range("B3:S16").Copy Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1)
End If
Next i
End Sub
La prochaine fois pense de fournir un fichier permettant de tester ta macro.
Cordialement.
Bonsoir Yvouille, le Forum,
Désolé de ma réponse tardive
Merci pour ton aide et pour ce code, cependant je n'arrive pas à l'adapter à mon cas.
En fait le code ouvre un classeur "ficd" copie les plages "B26:S39" de chaque feuille, le ferme et vient coller ces plages sur une page synthese de "Mon classeur".
ton code marche nikel pour un classeur en interne mais je n'arrive pas à le faire fonctionner entre 2 classeurs voici ce que j'ai tenté:
Sub graphmuscu()
Joueur = Application.PathSeparator & Range("A6")
xnomfic = Range("A6"): ficd = Application.PathSeparator & xnomfic & " Musculation.xlsx"
Application.ScreenUpdating = False
If FileOrFolderExistsOnMac(ThisWorkbook.Path & Joueur & ficd) = True Then
Application.Workbooks.Open (ThisWorkbook.Path & Joueur & ficd), UpdateLinks:=0
For i = 1 To Worksheets.Count
Sheets(i).Range("B26:S39").Copy
Next i
ActiveWorkbook.Close
Workbooks("Monclasseur").Sheets(xnomfic).Range ("B" & Range("B" & Rows.Count).End(xlUp).Row + 1)
Workbooks("Monclasseur").Sheets("Modele").Activate
Application.ScreenUpdating = True
Application.CutCopyMode = False
Else
MsgBox "Le dossier " & xnomfic & " n' existe pas!"
End If
End Sub
Désolé de ne pas t'envoyer de fichier mais celui la en question est un peu lourd et je t'avoue que c'est un bon gros bazar
En tout cas un grand merci pour ton aide
Cordialement
JUJUDESEXCEL
Salut Juju,
Si tu vas chez ton garagiste et que tu lui dis : "Je suis désolé, je ne peux pas vous apporter ma voiture, mais je peux vous dire que c'est un problème dans les environs du moteur", il y a bien des chances qu'il refuse de continuer la discussion.
Avec ton fichier c'est comparable : sans le voir, il est inutile que je continue à tâtonner. Un fichier peut être réduit (si 10 lignes suffisent à la démonstration de ton problème, inutile d’en laisser 20'000, tu peux enlever les feuilles inutiles), tu peux y remplacer tes données sensibles par des données neutres, etc.
jujudésexcel a écrit :je souhaiterai que les plages (B26:S39) que je selectionne dans mon classeur sur les différents onglets se mette les unes à la suite des autres sur une feuille synthése.
Je pense quand même avoir répondu à ta demande.
Cordialement.
Bonsoir Yvouille,
Je comprend tout à fait et désolé je te fais parvenir un bout du dossier. Tout part de la feuille modèle, je créée un fichier que j'alimente de plusieurs onglets. puis je synthétise les données de ce fichier "test2", sur une page de mon fichier "synthèse". En passant je suis très amateur de ta métaphore
Bonne soirée et encore merci du temps que tu consacres
Jujudésexcel
Et je te confirme, le premier fichier fais bien ce que je souhaite mais en fait je n'arrive pas à l'adapter sur un classeur externe.
Cordialement
Juju
Re,
Ton fichier est une véritable usine à gaz, une brebis n'y retrouverait plus son petit
Je pense que tu dois soit réussir à isoler ton problème et à nous fournir un fichier qui nous permettent de t'aider sans passer trois jours à essayer de comprendre comment fonctionne tout ça ou soit compter sur quelqu'un d'autre qui reprendrait le flambeau.
Si jamais indique ce fil comme "Résolu" - puisque peu de membres s'intéressent encore à un fil déjà entamé - et rouvre-en un autre et essayant d'être plus précis.
J'ai essayé de t'aider, je n'y suis pas arrivé, désolé.
Amicalement.
Bonjour Yvouille,
Je suis vraiment désolé. Je tente une dernière chance avant de rouvrir une discussion. J'ai nettoyer un max le fichier en laissant 2 macros. la macro "editer fichier" Celle qui créé les dossier + fichier dans le même emplacement que le fichier SYNTHESE. E t la macro "synthétiser" qui va prélever chaque plage "B26:S39" en rouge du fichier créé "test3 SYNTHESE" pour le copier sur la feuille "test3" dans le classeur "SYNTHESE"
Je joins donc le fichier "nettoyé" et je tiens vraiment à m'excuser.
Je te rermercie du temps que tu y passes en espérant que ma dernière tentative soit la bonne,
Cordialement
JUJU
Bonsoir,
Ta demande est tout sauf claire, tes fichiers, tes macros sont encore plus obscures.
Si ce que tu désires est de transférer des données de 3 feuilles d’un fichier vers la feuille d’un autre fichier les unes à la suite des autres, alors je t’en fais la démonstration dans les deux fichiers ci-joints.
Tu enregistres les deux fichiers dans le même dossier (je n’ai pas eu le temps de voir si ça avait vraiment une importance), tu les ouvres à l’écran et tu lances la macro placée derrière le bouton de la Feuil1 du fichier ‘Test 3 Synthèse’. Selon mes tests, tu as les données des 3 feuilles de ce fichier qui sont reportées sur la feuille ‘test3’ du fichier ‘SYNTHESE’, à la suite des données en place.
Tu dis n’avoir laissé que deux macros, mais il y en a 36 !! Ta macro Sub synthŽtiser() est lancée depuis quel fichier, quelle feuille ?
Amicalement.
Bonsoir Yvouille,
Un grand merci pour ton aide, tu as entièrement répondu à ma requête avec ce dernier fichier. Je suis grandement désolé de ne pas avoir été clair dans mes explications et j'espère surtout ne pas t'avoir énervé
Pour tout te dire, le fichier "test3 synthese" est créé à partir du fichier "synthèse" et c'est du fichier "synthèse" que je récupère les données du "test3 synthèse". ce fichier est sur une dropbox et il est rempli par plusieurs personnes et ton code me permet de récupérer et interpréter rapidement les données enregistrées.
Je vais mettre cette discussion comme résolue grâce à toi. Et si je dois revenir demander de l'aide je ferai en sorte d'être le plus clair possible. Encore un grand merci à toi, Bonne soirée
Jujudésexcel
PS: au moins je porte bien mon pseudo