Simplification de code VBA

Bonjour à tous, je suis a un niveau plus que débutant en VBA et pour tout vous avouer, ma façon de faire est très scolaire. Le plus souvent pour faire une macro j'utilise le mode enregistrement et j’effectue une suite de manipulation, et cela se termine par un arrêt qui sauvegarde. Jusque la j'arrivais avec plus ou moins de réussite à obtenir ce que je voulais en complétant ces "macros" avec pas mal de formules dans les cellules pour arriver a mes fins.

Je vous sollicite donc pour m'aider à simplifier "mon" code, de mon coté je suis les cours sur le forum pour compléter mes lacunes mais étant autodidacte que ce soir en Excel et maintenant en VBA un peu de mal à raccrocher les wagons.

Pour vous expliquer en quoi mon fichier consiste, il s’agit d'un fichier pour éditer un carnet de bord pour l'ensemble des véhicules de mon secteur d'activités. L’idée est que chaque onglet reprenne un model en référence, et que chaque feuille se compose de la semaine 1 à 52(53) avec chaque jours de la semaine pour noter l'état ou autre sur chaque véhicule. Je me suis débrouillé pour faire le model et trouver si l'année avait 52 ou 53 semaines. Mais mon souci est que je n'arrive pas à ajouter ces données dans le code...

voici mon code

Sub Macro1()

'

Application.ScreenUpdating = False

'fiche 1

Sheets("model").Copy After:=Sheets(2)

Sheets("model (2)").Name = "1"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "=model!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "=model!RC+1"

'fiche 2

Sheets("1").Copy After:=Sheets(3)

Sheets("1 (2)").Name = "2"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='1'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='1'!RC:R[1]C+1"

'fiche 3

Sheets("2").Copy After:=Sheets(4)

Sheets("2 (2)").Name = "3"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='2'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='2'!RC:R[1]C+1"

'fiche 4

Sheets("3").Copy After:=Sheets(5)

Sheets("3 (2)").Name = "4"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='3'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='3'!RC:R[1]C+1"

'fiche 5

Sheets("4").Copy After:=Sheets(6)

Sheets("4 (2)").Name = "5"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='4'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='4'!RC:R[1]C+1"

'fiche 6

Sheets("5").Copy After:=Sheets(7)

Sheets("5 (2)").Name = "6"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='5'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='5'!RC:R[1]C+1"

'fiche 7

Sheets("6").Copy After:=Sheets(8)

Sheets("6 (2)").Name = "7"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='6'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='6'!RC:R[1]C+1"

'fiche 8

Sheets("7").Copy After:=Sheets(9)

Sheets("7 (2)").Name = "8"

Range("A6").Select

ActiveCell.FormulaR1C1 = "='7'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='7'!RC:R[1]C+1"

'fiche 9

Sheets("8").Copy After:=Sheets(10)

Sheets("8 (2)").Name = "9"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='8'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='8'!RC:R[1]C+1"

'fiche 10

Sheets("9").Copy After:=Sheets(11)

Sheets("9 (2)").Name = "10"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='9'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='9'!RC:R[1]C+1"

'fiche 11

Sheets("10").Copy After:=Sheets(12)

Sheets("10 (2)").Name = "11"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='10'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='10'!RC:R[1]C+1"

'fiche 12

Sheets("11").Copy After:=Sheets(13)

Sheets("11 (2)").Name = "12"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='11'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='11'!RC:R[1]C+1"

'fiche 13

Sheets("12").Copy After:=Sheets(14)

Sheets("12 (2)").Name = "13"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='12'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='12'!RC:R[1]C+1"

'fiche 14

Sheets("13").Copy After:=Sheets(15)

Sheets("13 (2)").Name = "14"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='13'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='13'!RC:R[1]C+1"

'fiche 15

Sheets("14").Copy After:=Sheets(16)

Sheets("14 (2)").Name = "15"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='14'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='14'!RC:R[1]C+1"

'fiche 16

Sheets("15").Copy After:=Sheets(17)

Sheets("15 (2)").Name = "16"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='15'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='15'!RC:R[1]C+1"

'fiche 17

Sheets("16").Copy After:=Sheets(18)

Sheets("16 (2)").Name = "17"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='16'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='16'!RC:R[1]C+1"

'fiche 18

Sheets("17").Copy After:=Sheets(19)

