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

Re,

Ok mais quand sauves-tu les 30 feuilles et les sauves tu une seule fois

J'entends par là que je suppose qu'il s'agit d'une archive et non de sauver les feuilles plusieurs fois dans l'année

C'est ce procédé que je dois bien comprendre car pour moi une fois que tu cliques sur le bouton "création dossier", tu n'y reviens plus.

Là j'imagine ceci :

  • Création d'un classeur pour une classe
  • on complète la liste des élèves d'où les 30 feuilles sont complétées aussi (par formule)
  • enregistrement du classeur de la classe dans un répertoire
  • on complète les données pour chaque élève
  • une fois terminé, on archives les 30 feuilles dans D: --> Travail --> 2012-2013 sous le nom de chaque élève

Au final, on a 30 fichiers contenant une feuille (celle de l'élève concerné)

Tu peux confirmer là car le code est fait dans ce sens

Amicalement

Re,

Concernant ta question il s'agit en fait de créer une seule fois le classeur d'une classe. Une fois que tu clique sur le bouton "création de dossier" tu n'y reviens plus. Cette création intervient seulement en début d'année. Ensuite tout le long de l'année scolaire je vais sur cette sauvegarde pour travailler dessus. En ce sens ce n'est pas totalement une archive puisque je travaille continuellement dessus. Celle-ci se trouve dans le répertoire D:\TRAVAIL\201-2013\4A (pour l'exemple j'ai pris une classe de 4ème, la 4A). Ce document ne devient une archive qu'à la fin de l'année lorsque tout les trimestres ont été évalué.

En fait la dernière étape que tu cites n'est pas obligatoire. Je ne fais pas de sauvegarde de cette feuille d'évaluation individuellement pour chaque élève à la fin de l'année. Je conserve simplement le document qui regroupe toutes les informations et j'archive le répertoire contenant l'année entière. Enfin pour le moment je fais comme ceci. Il est rare que je doive consulter les données d'un élève les années suivantes.

Après si tu as crée une fonction alternative qui permet de sauvegarder dans chaque dossier d'élève (individuellement) sa propre fiche d'évaluation en fin d'année, pourquoi pas (enfin si j'ai bien compris ta dernière phrase). Sinon pour le reste, cela me semble tout à fait ce que j'imagine.

J'espère t'avoir éclairé.

A+

Re,

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.

En fait ma compréhension vient de ce message que tu as posté, précédemment.

Concernant ta question il s'agit en fait de créer une seule fois le classeur d'une classe. Une fois que tu clique sur le bouton "création de dossier" tu n'y reviens plus.

Alors c'est plus simple à faire. utilise cette macro et associe là à ton bouton sur ta feuille Liste élèves

Sub Archiver()
'Macro par Dan pour Mike2106 - le 30/10/2011
Dim annee As String, classe As String, nomfichier As String, chemin As String
With Sheets("Liste_élève")
    annee = .Range("E2")
    classe = .Range("I2")
    chemin = "D:\Travail\" & annee & "\"
    With ThisWorkbook
        On Error GoTo fin
        .SaveAs Filename:=chemin & classe
        .Close
        On Error GoTo 0
    End With
End With
Exit Sub
fin:  MsgBox "Le fichier existe déjà dans le répertoire de travail ! " & chemin
End Sub

J'ai supposé que tu travailles sous excel 2007.

Amicalement

A te lire

Hello,

Je teste ça très vite. Je ne sais pas si j'aurais le net dans les deux jours qui viennent...je te tiens au jus dès que possible. En tout cas merci pour le code, je vais tenter d'en comprendre les différents aspects.

A+

Re,

J'ai une toute petite connexion, oui j'avoue...

Blague à part, je ne comprend pas : je copie et colle la macro sur mon bouton tout jolie mais ça ne marche pas...et je crois que je vais pleurer. Des larmes commencent à couler... . Qu'est-ce qui ne marche pas ?

Au secours !!!!!

Sinon, merci pour le code...

A+

re,

je copie et colle la macro sur mon bouton

Vérifie bien que dans la feuille liste élèves :

  • Le nom de la feuille est bien "Liste_élève"
  • Dans la feuille liste élève, tu as bien l'année en E2 (ex : 2012-2013) et la classe en I2 (Ex: 4A)

Je suppose que tes macros sont bien actives dans excel.

Si souci place ton fichier ici que je le vois.

Amicalement

Salut,

Désolé pour ma petite absence, je n'étais plus dans les parages avec une connexion très faiblarde...de plus la rentrée a commencé à bloc.

Alors j'ai testé mais ça n'a pas marché. Il y a un visiblement un truc que je fais mal mais je ne vois pas lequel puisqu'il s'agit normalement de ne faire qu'un copier-coller...

Je crois bien que je ne sais pas cliquer

Du coup, je te joins le document. Bon là c'est la version des 3ème où J'ai appliqué tes différents conseils.

A+

RE,

Il y a un visiblement un truc que je fais mal mais je ne vois pas lequel puisqu'il s'agit normalement de ne faire qu'un copier-coller...

Heu pas compris là ....

Ici il ne s'agit pas d'un copier coller. Là le code archiver, va sauvegarder ton fichier complété dans le répertoire 2012-2013 en créant un fichier qui s'appellera "3e"

Sinon change cette ligne dans ton code par celle ci-dessous

.SaveAs Filename:=chemin & classe & ".xlsx"
ActiveWorkbook.Close

Amicalement

