Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour à tous.
Je publie pour la première fois et j'ose espérer d'être au bon endroit.
Mon problème est le suivant :
J'ai un classeur qui contient les emplois du temps par classes.
Les cellules contiennent la matière suivie du nom de l'enseignant.
Dans un autre classeur j'ai des onglets qui sont les noms des enseignants.
Je voudrais récupérer dans les cellules de ces onglets les classes où le nom de l'enseignant apparait pour en faire un emploisv du temps individuel.
Merci d'avance pour votre aide.
Voilà.
Dans la feuille profs, on choisit l'initiale du nom qui donne la liste des profs qui ont cette initiale.
Puis un clic sur le nom du prof donne son planning.
Bonjour Salbingu,
Désolé, je jette l'éponge.
Nous ne sommes plus dans une aide mais dans un développement complet qui va demander beaucoup de temps, plus que j'en ai de disponible.
D'autant que les deux bases ne sont pas strictement identiques, par exemple vous avez TAKOUGANG née FOTSING Matuekam d'un coté et TAKOUGANG née FOTSING de l'autre, et je pense qu'il y en a d'autres. Ce qui obligera à gérer les différences, ce sera long, compliqué et chronophage.
De plus les plannings classes vont de 7:30 à 12:00, les plannings enseignants de 7:30 à 17:00, ce qui veut dire qu'après ce développement en arrivera d'autres avec d'autres fichiers.
En espérant qu'une bonne âme disponible pourra vous aider. 😉
Bonjour Salbingu,
Désolé, je jette l'éponge.
Nous ne sommes plus dans une aide mais dans un développement complet qui va demander beaucoup de temps, plus que j'en ai de disponible.
D'autant que les deux bases ne sont pas strictement identiques, par exemple vous avez TAKOUGANG née FOTSING Matuekam d'un coté et TAKOUGANG née FOTSING de l'autre, et je pense qu'il y en a d'autres. Ce qui obligera à gérer les différences, ce sera long, compliqué et chronophage.
De plus les plannings classes vont de 7:30 à 12:00, les plannings enseignants de 7:30 à 17:00, ce qui veut dire qu'après ce développement en arrivera d'autres avec d'autres fichiers.
En espérant qu'une bonne âme disponible pourra vous aider. 😉
Bonsoir. Je reviens vers vous avec des fichiers allégés.
Je suis assez bon autodidacte et je sais que ce qui marche pour une cellule peut être implémenté dans une autre.
Alors mon souci :
L'onglet ABDOUL née SAMIRAH GARBA est le nom de l'enseignant de His-Geo-ECM de la 1ère D4 par exemple.
Ce que je veux.
1- lire le nom de l'onglet (ABDOUL nee Samirah) dans emplois enseignants ;
2- rechercher toutes les cellules qui contiennent ce nom dans emplois du temps classes.
3- Écrire le nom de la classe dans les cellules correspondants aux même horaires dans l'emploi du temps personnel de samirah.
Merci de bien vouloir eayer encore.
Il n'y a pas de fichiers attachés donc j'ai travaillé avec les précédents.
En PJ un premier essai. Avec :
VB:
Sub Calcul()
' figeage de l'écran pour accélération. ICI mis en commentaire pour la mise au point de la macro.
'Application.ScreenUpdating = False
' Dernière ligne de la liste des profs
Derlig = Sheets("Liste").Range("A1000").End(xlUp).Row
' Effacement des flags de suivi en colonne E
Range("E2:E500").ClearContents
' Pour tous les profs
For N = 2 To Derlig
' Récupérer le nom du prof dans NomProf
NomProf = Sheets("Liste").Cells(N, 1)
' X dans la liste pour se reperer en cas de soucis
Sheets("Liste").Cells(N, "E") = "X"
' Activer la feuille du prof
Sheets(NomProf).Activate
' Ecriture suivi dans Statusbar
Application.StatusBar = " ( " & N & "/" & Derlig & " ) " & "Traitement de la feuille " & NomProf
' Pour toutes les feuilles des plannings
For Each Sh In Workbooks("EMPLOIS DU TEMPS DEFINITIFSFMATIN.FINAL.xlsm").Sheets
' On mémorise dans quelle classe on est ( récupération du nom de l'onglet )
NomClasse = Sh.Name
' Pour toutes les lignes du planning de la classe
For L = 5 To 10
' Pour toutes les colonnes du planning de la classe
For C = 2 To 6
' Si la cellule contient le nom du prof.
If Sh.Cells(L, C) Like "*" & NomProf & "*" Then
' On récupère le créneau horaire en colonne A
CréneauHoraire = Sh.Cells(L, 1)
' Le planning prof commence en B7, celui des classes en B5, donc Offset 2
' On écrit la classe dans le bon créneau horaire du bon jour.
Sheets(NomProf).Cells(L + 2, C) = NomClasse
End If
Next C
Next L
Next Sh
Next N
Application.StatusBar = ""
End Sub
La macro se lance avec un bouton dans la page Liste.
J'ai détecté quelques problèmes de pages, que j'ai résolu en créant des feuilles vierges pour que la macro aille jusqu'au bout.
Je n'ai rien contrôlé au niveau des plannings profs.
... Bon courage.
Bonsoir,
Il n'y a pas de fichiers attachés donc j'ai travaillé avec les précédents.
En PJ un premier essai. Avec :
VB:
Sub Calcul()
' figeage de l'écran pour accélération. ICI mis en commentaire pour la mise au point de la macro.
'Application.ScreenUpdating = False
' Dernière ligne de la liste des profs
Derlig = Sheets("Liste").Range("A1000").End(xlUp).Row
' Effacement des flags de suivi en colonne E
Range("E2:E500").ClearContents
' Pour tous les profs
For N = 2 To Derlig
' Récupérer le nom du prof dans NomProf
NomProf = Sheets("Liste").Cells(N, 1)
' X dans la liste pour se reperer en cas de soucis
Sheets("Liste").Cells(N, "E") = "X"
' Activer la feuille du prof
Sheets(NomProf).Activate
' Ecriture suivi dans Statusbar
Application.StatusBar = " ( " & N & "/" & Derlig & " ) " & "Traitement de la feuille " & NomProf
' Pour toutes les feuilles des plannings
For Each Sh In Workbooks("EMPLOIS DU TEMPS DEFINITIFSFMATIN.FINAL.xlsm").Sheets
' On mémorise dans quelle classe on est ( récupération du nom de l'onglet )
NomClasse = Sh.Name
' Pour toutes les lignes du planning de la classe
For L = 5 To 10
' Pour toutes les colonnes du planning de la classe
For C = 2 To 6
' Si la cellule contient le nom du prof.
If Sh.Cells(L, C) Like "*" & NomProf & "*" Then
' On récupère le créneau horaire en colonne A
CréneauHoraire = Sh.Cells(L, 1)
' Le planning prof commence en B7, celui des classes en B5, donc Offset 2
' On écrit la classe dans le bon créneau horaire du bon jour.
Sheets(NomProf).Cells(L + 2, C) = NomClasse
End If
Next C
Next L
Next Sh
Next N
Application.StatusBar = ""
End Sub
La macro se lance avec un bouton dans la page Liste.
J'ai détecté quelques problèmes de pages, que j'ai résolu en créant des feuilles vierges pour que la macro aille jusqu'au bout.
Je n'ai rien contrôlé au niveau des plannings profs.
... Bon courage.
Bonjour Salbingu,
Comme je n'ai ni à faire la mise au point, ni surtout la vérification, je peux m'amuser. 🙂
J'ai rajouté dans le fichier une feuille Classes.
Un appui sur le bouton rapatrie tous les noms des classes.
Un appui sur le nom d'une classe rapatrie le planning de cette classe. Rapide et efficace.
Je pense que cela peut vous être utile pour voir un planning sans fouiller dans toutes les feuilles.
( évidemment on ne peut pas modifier un planning à partir de cette page, c'est juste de la visualisation. )
Bonjour Salbingu,
Comme je n'ai ni à faire la mise au point, ni surtout la vérification, je peux m'amuser. 🙂
J'ai rajouté dans le fichier une feuille Classes.
Un appui sur le bouton rapatrie tous les noms des classes.
Un appui sur le nom d'une classe rapatrie le planning de cette classe. Rapide et efficace.
Je pense que cela peut vous être utile pour voir un planning sans fouiller dans toutes les feuilles.
( évidemment on ne peut pas modifier un planning à partir de cette page, c'est juste de la visualisation. )
Bonsoir sylvanu. C'est toujours un plaisir de vous lire. Votre idée est géniale et me sera effectivement d'une grande aide.
Votre message arrive alors que je travaille sur un changement conditionnel de la couleur de l'onglet.
Merci à vous
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD