Extraction de feuillets Excel
Daes75
Messages postés
15
Statut
Membre
-
Daes75 Messages postés 15 Statut Membre -
Daes75 Messages postés 15 Statut Membre -
Bonjour la communauté,
C'est la première fois que je poste un appel à la générosité et au savoir faire de certains pour m'aider à réaliser une certaine manipulation sur Excel. Et je remercie par avance les personnes qui prendront le temps de lire et de répondre à ce post.
Mon problème:
Je travail sur un planning concernant l'emploi du temps de formateurs. L'objectif de ce te tableau est d'avoir une vision assez globale concernant l'emploi du temps de formateurs afin de pouvoir les répartir en fonction des formations demandées. Ce classeur excel est constitué de plusieurs feuilles représentant les semaines. Un classeur Excel représente un trimestre.
Nous avons donc en colonne :
1ere colonne : Nom du formateur
2eme colonne : Lundi
3eme colonne : Mardi
4eme colonne : Mercredi
et ainsi de suite jusqu'à vendredi
En ligne j'ai :
Ligne 1 : formateur 1
Ligne 2: formateur 2
Ligne 3: formateur 3
ainsi de suite...
en feuillets nous avons donc :
1ere feuille : semaine 1
2eme feuille : semaine 2
etc ...
J'ai donc par ligne le planning des différents formateurs.
Exemple : Ligne 3 le formateur 3 travaille jeudi et vendredi.
Mon objectif est de pouvoir extraire les données sur tous les feuillets concernant un seul formateur.
Par exemple ca serait de pouvoir extraire sur un nouveau feuillets (idéalement sur un nouveau classeur) l'emploi du temps du formateur 3 pour chaque semaine. Comment faire pour avoir un résumé du planning d'une seule personne ? L'idéale serait de pouvoir lire la feuille récap comme ca : en ligne sem1, sem2, sem3... et en colonne lundi, mardi,mercredi... et ainsi voir en une seule feuille la totalité de son emploi du temps du trimestre afin de lui envoyer sans qu'il voit le planning des autres.
Si je n'ai pas été assez clair merci de me le préciser.
Merci de votre soutien et j'écoute toutes idées afin de réaliser ce processus.
C'est la première fois que je poste un appel à la générosité et au savoir faire de certains pour m'aider à réaliser une certaine manipulation sur Excel. Et je remercie par avance les personnes qui prendront le temps de lire et de répondre à ce post.
Mon problème:
Je travail sur un planning concernant l'emploi du temps de formateurs. L'objectif de ce te tableau est d'avoir une vision assez globale concernant l'emploi du temps de formateurs afin de pouvoir les répartir en fonction des formations demandées. Ce classeur excel est constitué de plusieurs feuilles représentant les semaines. Un classeur Excel représente un trimestre.
Nous avons donc en colonne :
1ere colonne : Nom du formateur
2eme colonne : Lundi
3eme colonne : Mardi
4eme colonne : Mercredi
et ainsi de suite jusqu'à vendredi
En ligne j'ai :
Ligne 1 : formateur 1
Ligne 2: formateur 2
Ligne 3: formateur 3
ainsi de suite...
en feuillets nous avons donc :
1ere feuille : semaine 1
2eme feuille : semaine 2
etc ...
J'ai donc par ligne le planning des différents formateurs.
Exemple : Ligne 3 le formateur 3 travaille jeudi et vendredi.
Mon objectif est de pouvoir extraire les données sur tous les feuillets concernant un seul formateur.
Par exemple ca serait de pouvoir extraire sur un nouveau feuillets (idéalement sur un nouveau classeur) l'emploi du temps du formateur 3 pour chaque semaine. Comment faire pour avoir un résumé du planning d'une seule personne ? L'idéale serait de pouvoir lire la feuille récap comme ca : en ligne sem1, sem2, sem3... et en colonne lundi, mardi,mercredi... et ainsi voir en une seule feuille la totalité de son emploi du temps du trimestre afin de lui envoyer sans qu'il voit le planning des autres.
Si je n'ai pas été assez clair merci de me le préciser.
Merci de votre soutien et j'écoute toutes idées afin de réaliser ce processus.
A voir également:
- Extraction de feuillets Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Fiche de pointage excel - Télécharger - Tableur
6 réponses
Bonjour,
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Bonjour et merci pour votre réponse.
Ci-joint le lien d'un exemple de tableau (je l'ai refait brièvement sans les noms des formateurs).
http://cjoint.com/data/0BAodVKOOi9.htm
Pour récapituler, nous avons
en ligne les noms des formateurs (formateur1...)
en colonne les jours (lundi, mardi...)
et feuille/onglet les semaines (c'est un fichier qui correspond au trimestre) donc environ 12 onglets pour 12 semaines différentes. dans l'exemple je n'ai ai mis que 3.
Le dernier onglet qui me permet de résumer le planning pour un seul formateur sur le trimestre.
Donc si on prend le dernier onglet "recap", il apparaitra par exemple pour le formateur 4 qu'il est à l'endroit A le mardi de la sem1.
Je reste à votre disposition si je ne suis pas clair.
Merci
edit :
l'exemple n'est pas très pertinent car je pourrai le faire manuellement pour chaque formateur mais l'idée serait d'automatiser le processus car le vrai tableau comporte une douzaine d'onglet et une 20 aine de formateurs.
Ci-joint le lien d'un exemple de tableau (je l'ai refait brièvement sans les noms des formateurs).
http://cjoint.com/data/0BAodVKOOi9.htm
Pour récapituler, nous avons
en ligne les noms des formateurs (formateur1...)
en colonne les jours (lundi, mardi...)
et feuille/onglet les semaines (c'est un fichier qui correspond au trimestre) donc environ 12 onglets pour 12 semaines différentes. dans l'exemple je n'ai ai mis que 3.
Le dernier onglet qui me permet de résumer le planning pour un seul formateur sur le trimestre.
Donc si on prend le dernier onglet "recap", il apparaitra par exemple pour le formateur 4 qu'il est à l'endroit A le mardi de la sem1.
Je reste à votre disposition si je ne suis pas clair.
Merci
edit :
l'exemple n'est pas très pertinent car je pourrai le faire manuellement pour chaque formateur mais l'idée serait d'automatiser le processus car le vrai tableau comporte une douzaine d'onglet et une 20 aine de formateurs.
Bonjour,
https://www.cjoint.com/?CBBjQGdN1wv
Pour la liste déroulante j'utilise la plage nommée en feuille Sem1.
Tu pourrais la mettre dans une feuille Liste masquée.
eric
https://www.cjoint.com/?CBBjQGdN1wv
Pour la liste déroulante j'utilise la plage nommée en feuille Sem1.
Tu pourrais la mettre dans une feuille Liste masquée.
eric
Merci beaucoup Eric!
Le problème c'est qu'au bureau j'utilise un mac et lorsque j'ouvre le fichier il me dit que les macros visual basic ne fonctionne pas sur mac office 2008. Du coup je vois tout de même le petit menu déroulant mais lorsque je switch de formateur rien ne bouge.
En tout cas, c'est exactement ce que je désirais d'un point de vue pratique et ergonomie. Le système à l'air très ingénieux.
Le problème c'est que je ne sais pas du tout comment tu as fait ça. Si tu pouvais me décrire le processus sans que ca te dérange et si ça n'est pas trop fastidieux, ca serait génial.
Par contre on est obligé d'utiliser visual basic pour ce genre d'opération ?
Le problème c'est qu'au bureau j'utilise un mac et lorsque j'ouvre le fichier il me dit que les macros visual basic ne fonctionne pas sur mac office 2008. Du coup je vois tout de même le petit menu déroulant mais lorsque je switch de formateur rien ne bouge.
En tout cas, c'est exactement ce que je désirais d'un point de vue pratique et ergonomie. Le système à l'air très ingénieux.
Le problème c'est que je ne sais pas du tout comment tu as fait ça. Si tu pouvais me décrire le processus sans que ca te dérange et si ça n'est pas trop fastidieux, ca serait génial.
Par contre on est obligé d'utiliser visual basic pour ce genre d'opération ?
Clic-droit sur le nom d'onglet 'Recap' et choisir 'Visualiser le code' :
Profites-en pour enlever l'apostrophe devant 'Application.ScreenUpdating = False
Si jamais le code plante les évènements risque de ne plus être détectés. Lancer la macro Réinit dans ce cas (ou fermer et réouvrir le fichier).
Tes noms d'onglet et la liste des semaines doivent correspondre au modèle fourni : commencer par "sem" et être identiques.
eric
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig As Long, lig As Long, erreur As String
Dim sh As Worksheet, c As Range
If Intersect(Target, [B3]) Is Nothing Then Exit Sub
derlig = Cells(Rows.Count, "A").End(xlUp).Row
'Application.ScreenUpdating = False
Application.EnableEvents = False
[B8].Resize(derlig, 5).ClearContents
If Target = "" Then Exit Sub
For lig = 8 To derlig
If LCase(Left(Cells(lig, "A"), 3)) = "sem" Then
If existSheet(LCase(Cells(lig, "A"))) Then
Set sh = Worksheets(LCase(Cells(lig, "A")))
Set c = sh.[A:A].Find([B3], LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
c.Offset(, 1).Resize(1, 5).Copy
Cells(lig, "B").PasteSpecial Paste:=xlPasteValues
End If
Else
erreur = erreur & ", " & Cells(lig, "A")
Err.Clear
End If
End If
Next lig
[B3].Select
Application.EnableEvents = True
Application.ScreenUpdating = True
If Len(erreur) > 0 Then MsgBox "Feuilles " & Mid(erreur, 3) & " non trouvées"
End Sub
Sub reinit()
Application.EnableEvents = True
End Sub
Function existSheet(nomFeuille As String) As Boolean
On Error Resume Next
existSheet = Sheets(nomFeuille).Index
End Function
Profites-en pour enlever l'apostrophe devant 'Application.ScreenUpdating = False
Si jamais le code plante les évènements risque de ne plus être détectés. Lancer la macro Réinit dans ce cas (ou fermer et réouvrir le fichier).
Tes noms d'onglet et la liste des semaines doivent correspondre au modèle fourni : commencer par "sem" et être identiques.
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et bien c'est impressionnant pour un novice comme moi!!
Encore merci d'avoir passé du temps dessus. Très bonne fin de journée.
Encore merci d'avoir passé du temps dessus. Très bonne fin de journée.
J'ai vérifié chez moi hier soir en rentrant et c'est exactement ce genre de système que je cherchais. Par contre je me demandais si ca arrivait à conserver la mis en forme des cellules initiales et si ca prenait en compte si les cellules sont fusionnées ?
C'est à dire si j'ai une ligne ou j'ai 2 cellules fusionnées (exemple lundi et mardi) est ce que la macro comprend qu'il faut aussi fusionner les deux cellules dans l'onglet récap ? Et si une cellule a un remplissage de couleur, est ce que la macro conserve la couleur dans l'onglet récap ?
Désolé de t'embêter :p
C'est à dire si j'ai une ligne ou j'ai 2 cellules fusionnées (exemple lundi et mardi) est ce que la macro comprend qu'il faut aussi fusionner les deux cellules dans l'onglet récap ? Et si une cellule a un remplissage de couleur, est ce que la macro conserve la couleur dans l'onglet récap ?
Désolé de t'embêter :p
Bonjour,
Les cellules fusionnées sont une plaie à fuir le plus possible. A réserver pour un titre et c'est tout.
Préférer 'centrer sur plusieurs colonnes' dans le format de cellule.
Sinon tu peux.
Remplacer :
Cells(lig, "B").PasteSpecial Paste:=xlPasteValues
par :
Cells(lig, "B").PasteSpecial Paste:=xlPasteAllExceptBorders
eric
Les cellules fusionnées sont une plaie à fuir le plus possible. A réserver pour un titre et c'est tout.
Préférer 'centrer sur plusieurs colonnes' dans le format de cellule.
Sinon tu peux.
Remplacer :
Cells(lig, "B").PasteSpecial Paste:=xlPasteValues
par :
Cells(lig, "B").PasteSpecial Paste:=xlPasteAllExceptBorders
eric