XL 2016 transformer en boucle une macro créer avec l'enregistreur automatique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

vazvaz

XLDnaute Nouveau
Bonjour,

N'y connaissant pas grand chose aux macros, je viens solliciter votre aide. pour transformer en boucle une macro créer avec l'enregistreur automatique d'excel. ci-dessous le code:
Sub pointage_print()
'
' pointage_print Macro
'

'
Range("U1").Select
ActiveCell.FormulaR1C1 = "1"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "2"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "3"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "4"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "5"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "6"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "7"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "8"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "9"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "10"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "11"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "12"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "13"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "14"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "15"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "16"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "17"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "18"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "19"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "20"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "21"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "22"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "23"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "24"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "25"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "26"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "27"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "28"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "29"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "30"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "31"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "32"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "33"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("U1").Select
ActiveCell.FormulaR1C1 = "34"
Range("U2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ChDir "C:\Users\talbi.othmane\Documents\Pointage"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\talbi.othmane\Documents\Pointage\Pointage_2025_macro.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWindow.SmallScroll Down:=-42
Sheets("Données").Select
ActiveWindow.SmallScroll Down:=-3
Rows("17:17").Select
Selection.Delete Shift:=xlUp
Range("C15:C16").Select
Selection.AutoFill Destination:=Range("C15:C36")
Range("C15:C36").Select
Range("D34").Select
ActiveWindow.SmallScroll Down:=-15
Range("D25").Select
ActiveWindow.SmallScroll Down:=-12
ActiveWorkbook.Save
Sheets("Février").Select
ActiveWindow.SmallScroll Down:=-30
End Sub

Merci d'avance de votre aide
 
Bonjour @vazvaz

Utilise les balises pour mettre ton code car c'est indigeste comme ceci
1736847550794.png


Tu veux imprimer 34 fois ton fichier (ou une partie) 🤔
J'ai pas vu ton fichier mais à priori près de 200 lignes de codes pour imprimer c'est un peu beaucoup 🤔

Donc mets ton fichier (anonymise le si tu as des données sensibles) et explique en clair ce que tu veux faire
Exemple :
Quand j'ai ceci je veux faire cela et ou tu veux avoir le résultat
Imprimer telle ou telle zone
Effacer ceci si j'ai ça ou ça
etc.....
 
Dernière édition:
Bonjour Vazvaz, et bienvenu sur XLD,
Une première approche avec :
VB:
Sub pointage_print()
Dim X As Integer
For X = 1 To 34
    Range("U1") = X
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
Next X
ChDir "C:\Users\talbi.othmane\Documents\Pointage"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\talbi.othmane\Documents\Pointage\Pointage_2025_macro.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Sheets("Données").Select
Rows("17:17").Delete Shift:=xlUp
Range("C15:C16").AutoFill Destination:=Range("C15:C36")
ActiveWorkbook.Save
Sheets("Février").Select
End Sub
A tester pour voir 🙂
 
Bonjour Vazvaz, et bienvenu sur XLD,
Une première approche avec :
VB:
Sub pointage_print()
Dim X As Integer
For X = 1 To 34
    Range("U1") = X
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
Next X
ChDir "C:\Users\talbi.othmane\Documents\Pointage"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\talbi.othmane\Documents\Pointage\Pointage_2025_macro.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Sheets("Données").Select
Rows("17:17").Delete Shift:=xlUp
Range("C15:C16").AutoFill Destination:=Range("C15:C36")
ActiveWorkbook.Save
Sheets("Février").Select
End Sub
A tester pour voir 🙂
Merci, le résultat est satisfaisant.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
739
Réponses
22
Affichages
3 K
Réponses
1
Affichages
1 K
Retour