XL 2010 creer un classeur a partir d'un autre

ATHE RIOVELI

XLDnaute Occasionnel
BONJOUR le forum,
Je tient tout d'abord à remercier les créateurs de ce forum pour les efforts fournis dans l'amélioration du nouveau design de ce forum.
Permettez moi une fois de plus de solliciter votre aide.
Les macros et formules de ce classeur ont été possible grâce à vous. chapeau à job75 et à tous les autres membres.
Je souhaiterais rendre ce classeur plus professionnel.
Je m'explique :
le classeur actuel est un classeur source.
Un utilisateur qui utilise ce classeur pour la saisir de ces notes, lorsque celui ci à par exemple intervient dans deux écoles et à 2 classes chacunes des écoles donc en tout 4 classes, celui ci fais un copier coller du classeur 4 fois et renomme les fichiers en fonctions des classes et de l'établissement.
Je veux y remédier.
Alors voila que je souhaiterais :
Au niveau de la feuille accueille (feuille1), un bouton " CREER UNE NOUVELLE CLASSE".
Ce bouton permettra de créer une nouvelle classe (un nouveau classeur) qui contient les feuilles trim1, trim2 trim3 , bilan et Odmerite.
Dès qu'on clique sur ce bouton, un userform apparait on renseigne les champs :
Etablissement : ...........................................................
Classe: .........................................................................
Aussitôt les deux champs remplis, un nouveau classeur est ouvert : il est formé des feuilles trim1, trim2 trim3, bilan et Odmerite du classeur source.
Aiinsi l'utilisera ne fera plus de copier coller pour créer des classes.

JE NE SAIS PAS SI J'AI BIEN TRADUIT MES PENSEES, mais c'est un peu ce que je souhaite pour le moment.

MERCI POUR VOTRE AIDE.
A+
Ci joint le classeur : utilisateur et mot de passe sont ADMIN
 

Pièces jointes

  • test OK (Pret à 45%)(7).xlsm
    247.9 KB · Affichages: 51

ATHE RIOVELI

XLDnaute Occasionnel
BONSOIR job75,
C'est maintenant que je viens de comprendre vos formules des trimestres.
c'est parfait, c'est géniale.
Je vous demande de m'excuser pour le temps mis avant de les comprendre.
J'ai toujours dit que vous êtes un visionnaire, un expert, un maître.
Chez nous, on dit : VOUS ETES UN CHEF.

Mais juste une dernière chose:
S'il vous plait, n’arrêtez pas ce projet.
Je ne veux pas qu'il ait assez de fichiers, juste ce seul classeur qui contient toutes les nouvelles classes crées.
Je ne vois pas comment poser le problème.

Après ce parfait userform2 que vous avez crée, moi je suis convaincu que vous pouvez résoudre toutes mes préocupations sur ce projet.
SEIGNEUR DIEU, viens visiter le coeur de Job75 cette nuit afin qu'il revienne sur sa décision.
Mon Dieu, ne le fais pas pour moi, mais pour ces nombreuses personne qui attendent de voir aboutir ce projet.
AMEN.

MERCI job75 A+
 

job75

XLDnaute Barbatruc
Bonjour ATHE RIOVELI, le forum,

Il fallait quand même que je donne le choix entre la création et la consultation d'une classe :
Code:
Private Sub CommandButton1_Click() 'Valider
TextBox1 = Application.Trim(TextBox1): TextBox2 = Application.Trim(TextBox2)
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
If TextBox2 = "" Then TextBox2.SetFocus: Exit Sub
If ComboBox1.ListIndex = -1 Then ComboBox1.DropDown: Exit Sub
Dim chemin$, modele$, fich$, i&
chemin = ThisWorkbook.Path & "\" 'à adapter
modele = "Modele.xltm"
fich = chemin & ComboBox1 & " " & TextBox1 & " Classe " & TextBox2 & ".xlsm" 'à adapter
If fich = ThisWorkbook.FullName Then MsgBox "Vous êtes sur cette classe !", 48: Exit Sub
If OptionButton1 And Dir(fich) <> "" Then MsgBox "Cette classe a déjà été créée...": Exit Sub
If Not OptionButton1 And Dir(fich) = "" Then MsgBox "Il faut créer cette classe...": Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
On Error Resume Next
If OptionButton1 Then
  With Workbooks.Open(chemin & modele)
    With .Sheets("1er Trim")
      .[B1] = TextBox1
      .[Q4] = TextBox2
      .[P3] = ComboBox1
    End With
    .Unprotect "ADMIN"
    For i = 1 To .Sheets.Count
      .Sheets(i).Visible = ThisWorkbook.Sheets(i).Visible
    Next
    .Protect "ADMIN"
    .SaveAs fich, FileFormat:=xlOpenXMLWorkbookMacroEnabled '52
    Application.ScreenUpdating = True
    If Dir(fich) <> "" Then MsgBox "La classe de " & TextBox2 & " a bien été créée..." _
      Else .Close False
  End With
