Copier un tableau dans une centaine de feuilles et créer des liens hypertextes automa

ckoebel5

XLDnaute Junior
Bonjour,
Je suis débutant en VBA mais je compte bien m’améliorer !
Par contre je suis impatient d’avoir quelques réponses, et pour l’instant je préfère demander de l’aide plutôt que d’apprendre pas à pas… mais cela va venir.

Voilà j’ai une feuille « liste des élèves » composée de plus d’une centaine de lignes (des élèves) dans la feuil3, la colonne C (prénoms).

1) J’aimerais affecter un lien à chaque prénom Cn pour qu’il renvoie à une feuille Feuiln du même classeur.
J’ai déjà crée ces feuilles qui portent le prénom de chaque élève (grâce à une macro
trouvée chez vous mais que j’ai sans doute maladroitement modifiée, mais ça marche ) qui pour l’instant sont vierges.

2) Dans chaque feuille Feuiln, j’aimerais coller un tableau « modèle » identique pour tous au départ, (et que ce tableau s’affiche en zoom plein écran (ça ça serait la cerise sur le gateau), sauf que sur chaque feuille j’aimerais aussi un lien qui renvoie à la « ligne » n du tableau liste des élèves et que les valeurs de ce tableau soient aussi recopiées à la ligne n.

Vous avez sans doute deviné que je suis enseignant (au collège), mais pas d’informatique !!!!

Je ne sais si une personne aura la grande âme de m’aider, en tout cas, je la remercie d’avance pour sa contribution:) et ça m’aidera franchement à être plus efficace surtout lorsque je travaillerai avec une tablette PC.

Christophe
 

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonsoir
Je vous écrirai ce qu'il faut pour passer de la liste à la fiche individuelle, à condition que vous renonciez une bonne fois pour toutes à créer autant de fiches que de lignes dans le tableau. C'est complètement absurde ! Une seule fiche suffit.
À +

P.S. Un début de piste déjà: dans un module ordinaire :
VB:
Public LgnÉlèv As Long
Dans le module Feuil3 (que je vous conseille de renommer FLstÉlèv):
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
LgnÉlèv = Target.Row
End Sub
Le reste de la programmation serait très grandement facilité si vous donniez des noms aux colonnes entières de la liste, et les mêmes noms aux cellules isolées correspondantes de la fiche. Ce peut être rigoureusement les même noms s'ils sont tous définis au niveau des feuilles, sinon un court préfixe devant pour ceux de la liste si vous voulez qu'ils soient tous définis au niveau du classeur.
Dans le premier cas ça pourrait donner ça dans le module de la feuille fiche:
VB:
Option Explicit
'

Private Sub Worksheet_Activate()
Dim ObNm As Name, Nm As String
For Each Nm In Me.Names
   Nm = ObNm.Name
   Me.Range(Nm).Value = FLstÉlv.Range(Nm).Rows(LgnÉlèv).Value
   Next ObNm
End Sub
'

Private Sub Worksheet_Deactivate()
Dim ObNm As Name, Nm As String
For Each ObNm In Me.Names
   Nm = ObNm.Name
   FLstÉlv.Range(Nm).Rows(LgnÉlèv).Value = Me.Range(Nm).Value
   Next ObNm
End Sub

À +
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonjour
Voici un premier jet.
Il serait possible de faires une feuille avec tous les élèves classés par ordre alpha sans distinction de classe si vous voulez, pour remplacer les onglets de fiches.
Cordialement.
 

Pièces jointes

  • GestClasseÉcole.xls
    243 KB · Affichages: 295
  • GestClasseÉcole.xls
    243 KB · Affichages: 282
  • GestClasseÉcole.xls
    243 KB · Affichages: 282

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

MERCI!!! Je dois avouer que votre démonstration m'a convaincu. Et si je n'avais pas des copies à corriger je me plongerai dans votre code pour en comprendre l'efficacité et la subtilité. Quelle efficacité!

Bon, je n'ai pas compris ce que vous vouliez dire par "remplacer les onglets de fiches".