Sheets("17 (2)").Name = "18"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='17'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='17'!RC:R[1]C+1"

'fiche 19

Sheets("18").Copy After:=Sheets(20)

Sheets("18 (2)").Name = "19"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='18'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='18'!RC:R[1]C+1"

'fiche 20

Sheets("19").Copy After:=Sheets(21)

Sheets("19 (2)").Name = "20"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='19'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='19'!RC:R[1]C+1"

'fiche 21

Sheets("20").Copy After:=Sheets(22)

Sheets("20 (2)").Name = "21"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='20'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='20'!RC:R[1]C+1"

'fiche 22

Sheets("21").Copy After:=Sheets(23)

Sheets("21 (2)").Name = "22"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='21'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='21'!RC:R[1]C+1"

'fiche 23

Sheets("22").Copy After:=Sheets(24)

Sheets("22 (2)").Name = "23"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='22'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='22'!RC:R[1]C+1"

'fiche 24

Sheets("23").Copy After:=Sheets(25)

Sheets("23 (2)").Name = "24"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='23'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='23'!RC:R[1]C+1"

'fiche 25

Sheets("24").Copy After:=Sheets(26)

Sheets("24 (2)").Name = "25"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='24'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='24'!RC:R[1]C+1"

'fiche 26

Sheets("25").Copy After:=Sheets(27)

Sheets("25 (2)").Name = "26"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='25'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='25'!RC:R[1]C+1"

'fiche 27

Sheets("26").Copy After:=Sheets(28)

Sheets("26 (2)").Name = "27"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='26'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='26'!RC:R[1]C+1"

'fiche 28

Sheets("27").Copy After:=Sheets(29)

Sheets("27 (2)").Name = "28"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='27'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='27'!RC:R[1]C+1"

'fiche 29

Sheets("28").Copy After:=Sheets(30)

Sheets("28 (2)").Name = "29"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='28'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='28'!RC:R[1]C+1"

'fiche 30

Sheets("29").Copy After:=Sheets(31)

Sheets("29 (2)").Name = "30"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='29'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='29'!RC:R[1]C+1"

'fiche 31

Sheets("30").Copy After:=Sheets(32)

Sheets("30 (2)").Name = "31"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='30'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='30'!RC:R[1]C+1"

'fiche 32

Sheets("31").Copy After:=Sheets(33)

Sheets("31 (2)").Name = "32"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='31'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='31'!RC:R[1]C+1"

'fiche 33

Sheets("32").Copy After:=Sheets(34)

Sheets("32 (2)").Name = "33"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='32'!R[12]C+1"

Range("F2").Select

'fiche 34

Sheets("33").Copy After:=Sheets(35)

Sheets("33 (2)").Name = "34"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='33'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='33'!RC:R[1]C+1"

'fiche 35

Sheets("34").Copy After:=Sheets(36)

Sheets("34 (2)").Name = "35"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='34'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='34'!RC:R[1]C+1"

'fiche 36

Sheets("35").Copy After:=Sheets(37)

Sheets("35 (2)").Name = "36"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='35'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='35'!RC:R[1]C+1"

'fiche 37

Sheets("36").Copy After:=Sheets(38)

Sheets("36 (2)").Name = "37"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='36'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='36'!RC:R[1]C+1"

'fiche 38

Sheets("37").Copy After:=Sheets(39)

Sheets("37 (2)").Name = "38"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='37'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='37'!RC:R[1]C+1"

'fiche 39

Sheets("38").Copy After:=Sheets(40)

Sheets("38 (2)").Name = "39"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='38'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='38'!RC:R[1]C+1"

'fiche 40

Sheets("39").Copy After:=Sheets(41)

Sheets("39 (2)").Name = "40"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='39'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='39'!RC:R[1]C+1"

'fiche 41

Sheets("40").Copy After:=Sheets(42)

Sheets("40 (2)").Name = "41"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='40'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='40'!RC:R[1]C+1"

'fiche 42

Sheets("41").Copy After:=Sheets(43)

Sheets("41 (2)").Name = "42"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='41'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='41'!RC:R[1]C+1"

'fiche 43

Sheets("42").Copy After:=Sheets(44)

Sheets("42 (2)").Name = "43"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='42'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='42'!RC:R[1]C+1"

'fiche 44

Sheets("43").Copy After:=Sheets(45)

