Tirer une formule sur toutes les pages

Bonjour à tous,

Je suis prof et, en fin d'année, c'est l'heure des bulletins et conseils de classes... Je suis donc entrain de préparer les miens sur Excel. J'ai créer une fiche individuelle que je remplirai en partie manuellement. Cependant, je voudrais que, sur celles-ci, je puisse avoir une formule pour que, entre autres, le nom et le prénom de l'élève s'écrive automatiquement. J'ai donc mis comme première page une liste des élèves (colonie A = Nom, colonne B = prénom)

Je sais que pour remplir automatiquement la case "Nom" de mon premier élève, je dois écrire la formule "=Feuil1!A1" dans cette case.

Fiche du 2e élève, "=Feuil1!A2"

Fiche du 3e élève, "=Feuil1!A3"

Voici les deux endroits où je coince...

1- Afin de m'éviter de faire cela pour tous les élèves que j'ai en cours, j'aimerais pouvoir "tirer" la formule du premier élève pour tous les autres, de la 2e à la dernière page. Faire un genre de "publipostage" comme sur Word...

2- Ensuite, j'aimerais changer "automatiquement" le nom de la page "Feuil2" en l'appelant par le nom de l'élève (la case C3 du document)

Avez-vous des idées si cela est possible???

Mille mercis !!!

Bonjour,

Je déconseille fortement de poursuivre sur la structure actuellement retenue. Il sera nettement plus facile d'exploiter une unique base de données, chaque ligne correspondant par exemple à la note d'un élève pour une matière.

Un second onglet permet ensuite de faire une extraction de la base de données pour la mettre en forme, par exemple à l'aide d'un Tableau Croisé Dynamique (affichage de la moyenne d'un élève par matière, du nombre de note, comparaison à la moyenne de classe...).

Pour être un peu plus précis, merci de fournir les informations souhaitées sur le bulletin, et idéalement un fichier avec quelques exemples anonymisés (utilisable comme base de travail).

Voici le document sur lequel je travaille, je n'ai pas encore toutes les données pour remplir le tableau mais voici à quoi ressemblerait la fiche individuelle par élève.

Les cases en jaunes sont celles sur lesquelles je suis entrain de travailler... Et pour le moment, c'est pour celles-là que j'ai besoin d'aide pour automatiser le remplissage.

6q-forum.xlsx (44.97 Ko)

Merci pour le document. Est-il possible de remplir l'une des fiches pour voir à quoi cela ressemble, par ce qu'un certain nombre d'items ne me parlent pas !

Au vue de ton document, je crois que j'ai mal compris la demande initiale. L'objectif n'est pas de compléter ces données dans Excel, mais d'imprimer ces fiches, n'est-ce pas ?

Voici un tableau +/- remplis.

Le but est effectivement de remplir "automatiquement" une série de données afin de pouvoir imprimer une page individuelle par élève... nous avons déjà une série de données encodées (pourcentages, nombre d'absences, ...). l'idée est de remplir le tableau de la première page, ensuite, de créer sur la deuxième page (la première fiche individuelle) des formules pour le premier élève. Ce que je voudrais arriver à faire, c'est de "tirer" ces formules automatiquement pour m'éviter de devoir recopier, pages après pages, cases après case, la formule "=Feuil1! XX "

Déjà merci pour le coup de main !

5q-forum.xlsx (50.98 Ko)

Voici un tableau +/- remplis.

Le but est effectivement de remplir "automatiquement" une série de données afin de pouvoir imprimer une page individuelle par élève...

Dans ce cas, on va faire abstraction de ce que j'ai dit précédemment et de ce que contiendront les fiches (puisqu'en dehors du nom de l'élève, le reste est remplie après impression)...

Je te propose une macro qui génère autant de fiches que d'élèves dans ta liste, et ajoute automatiquement leur NOM, Prénom et N° dans l'en-tête.

Le fichier complet :

10q-forum.xlsm (26.33 Ko)

Voilà le code :

Sub GénérerFiches()

Dim Lig As Integer, LigMax As Integer

With Sheets("Liste")
    LigMax = .Range("A" & Rows.Count).End(xlUp).Row 'Détermine la dernière ligne
    For Lig = 1 To LigMax 'Boucle sur les élèves
        If Not FeuilleExiste(.Range("A" & Lig) & "_" & .Range("B" & Lig)) Then 'Si la fiche n'existe pas déjà
            Sheets.Add After:=Sheets(Sheets.Count) 'Ajout d'une fiche
            ActiveSheet.Name = .Range("A" & Lig) & "_" & .Range("B" & Lig) 'Renomme la fiche au format NOM_Prénom
            Sheets("Modèle").Cells.Copy ActiveSheet.Range("A1") 'Copie la fiche modèle
            Application.CutCopyMode = False 'Décharge la zone copiée de la mémoire
            ActiveSheet.Range("C1") = .Range("A" & Lig) 'Ajout du Nom
            ActiveSheet.Range("F1") = .Range("B" & Lig) 'Ajout du Prénom
            ActiveSheet.Range("K1") = .Range("C" & Lig) 'Ajout du N°
        Else: MsgBox "Fiche déjà existante"
        End If
    Next Lig
End With

End Sub
Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
'fonction qui vérifie si la "FeuilleAVerifier" existe dans le Classeur actif
'par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo SiErreur
Dim Feuille As Worksheet

    FeuilleExiste = False 'Par défaut : pas de correspondance
    For Each Feuille In Worksheets 'Parcourir les feuilles du classeur
        If Feuille.Name = FeuilleAVerifier Then 'Si correspondance du nom avec un nom existant
            FeuilleExiste = True 'Renvoie "VRAI"
            Exit Function 'Sort de la fonction
        End If
    Next Feuille
Exit Function

SiErreur:
MsgBox "Une erreur s'est produite..."
FeuilleExiste = CVErr(xlErrNA)
End Function

J'avoue mon ignorance la plus totale dans l'utilisation des macros (enfin, j'y ai déjà un peu touché pour des trucs basiques, mais sans plus).

Je promet de passer quelques soirées sur youtube pour regarder des tutos et lire quelques articles pour que je puisse me plonger dans le monde magique de l'automatisation !!!

Mille merci de m'avoir ouvert les yeux sur l'utilisation des macros et pour les réponses rapides et claires.

A très bientôt.

J'avoue mon ignorance la plus totale dans l'utilisation des macros (enfin, j'y ai déjà un peu touché pour des trucs basiques, mais sans plus).

Je promet de passer quelques soirées sur youtube pour regarder des tutos et lire quelques articles pour que je puisse me plonger dans le monde magique de l'automatisation !!!

Mille merci de m'avoir ouvert les yeux sur l'utilisation des macros et pour les réponses rapides et claires.

A très bientôt.

Pas de soucis, si le sujet t'intéresse, tu ne manqueras pas de trouver des infos (en particulier sur ce site, tu as des cours que je trouve bien conçus). VBA peut être "magique" comme il peut être "casse-tête", parfois il vaut mieux faire simple et s'en passer au profit de fonctionnalités existantes sous Excel.

Excellente continuation !

Rechercher des sujets similaires à "tirer formule toutes pages"