En tout cas je n'hésiterais pas à faire appel à vos talents par la suite!
 

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonjour,
Je remets le pied à l'étrier.... Actuellement je travaille sur papier avec des plans de classe, plutôt qu'avec une liste "verticale", c'est plus rapide et plus visuel. Je voulais savoir pour améliorer le rendement de l'actuelle version Excel:

A) s'il était possible à partir du plan de classe (exemple feuille 4C B5 du classeur Excel) de cliquer sur l'élève afin d'accéder directement à la fiche Modèle (pour cela il faudrait donc que sur la fiche liste des élèves la case active se déplace automatiquement sur la ligne de l'élève sélectionné alors même que cette feuille n'est pas affichée.... ) Par quelle méthode y parvenir?

B) s'il était possible (pour le même souci d'efficacité) donc sur la même feuille que le plan de classe, de faire afficher les noms des élèves qui remplissent certains critères. Je regarde actuellement les différentes fonctions disponibles sur Excel mais je n'ai pas réussi à trouver mon bonheur pour l'instant, mais comme j'ignore une grande partie des fonctionnalités du logiciel, ça ne m'étonnerait pas que je sois passé à côté.
Exemple de ce que je voudrais: avoir une fonction ou une macro??? Peut -être qu'avec un IF ça marche mais pour l'instant je rame, surtout que si je fais un tri sur la liste élève ma fonction if programmée sur la fiche plan de classe n opère plus comme il faut...

Voilà ce que je recherche:
Afficher(classe;critère) par exemple Afficher(6D;soutien) qui afficherait à l'endroit défini la liste des élèves de 6D qui viennent en soutien...
et comme je veux apprendre à programmer je me suis poussé à écrire qq lignes en langage incorrect mais dans l'esprit

i,j,n,m as integer
n= valeur ligne du premier élève de la classe
m= valeur ligne du dernier élève de la classe pb: mais comment définir ces valeurs?
j=0
for i = n to m
if critère de l'élève (i) <>0; écrire le nom de l'élève(i) dans la case 12+j
j=j+1
endif
next i

Merci encore à ceux qui pourrons contribuer à répondre à mes interrogations.

NB je me suis permis de créer une colonne NumElève qui attribue un numéro "permanent" à l'élève mais je ne sais pas si ça peut être utile ni comment.
 

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonsoir.
Point A. Le mieux serait qu'au lieu de porter des prénoms les emplacement de classes portent une formule qui l'affiche.
De cette manière je pourrai analyser cette formule quand on fera un double clic sur la cellule et faire ce que vous demandez.
Naturellement, je vous en faciliterai la saisie par du code qui permettra de choisir un prénom et un nom dans une liste.
Ça vous irait ?
Point B. Des formules feraient l'affaire il me semble. Je vous joindrai déjà ça dans un petit moment.

Remarque: Les numéros d'ordre d'élèves ce n'est pas mauvais en soit, mais on est parti jusqu'à présent sur les numéros de lignes. Si on reste sur cette idée simple, ils vont faire double emploi ou semer la confusion. Ça commence à 2, et alors ? dans le village aussi (celui où le prisonnier était le N°6)

Voila. Mais j'ai réfléchi. Du fait qu'il faudra probablement un userform avec une listview pour mettre les formules, peut être que celui ci ferait l'affaire pour tout. Plus rien d'autre que les plans de classes dans les feuilles. De toute façon les largeurs de colonnes sont gênantes pour autre chose. Néanmoins voici des formules provisoires et une toute petite fonction perso NomFeuil.
À +
 

Pièces jointes

  • GestClasseÉcole.xls
    272.5 KB · Affichages: 82
  • GestClasseÉcole.xls
    272.5 KB · Affichages: 86
  • GestClasseÉcole.xls
    272.5 KB · Affichages: 82
Dernière édition:

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonsoir,
ça me va parfaitement et je m'en remets à vous, puisse l'objectif être atteint.

Une question bête qui n'a rien à voir, comment faites vous vos é à et ç en majuscule?
 

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