Sheets("43 (2)").Name = "44"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='43'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='43'!RC:R[1]C+1"

'fiche 45

Sheets("44").Copy After:=Sheets(46)

Sheets("44 (2)").Name = "45"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='44'!R[12]C+1"

Range("F2").Select

'fiche 46

Sheets("45").Copy After:=Sheets(47)

Sheets("45 (2)").Name = "46"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='45'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='45'!RC:R[1]C+1"

'fiche 47

Sheets("46").Copy After:=Sheets(48)

Sheets("46 (2)").Name = "47"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='46'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='46'!RC:R[1]C+1"

'fiche 48

Sheets("47").Copy After:=Sheets(49)

Sheets("47 (2)").Name = "48"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='47'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='47'!RC:R[1]C+1"

'fiche 49

Sheets("48").Copy After:=Sheets(50)

Sheets("48 (2)").Name = "49"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='48'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='48'!RC:R[1]C+1"

'fiche 50

Sheets("49").Copy After:=Sheets(51)

Sheets("49 (2)").Name = "50"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='49'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='49'!RC:R[1]C+1"

'fiche 51

Sheets("50").Copy After:=Sheets(52)

Sheets("50 (2)").Name = "51"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='50'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='50'!RC:R[1]C+1"

'fiche 52

Sheets("51").Copy After:=Sheets(53)

Sheets("51 (2)").Name = "52"

'changement de date et de numero de semaine

Range("A6").Select

ActiveCell.FormulaR1C1 = "='51'!R[12]C+1"

Range("F2").Select

ActiveCell.FormulaR1C1 = "='51'!RC:R[1]C+1"

'selection des onglets

Sheets(Array("model", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", _

"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24")).Select

Sheets("model").Activate

Sheets(Array("25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", _

"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49")).Select Replace _

:=False

Sheets(Array("50", "51", "52")).Select Replace:=False

Sheets(Array("model", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", _

"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "52")).Select

Sheets("52").Activate

Sheets(Array("24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", _

"37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48")).Select Replace _

:=False

Sheets(Array("49", "50", "51")).Select Replace:=False

'impression du fichier pdf creator

Application.ActivePrinter = "PDFCreator sur Ne00:"

ExecuteExcel4Macro _

"PRINT(1,,,1,,,,,,,,2,""PDFCreator sur Ne00:"",,TRUE,,FALSE)"

Range("B2:C3").Select

Selection.Copy

'suppression des onglets aprés travail

Sheets(Array("model", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", _

"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24")).Select

Sheets("1").Activate

Sheets(Array("25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", _

"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49")).Select Replace _

:=False

Sheets(Array("50", "51", "52")).Select Replace:=False

Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _

"16", "17", "18", "19", "20", "21", "22", "23", "24", "25")).Select

Sheets("1").Activate

Sheets(Array("26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", _

"39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50")).Select Replace _

:=False

Sheets(Array("51", "52")).Select Replace:=False

Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _

"16", "17", "18", "19", "20", "21", "22", "23", "24", "52")).Select

Sheets("52").Activate

Sheets(Array("25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", _

"38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49")).Select Replace _

:=False

Sheets(Array("50", "51")).Select Replace:=False

Application.CutCopyMode = False

ActiveWindow.SelectedSheets.Delete

Sheets("Initialisation").Select

End Sub

comme vous pouvez le voir ma methode ne casse pas des briques, et je ne peux l'ameliorer seul pour l'instant

Merci de votre aide

Bonjour,

Avez-vous le fichier correspondant à cette macro ? Merci.

Sinon pour les "répétitifs" il y a plusieurs sortes de boucle en VBA afin de n'écrire qu'une fois les instructions, sauf qu'il faut trouver la bonne combinaison de variables afin de "décaler" son fonctionnement....

@ bientôt

LouReeD

Bonjour et merci Looreed pour votre réponse, je suis actuellement sur mon lieu de travail et le système informatique de l'entreprise ne me permet pas de télécharger le fichier sur le forum... par contre je peux l'envoyer par mail... si vous le désirez vous pouvez me communiquer votre mail en MP et je vous envois le fichier dans la foulée

En vous remerciant

Merci LouReed pour le fichier "legerement" modifié, vivement que je sache faire ce genre de chose aussi rapidement.

top maitise

Rechercher des sujets similaires à "simplification code vba"