Création automatique de feuilles et remplissage automatique selon modèle

kiki

XLDnaute Nouveau
Bien le bonjour!

Voici ma question, si quelqu'un n'a rien à faire en ce dimanche grisâtre... :cool:

Est-il possible de créer "automatiquement" à partir d'une feuille où se trouve la base des élèves et leurs résultats à un examen et à partir d'une seconde feuille où se trouve un modèle de relevé de notes
tous les relevés complétés pour chaque élève? (sans cliquer moult fois sur un bouton :))

Je ne connais pas le VBA :( et ai fait ma 1ère macro hier.
Alors si c'est possible, est-ce que quelqu'un peut m'indiquer un chemin?
Merci beaucoup
Christelle
 

Pièces jointes

  • exemple releve.xls
    17.5 KB · Affichages: 385

Hippolite

XLDnaute Accro
Re : Création automatique de feuilles et remplissage automatique selon modèle

Bonjour Christelle,
Si tu veux t'investir dans EXCEL et en particulier dans VBA, je te conseille l'excellent site de J. Boisgontier où tu trouveras une multitude d'exemples.
si quelqu'un n'a rien à faire en ce dimanche grisâtre...
Malheureusement pour toi, je ne suis pas dans cette catégorie aujourd'hui !
A+
 

Staple1600

XLDnaute Barbatruc
Re : Création automatique de feuilles et remplissage automatique selon modèle

Bonjour et bienvenue sur XLD

J'essaie de me mettre au boulot
C'est la moindre des choses!

Sur XLD, on aide le demandeur, on ne fait à la pas place de celui-ci.

(Sauf si les temps changent...ce qui semble se profiler à l'horizon)

PS: je précise que ces mots sont écrits sur un ton amical au cas où.
 
Dernière édition:

kiki

XLDnaute Nouveau
Re : Création automatique de feuilles et remplissage automatique selon modèle

Merci JM!
Euh?!?
Je n'ai pas demandé qu'on fasse à ma place, juste des conseils et surtout savoir si c'était possible (hum possible à mon niveau je dirais). :)
 

Staple1600

XLDnaute Barbatruc
Re : Création automatique de feuilles et remplissage automatique selon modèle

Re


Il faut savoir discerner mon humour particulier.

Par exemple, mon message précédent se voulait simplement ironique.

Pour revenir à ta question, un dimanche soir ca risque d'être short pour avoir une réponse.

Sauf si tu connais Word et le publipostage

(C'est que ce que j'utiliserai dans ton cas.
Une fichier Excel comme base de données
et un fichier Word pubilposté pour les relevés de notes

C'est simple à réaliser et sans macros.
 
Dernière édition:

kiki

XLDnaute Nouveau
Re : Création automatique de feuilles et remplissage automatique selon modèle

Ouf!!! J'ai mal perçu effectivement...
Merci JM, ça me tournait dans la tête ton message...

Alors j'allais te dire "hey j'ai bossé", sur la piste du tableau croisé dynamique, j'en ai fait un, plusieurs d'ailleurs avant d'avoir quelque chose qui ressemble à ce que je voulais mais ça ne colle pas avec la mise en forme voulue. Et une macro avec un bouton pour créer une nouvelle feuille seulement je voudrais que ça se fasse "tout seul" à la lecture de la base de données.

Bon bref, fin de la justification. :eek:

Suis une bosseuse et j'aime comprendre ce que je fais pour pouvoir refaire :)

Merci beaucoup pour le tuyau
A bientôt
Christelle
 

Hippolite

XLDnaute Accro
Re : Création automatique de feuilles et remplissage automatique selon modèle

Re,

Ton besoin est très basique, il concerne la création/nommage d'onglets d'après modèle et l'extraction de BD. Il y a de nombreux fils semblables.

Tu as plusieurs façons de chercher sur ce site :
Regarde les discussions similaires en bas de page.
Il y a également une recherche tout en haut à droite.
Il y a également un module de recherche avancé, après avoir fait une recherche simple, tu cliques sur Recherche en haut à gauche.

Enfin, pour une débutante avec VBA, il ne faut pas oublier les outils suivants :
- L'enregistreur de macro
- Laide avec la touche F1
- L'explorateur d'objet

Ta base de données est bien faite à l'exception des titres où il faut éviter les blancs, écris plutôt Date_naissance. Excel est tolérant mais si un jour tu veux exporter tu peux avoir des problèmes.

Je ne peux rien faire de plus ce soir, n'ayant pas excel avec moi.

A+
 

Staple1600

XLDnaute Barbatruc
Re : Création automatique de feuilles et remplissage automatique selon modèle

Re


Comme je le disais plus bas, la solution la plus simple à mettre en œuvre serait d'utiliser le publipostage sous Word
couplé un fichier Excel servant de base de données (tu as déjà ce fichier , c'est l'onglet: Base)

Pour ce qui est du publipostage, il existe de nombreux tutoriels sur le net.

L'avantage du publipostage, c'est qu'il y a un assistant intégré à Word pour le réaliser et que 'il n'est pas utilise si on débute d'employer les macros.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Création automatique de feuilles et remplissage automatique selon modèle

Bonjour à tous
Mes petits camarades n'ont pas tort qui suggèrent une synergie Word/Excel.
En attendant, une bricole pur Excel :
VB:
Sub toto()
'  ***  10 Ventôse CCXIX  ***  Roger fecit.  ***
'
'Référence à la biliothèque Microsoft Scripting Runtime (scrrun.dll) requise.
'"dat" est une plage nommée de la feuille "Base" :
'=DECALER(Base!$A$1;;;MAX((DECALER(Base!$A$1;;;NEnr;1)<>"")*LIGNE(DECALER(Base!$1:$1;;;NEnr;)));MAX((DECALER(Base!$A$1;;;;NChp)<>"")*COLONNE(DECALER(Base!$A:$A;;;;NChp))))
'Adapter les paramètres nommé "NEnr" (nb. max d'enregistrements) et "NChp" (nb. max de champs) si besoin est.
'
Dim i&, j&, ind$, tmp$, Chp(), oSh(), oKeys(), oItms(), oDt As Scripting.Dictionary
  Chp = Array( _
    Array("NOM", "NOM : ", "C14"), _
    Array("Prenom", "Prénom : ", "C16"), _
    Array("Date naissance", "Date de naissance : ", "C18"), _
    Array("Division", "Division : ", "C20"), _
    Array("Français", "Français", "D26"), _
    Array("Maths", "Mathématiques", "D28"), _
    Array("HG", "Histoire-Géographie", "D30"), _
    Array("SVT", "S V T", "D32"), _
    Array("LV1", "LV 1", "D34"), _
    Array("LV2", "LV 2", "D36") _
    ) 'correspondance des champs des feuilles "base" et "releve", DANS L'ORDRE DES CHAMPS DE "base".
   With Range("dat")
    If .Rows.Count = 1 Then Exit Sub  'Rien à traiter.
     For i = 0 To UBound(Chp)
      If Chp(i)(0) <> .Cells(1, 1 + i) Then MsgBox ("Base inadéquate"): Exit Sub 'Base inadéquate.
     Next
'
'Ventilation de la base par onglet :
     Set oDt = CreateObject("Scripting.Dictionary")
    For i = 2 To .Rows.Count
      ind = .Cells(i, 1) & "_" & .Cells(i, 2)
      tmp = ""
      Do While oDt.Exists(ind & tmp): tmp = " " & CStr(Val(tmp) + 1): Loop 'Gestion des homonymies.
       oDt.Add ind & tmp, Array(ind & tmp, .Rows(i).Value)
    Next
  End With
'
'Répertoire des feuilles existantes :
   ReDim oSh(1 To Sheets.Count)
  For i = 1 To Sheets.Count: oSh(i) = Sheets(i).Name: Next
'
'création/mise à jour des onglets :
   oKeys = oDt.Keys
  With Application: .ScreenUpdating = 0: .Calculation = -4135: .EnableEvents = 0: End With
  For i = 0 To oDt.Count - 1
    For j = 1 To UBound(oSh)
      If oKeys(i) = oSh(j) Then Exit For
    Next j
    If j > UBound(oSh) Then 'Nouvelle feuille
      Worksheets("Releve").Copy Before:=Worksheets("Releve")
      ActiveSheet.Name = oKeys(i)
    Else 'Feuille existante
      Worksheets(oKeys(i)).Activate
    End If
    oItms = oDt(oKeys(i))(1)
    For j = 0 To UBound(Chp): ActiveSheet.Range(Chp(j)(2)) = oItms(1, j + 1): Next
  Next i
  Me.Activate
  With Application: .EnableEvents = 1: .Calculation = -4105: .ScreenUpdating = 1: End With
  Set oDt = Nothing: Erase Chp(), oSh(), oKeys(), oItms()
End Sub
À placer dans le module de la feuille Base.
Dans le classeur joint, la procédure est associée au bouton Mise à jour.
C'est sans aucun doute perfectible, mais cela donne une base de travail.
Bon courage.​
ROGER2327
#4995


Vendredi 6 Pédale 138 (Vers Belges, SQ)
10 Ventôse An CCXIX
2011-W09-1T03:02:14Z
 

Pièces jointes

  • Création automatique de feuilles et remplissage automatique selon modèle_158960.xls
    30 KB · Affichages: 514

kiki

XLDnaute Nouveau
Re : Création automatique de feuilles et remplissage automatique selon modèle

Re


Comme je le disais plus bas, la solution la plus simple à mettre en œuvre serait d'utiliser le publipostage sous Word
couplé un fichier Excel servant de base de données (tu as déjà ce fichier , c'est l'onglet: Base)

Pour ce qui est du publipostage, il existe de nombreux tutoriels sur le net.

L'avantage du publipostage, c'est qu'il y a un assistant intégré à Word pour le réaliser et que 'il n'est pas utilise si on débute d'employer les macros.

Coucou Staple!

Enfin un peu de temps chouette! Je viens de découvrir comme tu me l'as conseillé le publipostage et c'est formidable, tout est nickel d'un coup d'un seul! Et je saurai refaire, je suis ravie!!!
Merci tout plein!

Au fait : parfait l'assistant!

Christelle
 
Dernière édition:

kiki

XLDnaute Nouveau
Re : Création automatique de feuilles et remplissage automatique selon modèle

Coucou Roger!
C'est super gentil, je suis admirative devant cette page de codes mais je n'y comprends pas grand chose :(
J'ai fait ce que JM conseillait : word et publipostage, et ça roule, suis super contente!
C'est exactement ce que je voulais obtenir.
Je suis désolée que tu aies cherché qqch que je ne vais pas utiliser...

Merci tout de même!!! Le VBA tu as appris sur le tas? Ça me semble un énorme travail...
Christelle
 

kiki

XLDnaute Nouveau
Re : Création automatique de feuilles et remplissage automatique selon modèle

Merci Hippolite,
tout est nickel avec le publipostage et l'assistant qui œuvre.
J'ai appris à faire une macro, c'est déjà une bonne chose de faite, en utilisant un tutoriel du site. Ce forum est extra!

A bientôt
Christelle:cool:
 
Dernière édition:

kiki

XLDnaute Nouveau
Re : Création automatique de feuilles et remplissage automatique selon modèle

Ça a fonctionné du tonnerre!
Et j'ai appris qqch, génial, merci beaucoup JM! ;)

Cordialement tout plein :)
Christelle
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Création automatique de feuilles et remplissage automatique selon modèle

Re…
(…)
Je suis désolée que tu aies cherché qqch que je ne vais pas utiliser...

Merci tout de même!!! Le VBA tu as appris sur le tas? Ça me semble un énorme travail...
(…)
  1. Ne soyez pas désolée, vous avez fait le bon choix. (J'avais d'ailleurs moi aussi conseillé le publipostage dans votre cas d'espèce.)
  2. Sur le tas : OUI. Énorme travail : moins énorme qu'on croit généralement. Il faut expérimenter, essayer d'inventer (même si ce n'est que pour redécouvrir des choses connues) et éviter de reproduire les solutions qu'on trouve partout. Certaines de ces solutions sont bonnes, mais beaucoup sont surtout routinières et loin d'épuiser les possibilités des logiciels. Il faut sortir des sentiers battus…
    Bien entendu, les sœurs Logique et Mathématique sont de précieuses alliées.
ROGER2327
#5036


Mardi 10 Pédale 138 (Nativité de Saint Tancrède, jeune homme, SQ)
14 Ventôse An CCXIX
2011-W09-5T18:07:56Z
 

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 257
Membres
102 844
dernier inscrit
atori2