É:Alt+144, À:AltGr+7 Maj+a, Ç:Alt+0199
P.S. tous les chiffres se tapent sur le clavier numérique sauf le 7 de l'accent grave.

P.S.2 : Il m'est venue une idée. Faut voir... Attribuer des numéros aux places dans les salles, et centraliser cette place dans la liste des élèves en y indiquant leurs places dans toutes les salles possibles. On pourrait faire un peut comme pour la fiche, sauf qu'il yaurait une seule feuille par salle. Après tout, l'élève sélectionné dans la liste fait partie d'une classe connue, donc en allant dans une feuille de salle, il n'y aurait qu'à y faire venir toute cette classe...
Qu'en pensez vous ?

À +
 
Dernière édition:

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

ça explique pourquoi ça ne marchait pas chez moi, je ne possède pas de pavé numérique sur mon clavier.

Pour les "numéros" d'élèves, je pensais que c'était plus simple de repérer un élève par un numéro "absolu" et non relatif au classement dans la liste. Ainsi si je filtre la liste par critère, cela permute les élèves (leur numéro de ligne change mais pas son numéro absolu). J'avais pensé à cela pour écrire mes quelques "lignes de programmation" pour que l'élève(i) soit unique, quel que soit le filtrage.

Pour que le tableau fait sur la feuille 4C B5 soit opérant et correct, il faut que le filtrage soit spécifique ( classes par ordre alphabétique et les Noms aussi). Je souhaitais pouvoir me soustraire de cette contrainte d'ordre pour que le tableau ne soit pas relatif à l'ordre des élèves dans la liste.

L'idée d'avoir une unique feuille par salle, de numéroter les places me semble tellement puissante que je n'y avais pas pensé. A explorer donc...
 

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Un filtre automatique ne déplace pas les lignes.
Ce qui déplace les lignes c'est un reclassement (aussi appelé "tri" en référence aux trieuses mécanographiques qui servaient souvent à effectuer des classements de cartes perforées)
Aurez vous besoin de changer l'ordre des élèves ? Ça risque de compliquer beaucoup de choses et surtout d'apporter des lenteurs de réactions à chaque modification. J'ai surtout besoin que les classes restent ensemble. Si vous voulez une liste classée par patronymes et prénoms toutes classes confondues, on peut le présenter sur une autre feuille si vous voulez.
 

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Autant pour moi, je voulais dire "triage" et non "filtrage". A partir de la liste il était pratique ou intéressant de trier par exemple les retardataires par ordre décroissant. Mais la fonctionnalité n'est pas essentielle et puis je ne l'utiliserais pas souvent. Et si jamais je l'utilisais il me serait très simple et rapide de revenir à l'ordre initiale....
Je ne vois pas forcément la pertinence d'avoir une liste classée, continuons donc ainsi qu' on a commencé
 

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonjour
État d'avancement: L'isolement des élèves d'une même classe (Point B) est complètement effectué grace à quelques plages nommée dynamiques et une feuille de contrôle qui en rassemble les paramètres.
La formule d'un emplacement d'élève dans une salle est au point:=INDEX(PrénCls;EQUIV(n;Places;0)) avec n le numéro de la place. Une fois installées, ces formules ne changent plus.
Je m'attaque maintenant à un userform montant l'effectif de la classe. Il permettra de placer un élève, de sélectionner sa place ou d'aller à sa fiche. Je prévoirai également la possibilité d'y classer la liste sur n'importe quelle colonne.
À +

J'ai pas mal avancé. Je le joins comme il est et vais me coucher.
Il n'y a qu'une salle pour le moment, la B5. Les autres feuilles derrière seront à supprimer.
À +

Bonjour.
J'ai modifié le fichier
Ajout dans la ListView de 4 colonnes: Pu, Ex, Co reprenant de la lsites des élèves les colonnes Punitions, Exclusions, Colles et une 4ième pouvant recevoir un nombre aléatoire si son bouton d'entête est sollicité.
Ajout d'une feuille "Aide" qui est surtout un suivi de l'évolution de l'outil, et un précieux auxiliaire pour se fixer les idées.
À +
 

