Nouveau classeur à partir d'un model

Bonsoir à toutes et à tous,

Il s'agit d'un générateur de plans de travail, la feuille master permet de fabriquer les différents plans de travail d'après le titre du projet et le nombre d'épisodes( ce qui génère autant d'onglets reprenant le titre + le numéro d'épisode incrémenté). Je souhaiterais que ces nouvelles feuilles constituent un nouveau classeur (reprenant le nom du titre) au lieu de s'ajouter au classeur master initial. Il faudrait également tester l'existence du classeur pour éviter les doublons ou l'écrasement si on appuie plusieurs fois sur le bouton. Actuellement, le fait d'appuyer plusieurs fois sur le bouton provoque le plantage car les onglets existent déjà dans le classeur.

Je vous remercie pour votre aide, le fichier est en PJ.

Dul

Salut Dul,

Je te propose un fichier ci-joint qui répond partiellement à ta demande.

Lorsque tu lances la nouvelle macro placée derrière ton ancien bouton, un nouveau fichier est généré, il est renommé selon le titre indiqué, il est enregistré dans ton arborescence au même chemin que le fichier de base (s’il faut l’enregistrer ailleurs, il faudra en préciser le chemin) et il y a autant de feuilles que désirées. Sur ces nouvelles feuilles, les boutons en place sur la feuille modèle sont effacés, ainsi que la colonne BC devenue inutile selon moi.

Pour le numérotage des épisodes, je te propose une solution plus propre dans les cellules V1 de chacune des feuilles à la place de ta solution par les cellules AF1.

Pour l’instant je n’ai rien prévu si tu lances deux fois la macro avec le même titre en BC5. Mais si c’est par simple inadvertance que tu lancerais deux fois la macro avec le même titre, j’ai déjà vidé la cellule BC5 avant de refermer le fichier de base ; est-ce que ça suffirait ? Si non, quelles sont les raisons qui feraient que le même titre serait indiqué deux fois ? Selon ta réponse, je pourrais voir s’il vaut mieux rechercher dans ton arborescence si ce titre a déjà été utilisé ou s’il faut chercher une autre solution.

A la fin de la macro, le fichier de base est refermé sans modification à part l’effacement de la cellule BC5. A voir s’il vaudrait mieux qu’il reste ouvert pour une prochaine utilisation.

En l’état actuel, si tu lances deux fois le fichier avec le même titre, la macro plante et le nouveau fichier créé reste ouvert à moitié préparé.

Cordialement.

Bonjour Yvouille,

Je te remercie pour ton code, la création du nouveau fichier est parfaite et règle le problème des doublons, je vais ajouter un choix pour le chemin.

Effectivement les éléments de la colonne BC sont devenus inutiles après la création du nouveau fichier.

Pour la numérotation, j'ai modifié la feuille master en ajoutant un Userform "réglages" avec des boutons radio, car il y a de nombreuses possibilités, plus que prévues, je n'ai pas encore codé cette partie, ce sera pour ce weekend, l'idée serait la suivante:

- Série ou Film (long-métrage) on sélectionne ici le type de numérotation:

Pour la série, la première séquence prendra le numéro d'épisode + le numéro de séquence (par exemple pour l'épisode N°5 on aura 501,502,503, etc....). Se pose le problème de la 1 ère feuille pleine (par exemple, s'il y a beaucoup de personnages, tous les noms sont occupés et on doit commencer une seconde page, il faut alors indiquer le premier numéro de séquence de la seconde page, d'où le champs "commencer à").

Pour le film, on aura le N° de bobine + le numéro de séquence ( par exemple 101 = première séquence de la bobine 1.

302 = deuxième séquence de la bobine 3.). Et le même problème de 1ère feuille pleine, avec la possibilité de commencer la seconde feuille au numéro de séquence suivant.

Le bouton commencer au start prend pour la série le numéro d'épisode + le numéro de boucle et commence à la séquence 1,

idem pour le film mais avec le numéro de bobine.

J'ai ajouté les onglets comédiens et rôles que l'on retrouve dans la feuille master sous forme de listes déroulantes, il faudrait que ces deux feuilles soient accessibles dans le fichier généré, je n'ai pas réussi, ces deux feuilles sont générées mais dans d'autres nouveaux fichiers... Tout cela n'est sans doute pas très clair, j'avance un peu chaque soir.

Le nouveau fichier est en PJ.

Dul.

25croisilles-v4.xlsm (46.46 Ko)

Salut,

dul a écrit :

Tout cela n'est sans doute pas très clair, j'avance un peu chaque soir.

Il y a effectivement une chose qui n'est pas très clair ; as-tu encore besoin d'aide de notre part ou non ? Et si oui, à quel propos !

Amicalement.

Salut,

Oui, pour recopier les feuilles comédiens et rôles dans le nouveau fichier et pas ailleurs.

Dul.

Re,

Ta manière de faire et de communiquer n’est pas idéale pour un Forum.

Tout d’abord tu essaies tout plein de trucs assez abracadabrants puis tu nous appelles en pompiers pour éteindre l’incendie que tu as allumé.