Else
  With Workbooks.Open(fich)
    .Unprotect "ADMIN"
    For i = 1 To .Sheets.Count
      .Sheets(i).Visible = ThisWorkbook.Sheets(i).Visible
    Next
    .Protect "ADMIN"
    .Saved = True 'évite l'invite à la fermeture
  End With
End If
Unload Me 'ferme l'UserForm
Application.EnableEvents = True
End Sub

Comme vous le voyez le classeur est protégé (mot de passe ADMIN).

Cette protection est indispensable car l'ordre des feuilles ne doit pas être modifié.

La déprotection/protection est aussi nécessaire dans les macros Workbook_Open et AfficheFeuilles.

Edit : ajouté .Saved = True ainsi que dans Workbook_Open pour éviter l'invite à la fermeture quand il n'y a pas de modification.

Fichiers joints.

Bonne journée.
 

Pièces jointes

  • 2015 - 2016 LYCEE MODERNE DE BOUNDIALI Classe 2nde C1.zip
    469.7 KB · Affichages: 48
Dernière édition:

ATHE RIOVELI

XLDnaute Occasionnel
BONJOUR job75,
J'était justement en train de tout mélanger dans le classeur.
Et quelque me chose dit : vas sur le forum, on se sait jamais.
Et voilà, je suis sur le forum.
Qu'est ce que je découvre ? Job75 à révu le classeur.

MERCI job75, MERCI le forum.
Je vais télécharger ce fichier pour voir.
ENCORE une fois MERCI
A+
 

ATHE RIOVELI

XLDnaute Occasionnel
BONSOIR job75,
C'est maintenant que je comprend, les objets et autre dans la feuille OdM.
S'il vous plait rétirer ces objets et annuler la zone d'impression.
Je crois l'avoir fait mais quand j'enregistre le fichier, plus rien ne marche.
Voici ici joint le classeur
 

Pièces jointes

  • Modele.xlsm
    239.9 KB · Affichages: 31
  • 2015 - 2016 LYCEE MODERNE DE BOUNDIALI Classe 2nde C1.xlsm
    258.2 KB · Affichages: 25

job75

XLDnaute Barbatruc
Re,

Parfait le fichier mais encore un souci:
Lorsqu'on entre les noms au niveau du 1er trim, les noms ne se retrouve plus dans la feuille OdMerite.

Vous avez une mémoire d'oiseau ATHE RIOVELI ? Sur un de vos autres fils j'ai bien précisé :

Il faut abandonner la méthode utilisée précédemment pour alimenter le tableau de la feuille "OdMerite" .

Le tableau est maintenant alimenté uniquement quand on modifie une colonne de notes d'un trimestre.

Le fil :

https://www.excel-downloads.com/thr...s-une-autre-feuille-de-mon-classeur.20009886/

Bonne fin de soirée.
 

ATHE RIOVELI

XLDnaute Occasionnel
OUI OK, j'avais juste oublié.
J'ai vu après avoir envoyé le message.
je reconnais que j'ai été très têtu.
Supprimer sur la feuille OdM tout ce qui gène.
C'est vraiment nuisible pour le classeur. Je viens de le constater.
Lorsque je supprime, les macros ne fonctionne plus comme il se doit.
On ne me confirme plus que la classe à été créer, je ne peut plus la consulter.
 

job75

XLDnaute Barbatruc
Re,

Qu'est-ce que vous racontez ?

Il m'a fallu 15 secondes pour supprimer les objets et la zone d'impression de "OdMerite".

Fichiers joints, aucun problème.

Bonne nuit.
 

Pièces jointes

  • 2015 - 2016 LYCEE MODERNE DE BOUNDIALI Classe 2nde C1(1).zip
    407.5 KB · Affichages: 34

ATHE RIOVELI

XLDnaute Occasionnel
BONSOIR job75,
OK je me suis connecté pour vous dire sans faute vous mais vous aviez déjà répondu.
Mais un souci : Lorsqu'on crée une classe, le nouveau classeur est ouvert (BIEN) mais l'ancien également.
Alors, on ne peut pas trouver une macro qui ferme automatiquement le classeur ancien et laisse ouverte la nouvelle classe?

Excusez moi si je ne fourni pas d'effort en ce moment.
Je suis sur un lit d’hôpital depuis 1 mois. Je demande de temps en temps à la femme de salle de me donner mon ordinateur pour que je consulte des mails. Elle ne me donne que 5 minutes pour pouvoir avoir accès à mon propre ordinateur.

MERCI A+
 

job75

XLDnaute Barbatruc
Bonjour ATHE RIOVELI, le forum,

Mon pauvre ami, je comprends bien qu'à l'hôpital vous ne puissiez pas travailler correctement.

Fermer l'ancien classeur n'est pas forcément une bonne idée car l'utilisateur voudra peut-être y revenir.

Mais c'est tout à fait possible, voyez ces fichiers (2) et les codes :
Code:
'---enregistrement et fermeture du fichier---
If ThisWorkbook.Name Like "*xlsm" Then Application.OnTime 1, "Ferme"
Code:
Sub Ferme()
ThisWorkbook.Close True
End Sub
On constate que cela crée un saut d'écran, on ne peut pas l'éviter.

