Fonction "MkDir" avec création de sous-dossier

Bonjour,

Je suis enseignant et accessoirement un gros noob avec Excel . J'ai un classeur dans lequel plusieurs fonctions ont été aménagé. La base de calcul a d'ailleurs été admirablement préparé par un membre de ce forum. J'ai simplement transposé les formules en modifiant quelques éléments. Je précise que je n'y connais pas grand chose en programmation VBA mais en observant les formules générales j'ai réussit à transposer pour ce dont j'avais besoin dans l'immédiat. Il reste cependant quelques zones d'ombres. Il manque notamment une fonction qui est assez essentielle : la création de dossier et de sous-dossier à partir d'un formulaire Excel (en gros il faudrait qu'un dossier indiquant le classe se crée, genre 3èmeE, puis à l'intérieur un dossier par élève avec le format "nom/prénom" pour respecter l'ordre alphabétique). Je suis sur ce document depuis un moment...et j'ai beau chercher je ne comprend pas comment on applique les formules que j'ai trouvé. Cependant une semble être tout à fait ce que je recherche mais la simple modification de coordonnée ne fonctionne pas. J'ai visiblement merdé quelque part. Elle a été crée dans ce forum justement mais je n'arrive pas à l'appliquer à ma situation...si une âme charitable pouvait m'éclairer...

PS : vous trouverez la version "légère" de mon document puisqu'il était trop lourd en version intégral. Cela dit c'est la première page qui importe, le reste est déjà au point et opérationnel.

99evaluation-4eme.xlsm (194.48 Ko)

Bonjour

Le dossier à créer c'est dans le fichier ou dans un répertoire de ton ordi ??

Autre chose, les boutons en colonne C auraient pu être remplacés par un double clique sur le nom de l'élève. Cela évitait de mettre des objets sur la feuille qui pose toujours un souci à l'utilisation.

A te relire

Bonjour,

Les dossiers sont à créer sur l'ordi d'où la fonction MkDir (enfin si j'ai bien compris son fonctionnement final ). En fait ils sont là pour stoker les travaux numériques des élèves et du coup être plus efficace sur l'évaluation.

Concernant le double-clic, j'avoue que je n'y avais pas pensé, mais cette fonction ne se crée pas avec un bouton, non ? J'ai découvert cette fonction récemment et je kiffe !!! D'ailleurs je ne savais pas que ce genre d'objet posait des problèmes à l'utilisation. Je me suis dit qu'il était intéressant de passer par un système numérique pour le renvoie aux différentes fiches vu que c'est un document que je souhaite utiliser d'une année sur l'autre...et comme les classes changent tout le temps. En gros avec ce document j'essaie d'avoir un outil qui fait passer le temps de création de ces différents dossiers de quelques heures à quelques minutes...histoire de gagner beaucoup de temps et d'énergie, qui reste vitale dans ce job.

A très vite...

re

Concernant le double-clic, j'avoue que je n'y avais pas pensé, mais cette fonction ne se crée pas avec un bouton, non ? J'ai découvert cette fonction récemment et je kiffe !!! D'ailleurs je ne savais pas que ce genre d'objet posait des problèmes à l'utilisation. Je me suis dit qu'il était intéressant de passer par un système numérique pour le renvoie aux différentes fiches vu que c'est un document que je souhaite utiliser d'une année sur l'autre...et comme les classes changent tout le temps

Evite les objets sur une feuille, c'est toujours mieux. Ici tu n'as rien à changer hormis la suppression des boutons que je te propose. Double clique sur le nom te renverra sur la feuille concernée. Si tu le souhaites je te ferai une proposition

Pour le répertoire, il faut que je connaisse le disque souhaité. On part d'un disque C:\ ? ou autre ?

Puis une donnée intéressante serait de savoir, quel est le répertoire par rapport au fichier Evaluation

A te relire

Hello,

Je suis preneur pour ta proposition de double-clic. En fait au niveau du principe, je ne sais pas si tu as pu le constater mais j'ai fait un renvoie sur les différentes feuilles concernées. En gros quand je rentre un nom et un prénom dans les cases, ceux-ci se reproduisent sur la bonne feuille. D'ailleurs j'ai fait de même avec la classe. Ici il est indiqué "4ème", mais lorsque je fais la précision par exemple "4èmeE" ou alors "4E", celle-ci est notée sur la feuille individuelle. Cette façon de faire n'est pas optimale mais bon contrairement à l'année dernière où j'avais une fiche élève par trimestre, le tout multiplié par 18 classes, ça faisait beaucoup...maintenant je n'ai plus qu'un classeur Excel par classe pour l'année entière...héhé. C'est mieux.

Concernant le chemin il est sous cette forme D:\TRAVAIL\2012-2013

En fait, je vais créer un dossier par année dans lequel il y aura ces fiches. Le principes c'est qu'en début d'année le dossier "2012-2013" par exemple contiendra un exemplaire de chaque classeur Excel (6ème, 5ème, 4ème, 3ème). Ensuite après avoir obtenue la liste des élèves avec le nombre de classe, il me suffira de dupliquer les classeurs Excel et de les renommer en fonction des classes. La saisie des noms des élèves créera le dossier de la classe contenant les dossiers par élève. Après j'ai juste à faire glisser le classeur Excel correspondant dans le dossier classe pour avoir mon outil d'évaluation à porter de clic.

J'espère que je suis assez clair sur la façon de fonctionner...après il doit bien sûr y avoir de meilleurs moyens mais dans l'état actuel de mes connaissances dans ce logiciel c'est tout ce que j'ai sortie...argh, la connaissance est la puissance !!!

Merci à toi Dan de t'intéresser à mon cas pathologique...héhé

Ha oui, j'oubliais. Enfin c'est peut-être inutile de le préciser puisque je pense que tu l'as déjà vu mais j'ai affecté une macro au bouton de création des dossiers. Si j'ai lut correctement, il me semble que c'est ce type de code mais je pense avoir mal attribué les coordonnées puisqu'il ne fonctionne pas...Bref, pour moi c'est un peu la lose...

Re,

Je suis preneur pour ta proposition de double-clic.

Dans ton fichier, fais un clique droite sur le feuille liste élèves et colle le code ci-dessous

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Macro Dan pour Mike2106
On Error Resume Next
If Not Intersect(Target, Range("D4:D33")) Is Nothing Then
Sheets(CStr(Target.Row - 3)).Select
End If
End Sub

Un double clique sur le nom de l'élève en colonne D te renverra sur le numéro de la feuille concernée.

Il est supposé que le nom de tes feuilles est un numéro (1, 2,3 .... )bien entendu.

De là tu peux enlever les boutons qui se trouvent en colonne C

Je vois pour le reste de ta demande et reviens toi sous peu

Amicalement

Super,

Je vais tester ça aujourd'hui même. Si ça allège mon fichier c'est au top. Merci beaucoup.

A plus Dan

re,

Si ça allège mon fichier c'est au top. Merci beaucoup.

Un truc à absoulement changer, c'est le fond blanc que tu as mis dans chaque. A ne jamais faire. Là tu alourdis ton fichier inutilement.

  • Va dans Format / Cellule --> onglet "Motif", remet la couleur à "aucune couleur" et ce dans chaque feuille
  • Va ensuite dans Outils / Option et sous l'onglet "Affichage", décoche l'option "Quadrillage"

Amicalement

Edit Dan : Pour la gestion des dossiers, est-ce bien ceci que tu veux

  • Chaque année tu crées un dossier "Année" (ex : 2012-2013)
  • Ensuite tu crées un fichier pour chaque classe (ex : 6eme, 5eme, 4eme)
  • Ensuite dans le feuille élèves tu complètes les noms d'élèves relatifs à chaque classe.

La structure finale du répertoire serait la suivante :

D:\TRAVAIL\2012-2013\classe_6eme

D:\TRAVAIL\2012-2013\classe_5eme

D:\TRAVAIL\2012-2013\classe_4eme

D:\TRAVAIL\2013-2014\classe_6eme

D:\TRAVAIL\2013-2014\classe_5eme

Questions :

  • Où se trouve le classeur original
  • Ne devrais-tu pas inclure l'année scolaire 2012-2013 dans une cellule de la feuille élève. Elle servirait à créer le dossier dans le répertoire
  • Pourquoi ne crées tu pas un fichier modèle avec extention XLT et duquel tu pourrais créér ton fichier classe

A te relire

Re,

Merci pour l'astuce "case blanche"...par contre une question : comment tu colles le code que tu m'as fournit pour que les cases soient double-clicable parce que j'ai testé pleins de trucs et il n'y a rien à faire, ça me colle le code comme si c'était un texte quelconque.

Pour répondre plus clairement que je ne l'ai fait précédemment voici la structure de l'ensemble des dossiers :

D:\TRAVAIL\2012-2013\6A\Anniston_Jennifer

D:\TRAVAIL\2012-2013\6A\Cox_Courtney

D:\TRAVAIL\2012-2013\6A\Jolie_Angelina

D:\TRAVAIL\2012-2013\6A\Pitt_Brad

D:\TRAVAIL\2012-2013\6B\Blanc_Michel

D:\TRAVAIL\2012-2013\6B\Halliday_Johnny

D:\TRAVAIL\2012-2013\6B\Tautou_Audrey

D:\TRAVAIL\2012-2013\6B\Zinedine_Zidane

En gros, il y aurait le dossier année "2012-2013", à l'intérieur duquel se trouve les dossiers classe "6A, 6B, 6C, 5A, 5B, 5C, 4A...", à l'intérieur desquels se trouve chaque dossier élève "Anniston_Jennifer, Cox_Courtney, Jolie_Angelina, Pitt_Brad..." dans l'ordre alphabétique commençant par le Nom. Actuellement je crée tout ça manuellement...tu comprends que j'ai fait une recherche pour voir si cela ne s'automatisait pas avec un logiciel...

En fait le document Excel relatif à l'évaluation je le mettrais après dans chacune des classes. Chaque classe aura son fichier Excel d'évaluation.

Je sais que c'est très lourd à gérer tout ça, mais en même temps j'ai dans les 500 élèves, alors si je ne veux pas me perdre il faut que je m'organise. Je ne sais pas si c'est la meilleure façon de faire mais pour le moment je suis sur ce type de fonctionnement...

Concernant tes questions finales :

  • Le classeur original est conservé dans un dossier à part. Je fais simplement un copier/coller et je fais mes modifications.
  • En effet, c'est une très bonne idée d'inclure dans le fichier modèle une case avec l'année en cours, du coup ça créerait le dossier contenant le tout...par contre il ne faudrait pas que la création soit réalisée à chaque fois. Il me semble que le code que j'ai tenté d'utiliser sur mon bouton "création de dossier" inclus une recherche des dossiers déjà existant...
  • Je ne connaissais pas l'existence de ce type de fichier, cela dit j'en ai entendu parlé pour Word avec une autre extension bien sûr mais j'ai jamais trouvé...

Merci pour ton investissement, c'est vraiment sympa. Et tes questions me font entrevoir des possibilités que je n'envisageais pas...ce logiciel est vraiment complexe à mettre en œuvre parce qu'il est riche en possibilité.

A+

re,

comment tu colles le code que tu m'as fournit pour que les cases soient double-clicable parce que j'ai testé pleins de trucs et il n'y a rien à faire, ça me colle le code comme si c'était un texte quelconque.

Où as-tu collé le code ??

  • Copie le code que je t'ai donné
  • Clique droite sur la feuille Liste élèves.
  • choisis l'option "visualiser le code" et colle le code dans la fenêtre.

A te relire

Salut,

C'est génial comme fonction !!!! Merci, je viens de découvrir de nouveaux trucs grâce à toi . J'ai bien réussit à l'appliquer correctement. Du coup je vais faire les modifications sur mes quatre fiches (j'en ai une par niveaux, forcément).

A+

re

En gros, il y aurait le dossier année "2012-2013", à l'intérieur duquel se trouve les dossiers classe "6A, 6B, 6C, 5A, 5B, 5C, 4A...",

Je te propose de modifier ta feuille élèves comme suit :

  • En D2 : ANNEE
  • EN E2 : 2012-2013
  • En H2 : Classe
  • En I2 : on ne met pas 4ème mais plutôt 4A. cette cellule variant pour chaque fichier concernant une classe.

Sur base de ce que e te propose on fera un code qui te permettra de sauver les feuilles 1, 2, 3.... correspondant à chaque élève dans le répertoire D:\....... comme tu l'as précisé avant.

D'une manière plus générale, évite les accents et espaces dans le nom de tes feuilles, fichiers, etc... Il arrive toujours des soucis à l'utilisation. Mets plutôt un - ou un _ pour remplacer les espaces.

A te relire sur ma proposition

Amicalement

Bonjour,

J'ai fait la modification que tu proposes. C'est drôle j'ai presque l'impression de faire un toucher-couler. Si je comprend bien la case année servira pour la création du dossier correspondant, vu qu'elle sera modifiable chaque année. Merci pour le conseil au niveau des accents. Je ferais attention dorénavant.

A+

re

Si je comprend bien la case année servira pour la création du dossier correspondant, vu qu'elle sera modifiable chaque année.

exactement, tu as tout compris !

Je reviens plus tard avec le code qu'il te faut

Amicalement

Dan a écrit :

D'une manière plus générale, évite les accents et espaces dans le nom de tes feuilles, fichiers, etc...

Le merveilleux monde à l'envers d'Excel, demander à un enseignant d'écrire en faisant volontairement des fautes

Re,

Lol ! Zirak

Encore une question par l'exemple. On suppose que l'on sauve la feuille 1 pour l'élève 1.

En G2, K2, Q2 tu as des formules qui reprennent le nom et le prénom de l'élève et la classe.

Je suppose qu'à la création du dossier, le lien avec le classeur d'origine doit être rompu. Par contre les formules en colonne U à AE doivent être conservées ou non ??

Auttre remarque : évite les fusions dans les cellules (G2, K2, Q2) , tu risques toujours d'avoir un souci surtout lorsque tu fais appel à des codes VBA.

A te relire

Re,

Héhé, pas mal Zirak !!

Je vais enlever les fusions, c'était juste pour centrer les Nom et Prénom dans leur case...juste une question de mise en forme en somme (je suis prof d'arts plastiques, j'aime les mises en forme...). Par contre je me pose une question : veux-tu sauver les feuilles une par une parce qu'elles doivent être présentes ensembles dans un seul classeur qui regroupe toute la classe. Pour l'évaluation c'est plus simple surtout pour le comparatif de moyenne.

En revanche les colonnes U à AE doivent être conservées puisqu'elles servent au calcul de la moyenne de l'élève en fonction de la lettre ou des lettres indiquées dans les cases trimestrielles.

Sinon concernant le lien avec le classeur d'origine n'a plus lieu d'être dans la mesure où le classeur "classe" est crée. Il devient donc autonome.

Une petite question : est-il normal que le copier/coller ne conserve pas du tout la mise en forme ? En gros, quand je me suis attelé à la fabrication de ces fiches il n'y avait qu'une fiche, avec une seul case pour l'évaluation et les moyennes. J'ai donc modifié les formules pour qu'elles s'adaptent aux différentes coordonnées, etc., etc. (il a d'abord fallut que je comprenne leur fonctionnement) J'ai aussi crée le tableau avec les différentes formules et compagnie...ça m'a pris des heures pour tout faire !!! I'm a big noob !!! Une fois ma superbe fiche élève terminée avec mon jolie tableau, j'ai dû copier/coller 30 fois (pour chaque niveau ) mais la mise en forme était différente. J'ai testé aussi avec collage spécial...bref, du coup j'ai tout refais fiche par fiche...voilou. C'était juste pour savoir s'il y avait un moyen que contourner ce problème. Bon tout est fait maintenant, mais c'est juste pour savoir, histoire de ne pas mourir idiot.

A+

re,

Par contre je me pose une question : veux-tu sauver les feuilles une par une parce qu'elles doivent être présentes ensembles dans un seul classeur qui regroupe toute la classe. Pour l'évaluation c'est plus simple surtout pour le comparatif de moyenne.

Je suppose que tu pars d'un classeur dans lequel se trouve toutes feuilles des élèves repris dans la liste d'élève, et que l'on sauve chaque feuille dans lé répertoire de la classe concernée. Donc ici D:\travail\2012-2013. En gros par défaut ton classeur comporte une feuille élève et 30 feuilles prédéfinie et prévue pour chaque élèves. Ce sont ces 30 feuilles que l'on va sauver dans le répertoire de la classe. Une fois fait, tu supprimes la liste délèves et tu recommences pour la classe suivante. Ou alors tu as un classeur de référence pour chaque classe avec 30 feuilles prévues.

petite question : est-il normal que le copier/coller ne conserve pas du tout la mise en forme ?

Oui car lorsque tu colles, tu le fais sur une nouvelles dont les cellules sont définies par excel

Par contre si tu fais comme ceci, cela t'évite tout le travail que tu as fait....

  • mettons ta feuille 1 mise en forme
  • clique sur l'onglet de ta feuille 1 et maintiens le bouton gauche enfoncé (lol ! si tu es droitier... bien sûr ). Tu vois une icone en forme de feuille sur le nom de l'onglet
  • Appuie sur la touche CTRL de ton clavier (tu vois un petit + dans l'icone)
  • déplace ta feuille à coté de la feuille 1 et relache le bouton de la souris et la touche.
  • vois le travail... ... Voilà ta feuille copiée
Il ne te reste qu'à adapter tes formules pour le nom et prénom

A te relire

Re,

Aaaaaaaaaaaaaargh, quelle manip simplissime !!!!! Pourquoi je n'ai pas posé la question avant !!! J'ai pourtant cherché cette manip sur le net sans succès. J'ai passé un temps hallucinant à tout remettre en forme...Merci maître Jedi.

Sinon concernant le fichier...en gros il faut qu'existe pour chaque classe un classeur au nom de la classe contenant la première feuille qui est appelé pour l'instant "Liste_élève" (qui est la liste des élèves qui sert de récapitulatif des moyennes et de navigation dans les différentes feuilles du classeur), et les 30 feuilles qui sont les fiches individuelles pour chaque élève (qui elles permettent réellement l'évaluation de chaque élève d'un trimestre à l'autre).

Et effectivement une fois le nouveau classeur crée et enregistré au bon endroit je supprime la liste dans le classeur d'origine et je recommence pour la classe suivante et ainsi de suite...

A+

Rechercher des sujets similaires à "fonction mkdir creation dossier"