Lorsque tu veux nous dire où se trouve le feu à éteindre, tu nous décrits chaque recoin de la forêt, ce qui nous est complètement égal et qui nous empêche de découvrir le foyer rapidement.

Je ne suis pas parti de ton nouveau fichier V4 dans lequel tu as semble-t-il effectuer des modifications exotiques, mais j’ai repris ma version V3 et l’ai modifiée selon ta dernière nouvelle demande.

Cordialement.

Bonsoir Yvouille,

Je suis bien désolé de ma manière de communiquer, mais je n'ai ni appelé de pompiers, ni allumé d'incendie, il s'agit pour moi uniquement de recherches techniques, abracadabrantes sans doute, exotiques certainement, en tout cas sans danger pour autrui. J'étais dans une idée globale et je me suis écarté de ma question initiale, mille pardons. Je te remercie pour ton nouveau fichier, les onglets comédiens et rôles sont bien présents, mais comment faut-il procéder pour qu'ils soient accessibles sur chacune des nouvelles feuilles créées, comme sur la feuille master du V4, sous forme de listes déroulantes.

Cordialement.

Dul

Re-bonjour,

J’ai pris en charge ton sujet car tu avais un fichier assez simple comme modèle et que je pensais que je pouvais t’aider sans trop de complication. Tu n’avais par exemple pas de liste de validation dans tes cellules C2:AJ2 de la feuille ‘’Master’’ du tout premier fichier modèle fourni que tu avais nommé ‘’generateur croisilles essai 2’’.

Maintenant que je t’ai aidé sur la première et la deuxième partie de ton problème, tu m’indiques que ta feuille de base contient des listes de validation que tu voudrais voir reportées sur tes nouveaux fichiers créés. Pour moi il s’agit d’une nouvelle demande et j’ai l’impression que si je réponds à cette nouvelle demande, il y en aura une qui va suivre.

Je me permets de t’indiquer comment tu peux reporter des listes de validation sur une nouvelle feuille, mais je ne vais pas t’aider plus loin si tu as de nouvelles demandes. Dans le fichier ci-joint, à la suite de la duplication de la feuille ‘’Master’’, des listes de validation sont inscrites dans la plage C2:AJ2 de chacune des feuilles dupliquées.

Pour cette partie du travail, j'accepte bien entendu de continuer à t'aider à comprendre ce qui a été mis en place.

Cordialement.

Bonjour Yvouille,

Merci pour la poursuite de ton aide. J'ai regardé avec beaucoup d'attention ton code qui ajoute les listes de validation dans la plage C2:AJ2 de chacune des nouvelles feuilles grâce à la boucle J, mais les listes sont ajoutées sur la feuille "rôles", l'une en C2 l'autre en D2. Je ne comprends pas comment la feuille "rôles" à été sélectionnée ainsi que C2 et D2 car je ne retrouve pas (sauf dans tes commentaires à la suite de la macro) les instructions qui réalisent cette action. Pourrais-tu me l'expliquer, merci.

Dul.

Salut,

Les instructions en ‘’commentaire’’ ne sont qu’un passage intermédiaire que j’ai oublié d’effacer. J’avais enregistré une macro en sélectionnant la cellule C2, en y plaçant une liste de validation en rapport avec la feuille ‘’Comédiens’’ puis en sélectionnant la cellule D2 et en y plaçant une liste de validation en rapport avec la feuille ‘’Rôles’’.

Puis j’ai modifié cette base de manière à pouvoir placer des listes de validation en boucle (For j = 3 To 36 Step 2 / Next j). Cette boucle va de deux en deux (Step 2), elle boucle donc sur les chiffres 3, 5, 7, 9, ………35). On aurait donc tout autant pu écrire ….. To 35 à la place de To 36 ; petite imprécision de ma part mais qui ne change rien puis que le prochain passage aurait été 37 qui est plus grand que 36 et donc déjà hors-boucle .

A chaque passage de cette boucle, je place en premier une validation dans les cellules Cells(2, j) par l’instruction

With Cells(2, j).Validation, soit dans les cellules Cells(2, 3), Cells(2, 5), Cells(2, 7), Cells(2, 9), ……….. jusqu’à Cells(2, 35) OU, dans un autre langage, dans les cellules C2, E2, G2, I2 ……. Jusqu’à AI2. Tu vois dans le code que cette validation se réfère à la feuille ‘’Comédiens’’.

Dans la deuxième partie de cette boucle, je place une autre validation dans les cellues Cells(2, j + 1), soit dans les cellules Cells(2, 4), Cells(2, 6), Cells(2, 8 ), Cells(2, 10), ……….. jusqu’à Cells(2, 36) OU, dans un autre langage, dans les cellules D2, F2, H2, J2 ……. Jusqu’à AJ2. Tu vois dans le code que cette validation se réfère à la feuille ‘’Rôles’’.

C’est un peu plus clair ? Si non, je vais essayer d’expliquer autrement.

Amicalement.

Salut,

Je te remercie pour tes explications, je pense avoir compris cette partie. Ce que je ne comprends pas, c'est pourquoi dans le nouveau classeur généré, les listes arrivent sur la feuille "rôles" en C2 et D2 et non pas sur les nouvelles feuilles créés (celles qui reprennent le titre + le numéro), de C2 à AJ2 comme la macro l'indique.

Amistats

Salut,

dul a écrit :

Ce que je ne comprends pas, c'est pourquoi dans le nouveau classeur généré, les listes arrivent sur la feuille "rôles" en C2 et D2 et non pas sur les nouvelles feuilles créés (celles qui reprennent le titre + le numéro)

La dernière fois, j’ai lu un peu en vitesse ton texte et j’ai pensé que tu m’indiquais simplement que ça ne fonctionnait pas comme voulu ; je n’avais pas saisi cette précision que les listes déroulantes arrivaient par erreur en C2 et D2 de la feuille ‘’Rôles’’ et nulle part ailleurs. J’avais alors contrôlé à nouveau mon fichier, mais je n’avais aucune liste sur la feuille ‘’Rôles’’ et des listes dans chaque plage C2:AJ2 de chacune des feuilles nouvellement créées et t'ai fourni une grande explication sur ce que je pensais que tu n'avais pas compris.

J’ai donc recontrôler encore une énième fois le fichier fourni le 22 avril et je ne lui trouve toujours pas de tare. Les listes de validations sont placées sur les feuilles nouvellement créées et non pas sur la feuille ‘’Rôles’’.

Alors deux idées qui me viennent en tête : A) tu as éventuellement modifié mon fichier, tu as éventuellement placé ma macro dans un autre fichier ou que sais-je d’autre dans ce goût-là ou alors B) il se pourrait – mais ça m’étonnerait vraiment – que ça vienne du fait que je travaille sur un PC et toi sur un Mac !?

Si tu as fait tes essais sur la base de mon fichier uniquement, sans modification de celui-ci, peux-tu éventuellement l’essayer chez quelqu’un de tes amis qui aurait également un PC ?

Sinon, je ne sais trop que faire de plus pour toi, puisque chez moi ça passe sans problème

Amicalement.

Salut,

Tu as vu juste: tout fonctionne parfaitement sur PC, la portabilité n'est pas pour demain... Grand mystère sur ces listes qui arrivent en c2 et d2 et ne figurent pas dans le code... Je vais simplifier mon projet pour rester avec mac, le PC est utilisé par d'autres et pour d'autres applications mais pas les miennes

Je te remercie d'avoir passé de ton temps à m'aider.

Amistats

Salut Amistats,

Lorsque tu me dis que les listes arrivent en C2 et D2 de la feuille ‘’Rôles’’, je me dis que Mac réagit peut-être différemment d’un PC qui considère la feuille active comme feuille à traiter.

Je m’explique : Dans le code, après l’instruction Sheets("Master").Copy After:=Sheets(Sheets.Count), tu devrais avoir une feuille nouvellement créée à l’écran et la suite du code devrait s’y référer. Ainsi la ligne suivante Sheets(Sheets.Count).Name = Titre & i devrait renommer cette nouvelle feuille. Par la suite, l’instruction Range("C1") = Titre devrait placer un titre dans la cellule C1 de la feuille active et il serait intéressant de savoir si par exemple ces 2 passages fonctionnent ou non. S’ils fonctionnent, ça veut dire que Mac considère également la feuille active à l’écran comme feuille à traiter, mais alors il n’y a aucune raison que la deuxième boucle For j = 3 To 36 Step 2 / Next j ne fonctionne pas !?!

Autre petit mystère : Si Mac ne considère pas la feuille active comme feuille à traiter, pourquoi n’y a-t-il d’inscription de listes de validation uniquement en C2 et D2 et non pas sur toute la plage C2:AJ2 de la fausse feuille ‘’Rôles’’ ??

Comme ça à l’aveugle, je te propose quand même une petite modification du code qui forcerait de traiter la feuille nouvellement créée à la place de l’ancien code qui traite de manière sous-entendue la feuille active. Il s’agit du passage With Sheets(Titre & i) / End With et des modifications nécessaires entre ces deux instructions. A nouveau, ça passe sans problème sur un PC.

Si tu sais faire aller un code au pas à pas, contrôle quand même encore quelle feuille est visible à l’écran après l’instruction Sheets("Master").Copy After:=Sheets(Sheets.Count) : ça devrait être la feuille nouvellement créée.

Si ceci ne t’apporte aucune satisfaction, je pense que tu pourrais ouvrir un nouveau fil – après avoir indiqué celui-ci comme ‘’Résolu’’ – et indiquer clairement que tu as un code qui fonctionne sur PC qui ne fonctionne pas sur Mac. Tu recevras surement une réponse qu’un ‘’pauvre type à plaindre’’ comme toi qui ne possède pas de PC

Chaleureusement.

Salut Yvouille,

Tout fonctionne ! Ta dernière modification qui précise que l'on travaille sur chacune des nouvelles feuilles à réglé le problème. J'ai essayé le mode pas à pas mais n'ai pas trouvé comment afficher la fenêtre des variables locales avec mac...

Merci infiniment pour ton aide.

Amistats

Dul

Rechercher des sujets similaires à "nouveau classeur partir model"