Pour finir, vous aurez remarqué que si l'on ouvre le fichier Modele.xltm il n'est pas possible de créer une classe à partir de l'UserForm.

Mais on peut la créer en enregistrant manuellement le modèle en .xlsm.

A+
 

Pièces jointes

  • 2015 - 2016 LYCEE MODERNE DE BOUNDIALI Classe 2nde C1(2).zip
    482.3 KB · Affichages: 38
Dernière édition:

ATHE RIOVELI

XLDnaute Occasionnel
BONSOIR job75,
C'est parfait
Merci infiniment pour ce travail.
Je vais maintenant revoir les formules au niveau du tableau statiques de la feuille OdMerite.
il y a un petit souci, mais je vais pas vous déranger pour cela.

Vous voyez, je suis à moitié guérir. Et cela grâce à vous, grâce au forum.
ENCORE UNE FOIS MERCI Job75, MERCI LE FORUM.

Mais, pensez-y :
Si on devrait avoir juste un classeur qui contiendrait toutes ses nouvelles classes que l'on crée ?
En fait au lieu d'avoir plusieurs classeur dans le dossier, un seul classeur ne pourrait pas faire l'affaire ?
On pourrait aussi CREER UNE CLASSE, CONSULTER UNE CLASSE exactement comme celui ci mais avec un seul classeur.

MERCI Job75,
A+
Je dirai aux médecins tout à l'heure que le comprimé qui ma permis véritablement de retrouver la santé est JOB75.
 

job75

XLDnaute Barbatruc
Re,

Il n'est absolument pas gênant d'avoir un classeur pour chaque classe.

Mais si vous voulez un seul classeur avec toutes les classes il faut refaire tout le projet.

Avec une seule feuille par classe qui comprendrait les 3 trimestres et le bilan annuel.

Pour finir j'ai complété le code du bouton en "Feuil1" pour que UserFom2 ne puisse pas être ouvert à partir du fichier modèle :
Code:
Private Sub CommandButton1_Click()
If ThisWorkbook.Name Like "*xlsm" Then UserForm2.Show
End Sub
Fichiers (3).

A+
 

Pièces jointes

  • 2015 - 2016 LYCEE MODERNE DE BOUNDIALI Classe 2nde C1(3).zip
    483.6 KB · Affichages: 39

Si...

XLDnaute Barbatruc
Salut

Je te l’ai déjà dit en réponse à tes messages personnels : pour construire un tel projet il faut commencer par sérier les problèmes et créer une base solide.

Qui va gérer la construction de ce classeur, Toi ? Il faut bien un Gestionnaire qui contrôle tout !

Qui va l’utiliser, des personnes qui n’auront rien à faire au niveau programmation ?

Tu nous donnes 45 % mais du toit, pas de la fondation !

Tu veux contrôler par mot de passe l’accès aux onglets dévolus à chaque utilisateur mais qui sont-ils ?

Tu veux qu’ils saisissent leurs notes mais pour quelles classes ?

Tu ne veux qu’un seul classeur, bien, mais as-tu pensé qu’un nombre de feuilles conséquent accompagnées de formules peut ralentir certains processus.

Voici un exemple (fort incomplet) de base en gardant certaines de tes présentations et sans donner plus de travail à un utilisateur novice que de saisir son mot de passe pour accéder à son dossier puis de sélectionner la classe désirées. Le nombre de macros (hors calendrier) est restreint et celles-ci ne présentent aucune difficulté de programmation.

Les statistiques, emplois du temps, impressions et autres … ne seront abordés que lorsque la première partie sera mise en place et adoptée ! Je n’ai pas fait de contrôles poussés donc il y avoir ici et là des erreurs, des réglages à ajouter.

Tu peux continuer à demander de l’aide pour ces derniers problèmes mais celle-ci ne sera efficace, adaptable qu’avec un contexte bien défini*.

*Job en fait les frais avec toutes ses contributions et mon exemple correspond à sa dernière observation (repartir dans un autre cadre) ;).
 

Pièces jointes

  • BulletinsDeNotes2.xlsm
    145.3 KB · Affichages: 34
  • Gestion établissement scolaire 1.jpg
    Gestion établissement scolaire 1.jpg
    90.3 KB · Affichages: 38
  • Gestion établissement scolaire 2.jpg
    Gestion établissement scolaire 2.jpg
    139.5 KB · Affichages: 42
  • Gestion établissement scolaire 3.jpg
    Gestion établissement scolaire 3.jpg
    148.8 KB · Affichages: 39

ATHE RIOVELI

XLDnaute Occasionnel
BONSOIR job75,
merci job75, pour cette dernière note.
refaire tout le projet ? cela ne sera pas chose facile.
Pour l'heure celui là est parfait. ENCORE une fois GRAND MERCI.

BONSOIR SI....
Oui vous aviez vu juste. mais je voulais tellement voir le projet aboutit que j'ai été parfois têtu.
Alors je regarde votre travail. Je vous tiendrai informé. MERCI
A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87