Pièces jointes

  • GestClasseÉcole.xls
    478 KB · Affichages: 99
  • GestClasseÉcole.xls
    478 KB · Affichages: 105
  • GestClasseÉcole.xls
    478 KB · Affichages: 103
Dernière édition:

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonjour,
Je suis littéralement scotché par le travail effectué, c'est saisissant!
Vous êtes à n'en pas douter un vrai pro d'Excel... et sans doute aussi un véritable accro, vue l'heure à laquelle vous pouvez vous coucher! Prenez quand même soin de vous!!!

J'ai un tout petit peu modifié la fiche élève (ajout des boutons "absences et retards" + modification des boutons "colle, punition et carnet" afin d'avoir les cumuls, la première case à droite de ces boutons devant être remise à zéro lorsque respectivement effectuée, rendue et signé) ainsi que les ajouts des colonnes qui s'imposaient dans la liste des élèves, j'ai aussi mis à jour les places des élèves dans la salle B5.

Le module 2 peut évidemment être supprimé puisqu'il faisait parti de ma première version, ainsi que la colonne NumElève que j'avais créee...
Voici le fichier joint,
Merci à vous!
A+

Euh, je n'ai pas réussi à l'envoyer, la taille maximale de 295ko étant dépassée, je vais tenter de vous l'envoyer en perso.

Bon finalement je l'ai enregistré sous excel2007 donc il prend moins de place, le voici!
Et j'ai aussi rajouté une feuille Soutien, je ne sais encore trop comment je m'en servirais, j'aimerais plus tard pouvoir affecter un ou des soutiens aux élèves dont j'aurai décelé le besoin.

A+
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonsoir
J'ai rajouté les colonnes supplémentaires dans ma propre version qui a encore subi quelques petites modifications.
Pour ce qui est de la fiche, plus je la vois avec tous ses boutons, plus je pense qu'elle n'est pas destinée à être imprimée ni communiquée autrement. Ce qui signifie qu'elle serait avantageusement remplacée par un userform. Voudriez vous essayer d'en dessiner un ? Insertion, Userform dans VBA est le premier pas. Il faudrait 2 boutons pour chacune des 3 sortes de punitions je suppose, un pour ajouter 1 dans les deux colonnes (octroyer) et un autre pour enlever 1 (effectué) de la première.
Vous pourrez joindre, si ça vous arrange mieux, un classeur en .xls comportant juste les feuilles modifiées, débarrassée de formules par copie et collage spécial par valeurs, et l'Userform. Je reporterai les modifs.
Pour enrichir la feuille "Aide" des nouvelles feuille, noms, modules et procédures il suffit de cliquer sur le bouton "Réactualiser les listes de composants". Les lignes se rapportant aux composants disparus passeront en rose hachuré s'il reste du texte dans la colonne descriptive de droite, et sinon seront supprimées.
Cordialement.
 

ckoebel5

XLDnaute Junior
Re : Copier un tableau dans une centaine de feuilles et créer des liens hypertextes a

Bonsoir,
Oui pour la fiche vous avez raison, son utilité est simplement de modifier les données d'un tableau dans les meilleurs délais mais aussi d'avoir un visuel sur le "profil" de l'élève. Je n'y connais rien aux Userforms mais évidemment, si je peux vous aider en vous faisant gagner du temps je serais ravi de le faire, je vais faire de mon mieux pour m'initier aux Userforms. Par contre il faudra être indulgent pour le délai.... Pour les punitions c'est exactement comme vous le décrivez que je l'imaginais, avec deux boutons!

Pour le soutien, l'idée fait son chemin, peut être des cases avec menu déroulant la liste des soutiens, peut on intégrer cela au Userform? Avec des cases à cocher peut-être?
Dans la ListView, les colonnes dont j'aurais surtout besoin sont surtout: "punitions, colles, carnet et soutien" bien sûr, les effectifs des élèves allant en soutien variant d'une semaine à l'autre selon l'intitulé et les besoins, cela me sera très utile.
Merci encore, et bonne nuit!
 

Discussions similaires

Réponses
2
Affichages
554

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG