XL 2010 Impression de tous les bulletins

Appo1985

XLDnaute Occasionnel
Bonjour à tous
J'ai besoin de votre aide pour pouvoir imprimer automatiquement tous les bulletins.
Les données de chaque bulletin sont obtenues à travers la formule rechercheV dans le tableau de note en se référant au numéro matricule.
Je voudrais pouvoir insérer les numéros matricule automatiquement et en même temps imprimer tous les bulletins des élèves ou en passant par d'autres moyens si possible.
Je suis un débutant en Excel et je ne m'y connais pas en VBA.
Merci d'avance
 

Pièces jointes

  • fichier joint.xlsm
    13.7 KB · Affichages: 24
Solution
Bonjour appo1985 bonjour le forum
ce code devrait faire l'affaire.
VB:
Sub impression_de_tous_eleves()
Dim F1 As String
Dim F2 As String
F1 = Sheets("note").Name
F2 = Sheets("Bulletin").Name
 Sheets(F2).Select

 li = Sheets(F1).Cells(36000, 3).End(xlUp).Row


For i = 5 To li
Sheets(F2).Range("D7") = Sheets(F1).Cells(i, 3)
 Calculate
ActiveSheet.PrintPreview
Next
End Sub

pour une impression directe remplacer PrintPreview par PrintOut
cordialement
galougalou

GALOUGALOU

XLDnaute Accro
Bonjour appo1985 bonjour le forum
ce code devrait faire l'affaire.
VB:
Sub impression_de_tous_eleves()
Dim F1 As String
Dim F2 As String
F1 = Sheets("note").Name
F2 = Sheets("Bulletin").Name
 Sheets(F2).Select

 li = Sheets(F1).Cells(36000, 3).End(xlUp).Row


For i = 5 To li
Sheets(F2).Range("D7") = Sheets(F1).Cells(i, 3)
 Calculate
ActiveSheet.PrintPreview
Next
End Sub

pour une impression directe remplacer PrintPreview par PrintOut
cordialement
galougalou
 

Pièces jointes

  • impression élèves.xlsm
    21.1 KB · Affichages: 25

Appo1985

XLDnaute Occasionnel
Bonjour appo1985 bonjour le forum
ce code devrait faire l'affaire.
VB:
Sub impression_de_tous_eleves()
Dim F1 As String
Dim F2 As String
F1 = Sheets("note").Name
F2 = Sheets("Bulletin").Name
 Sheets(F2).Select

 li = Sheets(F1).Cells(36000, 3).End(xlUp).Row


For i = 5 To li
Sheets(F2).Range("D7") = Sheets(F1).Cells(i, 3)
 Calculate
ActiveSheet.PrintPreview
Next
End Sub

pour une impression directe remplacer PrintPreview par PrintOut
cordialement
galougalou
Vraiment merci beaucoup.
J'ai essayé et c'est exactement ce que je voulais.👍

J'avais une autre question qui concerne le même fichier.
Sur Tableau1qui se trouve sur la feuille note, il ya déjà le matricule le nom et le prénom. Je voudrais pouvoir remplir les 5 autres champs par le formulaire
Merci
 

GALOUGALOU

XLDnaute Accro
re appo1985
dans la même idée, un code identique qui va purger les cellules de saisies en fin de procédure
VB:
Sub ventilation_note()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select

 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
Sheets(F2).Cells(i, 6) = Sheets(F1).Range("D15")
Sheets(F2).Cells(i, 7) = Sheets(F1).Range("G9")
Sheets(F2).Cells(i, 8) = Sheets(F1).Range("G11")
Sheets(F2).Cells(i, 9) = Sheets(F1).Range("G13")
Sheets(F2).Cells(i, 10) = Sheets(F1).Range("G15")
End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
End Sub

dans le classeur exemple ci-joint le test fonctionne
cordialement
galougalou
 

Pièces jointes

  • impression élèves2.xlsm
    23.2 KB · Affichages: 22

Appo1985

XLDnaute Occasionnel
re appo1985
dans la même idée, un code identique qui va purger les cellules de saisies en fin de procédure
VB:
Sub ventilation_note()
Dim F1 As String
Dim F2 As String
F1 = Sheets("formulaire").Name
F2 = Sheets("note").Name
 Sheets(F2).Select

 li = Sheets(F2).Cells(36000, 3).End(xlUp).Row

For i = 5 To li
If Sheets(F2).Cells(i, 3) = Sheets(F1).Range("D9") Then
Sheets(F2).Cells(i, 6) = Sheets(F1).Range("D15")
Sheets(F2).Cells(i, 7) = Sheets(F1).Range("G9")
Sheets(F2).Cells(i, 8) = Sheets(F1).Range("G11")
Sheets(F2).Cells(i, 9) = Sheets(F1).Range("G13")
Sheets(F2).Cells(i, 10) = Sheets(F1).Range("G15")
End If
Next
MsgBox ("Modifications effectuées")
Sheets(F1).Range("D9") = ""
Sheets(F1).Range("D15") = ""
Sheets(F1).Range("G9") = ""
 Sheets(F1).Range("G11") = ""
 Sheets(F1).Range("G13") = ""
 Sheets(F1).Range("G15") = ""
 Sheets(F1).Select
End Sub

dans le classeur exemple ci-joint le test fonctionne
cordialement
galougalou
Merci bien Galougalou. Ça marche au delà même de mes attentes. 🙏
 

Discussions similaires

Statistiques des forums

Discussions
315 095
Messages
2 116 169
Membres
112 676
dernier inscrit
little_b