Re,

Pour le copier-coller, je parlais juste de copier le code que tu as transmis sur le forum et de le coller dans la macro...et c'est là que je ne comprend pas : après avoir activé les macros, Excel me dit ceci :

"Impossible d'exécuter la macro "Evaluation 3ème.xlsm'!Rectangleàcoinsarrondis1_Clic'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées."

Du coup, moi pas comprendre..

Sinon concernant le fonctionnement théorique de ton code je le comprend tout à fait. D'ailleurs je viens de capter un truc : le classeur que je t'ai transmis sur le message précédent n'a pas été enregistrer au bon format (le fameux enregistrement de classeur modèle). Héhé.

A+

re

Mike, une fois ton code copié dans le module, il faut l'associer à ton bouton.

Clique droite sur le bouton puis choisis "associer à une macro" et là sélectionne la macro "Archiver"

Amicalement

Salut,

Désolé pour cette absence. J'ai eu pas mal de chose sur le feu...je vais tester ta manip et je te tiens au courant...Je croise les doigts !!!!

A+

Re,

Je viens de tester. J'ai réussit à associer la macro au bouton...je deviens petit à petit un peu moins boulet . Par contre il me met le message suivant : "Le fichier existe déjà dans le répertoire de travail !" mais celui-ci n'a pas été créé. J'ai essayé avec le premier code et aussi avec la ligne modifiée. Aucun des deux ne semblent fonctionner.

Voilou, je suis désolé pour ce contre-temps fâcheux...

A très bientôt,

Mike

Re,

S'il te mets ce message c'est que tu as déjà un fichier existant dans le répertoire

le message doit aussi te donner le chemin. Donc D:\travail\ ????

Peux-tu me donner le message exact

A te relire

Re,

En effet le message indique le chemin exact : "Le fichier existe déjà dans le répertoire de travail ! D:\travail\2020-2021"

J'ai testé avec d'autres années...j'ai recherché ce fameux répertoire en vain. Pour être sûr, j'ai fais une recherche dans tout l'ordi...Il ne le crée pas. Je ne sais pas quoi faire du coup...

Je te joins le fichier si tu veux. C'est la version avec la ligne de code que tu as ajouté dans un message précédent.

A+

re,

j'ai recherché ce fameux répertoire en vain

Juste une question, c'est le répertoire que tu veux créer ou sauvegarder le fichier dans le répertoire année ??

Le code ne crée pas le répertoire de l'année en E2 bien entendu. Tu dois donc le créer toi -même avant d'utiliser la macro

Merci de tes précisions

AMicalement

Re,

En fait, je croyais que c'était ce qui devait arriver en fait en mettant l'année en E2...au temps pour moi. Cela dit, j'ai effectivement crée le dossier après avoir lut ton message et j'ai activé la macro mais rien ne se passe hormis l'affichage du message dont je t'ai parlé précédemment. As-tu essayé le classeur que je t'ai envoyé ? Peut-être comprendrais-tu où se situe le problème car c'est celui que j'utilise. En gros, il ne se crée pas les fameux dossiers classe et élève dans le dossier année...

L'important est surtout la création des dossiers classes et élèves. La sauvegarde du fichier dans le répertoire année\classe est un bonus plutôt sympathique.

Si tu veux je t'envoie une image de la façon dont est structuré l'ensemble de mes dossiers actuels dans mon ordinateur.

A+

Salut le forum

Sous Excel 2007, une erreur est provoqué, si on tente de sauvegarder

un fichier contenant des macro avec la commande

.SaveAs Filename:=chemin & classe & ".xlsx"

Il faut utiliser

.SaveAs Filename:=chemin & classe & ".xlsx", FileFormat:=51

Mytå

Bonjour Myta,

En effet, ta modification de codage change quelque chose. J'ai une fenêtre qui s'ouvre et qui me demande si je veux enregistrer avec ou sans macro. Si j'enregistre sans, le fichier est crée correctement dans le bon répertoire. En revanche en voulant enregistrer avec macro le même message d'erreur que j'ai noté précédemment apparaît.

Si ce type d'enregistrement est problème insoluble , il est peut-être préférable d'enlever cette fonctionnalité au codage. L'enregistrement du ficher, en créant un classeur modèle, peut se faire manuellement. Ce qui est très important, et qui ne fonctionne pas pour le moment, c'est la création d'un dossier avec le nom de la classe contenant les dossiers des différents élèves.

Merci beaucoup Myta pour cette précision concernant le bug repéré avec la version 2007.

A+

Re

C'est parce que ton fichier est en format XLSX avec des macro. enregistre le d'abord au format XLSM puis utilise le code que je t'ai donné.

Dans le code change aussi le 51 en 52 dans le fileformat proposé par Myta

dis moi si tu as toujours un message qui apparait.

Je ferai un test demain sous XL 2010. Là j'avais tout réalisé sous excel 2000

Amicalement

Re,

J'ai vérifié, le format d'enregistrement est en XLSM (l'icône se présente avec un point d'exclamation). Modifier le 51 en 52 enlève le message qui propose un choix. Du coup, il affiche directement le message d'erreur...celui que j'ai indiqué plus haut...

Argh, mais que se passe-t-il ? Pourquoi il ne veut pas créer les dossiers ? Il est pas gentil ce code...

Du coup, je pense que ton test pourrait peut-être éclaircir la situation...

A+

Rechercher des sujets similaires à "fonction mkdir creation dossier"