Bonjour le forum,
Voilà j'ai un code en VBA qui me permet de réattribuer mes formules automatiquement si quelqu'u tripotte mon fichier:
Sub Attribuer_formule_colonnes(mois)
Dim test As Integer
Sheets(mois).Activate
Columns("C:C").Select
ActiveWorkbook.Names.Add Name:="ColGet" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C3,,,COUNTA(" & mois & "!C3)-1)"
Columns("D ").Select
ActiveWorkbook.Names.Add Name:="ColCE" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C4,,,COUNTA(" & mois & "!C4)-1)"
Columns("E:E").Select
ActiveWorkbook.Names.Add Name:="ColGdP" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C5,,,COUNTA(" & mois & "!C5)-1)"
Columns("F:F").Select
ActiveWorkbook.Names.Add Name:="ColAcc" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C6,,,COUNTA(" & mois & "!C6)-1)"
Columns("H:H").Select
ActiveWorkbook.Names.Add Name:="ColU" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C8,,,COUNTA(" & mois & "!C8)-1)"
Columns("N:N").Select
ActiveWorkbook.Names.Add Name:="ColCreation" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C14,,,COUNTA(" & mois & "!C14)-1)"
Columns("O:O").Select
ActiveWorkbook.Names.Add Name:="ColRefonte" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C15,,,COUNTA(" & mois & "!C15)-1)"
Columns("P ").Select
ActiveWorkbook.Names.Add Name:="ColModifBDE1E4" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C16,,,COUNTA(" & mois & "!C16)-1)"
Columns("Q:Q").Select
ActiveWorkbook.Names.Add Name:="ColModifBDE4" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C17,,,COUNTA(" & mois & "!C17)-1)"
Columns("R:R").Select
ActiveWorkbook.Names.Add Name:="ColElectre" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C18,,,COUNTA(" & mois & "!C18)-1)"
Columns("S:S").Select
ActiveWorkbook.Names.Add Name:="ColPanne" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C19,,,COUNTA(" & mois & "!C19)-1)"
Columns("U:U").Select
ActiveWorkbook.Names.Add Name:="ColE1" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C21,,,COUNTA(" & mois & "!C21)-1)"
Columns("V:V").Select
ActiveWorkbook.Names.Add Name:="ColE2" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C22,,,COUNTA(" & mois & "!C22)-1)"
Columns("W:W").Select
ActiveWorkbook.Names.Add Name:="ColE3" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C23,,,COUNTA(" & mois & "!C23)-1)"
Columns("X:X").Select
ActiveWorkbook.Names.Add Name:="ColE4" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C24,,,COUNTA(" & mois & "!C24)-1)"
Columns("Y:Y").Select
ActiveWorkbook.Names.Add Name:="ColE5" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C27,,,COUNTA(" & mois & "!C27)-1)"
Columns("AE:AE").Select
ActiveWorkbook.Names.Add Name:="ColE6" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C31,,,COUNTA(" & mois & "!C31)-1)"
Range("A1").Select
test = MsgBox("Réattribution des formules terminée! Retour au menu?", vbYesNo)
If test = vbYes Then
Accueil.Show
ElseIf test = vbNo Then
Exit Sub
End If
End Sub
Voilà je voudrais savoir si il est possible de l'optimiser ou bien non?
Merci d'avance
Voilà j'ai un code en VBA qui me permet de réattribuer mes formules automatiquement si quelqu'u tripotte mon fichier:
Sub Attribuer_formule_colonnes(mois)
Dim test As Integer
Sheets(mois).Activate
Columns("C:C").Select
ActiveWorkbook.Names.Add Name:="ColGet" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C3,,,COUNTA(" & mois & "!C3)-1)"
Columns("D
ActiveWorkbook.Names.Add Name:="ColCE" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C4,,,COUNTA(" & mois & "!C4)-1)"
Columns("E:E").Select
ActiveWorkbook.Names.Add Name:="ColGdP" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C5,,,COUNTA(" & mois & "!C5)-1)"
Columns("F:F").Select
ActiveWorkbook.Names.Add Name:="ColAcc" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C6,,,COUNTA(" & mois & "!C6)-1)"
Columns("H:H").Select
ActiveWorkbook.Names.Add Name:="ColU" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C8,,,COUNTA(" & mois & "!C8)-1)"
Columns("N:N").Select
ActiveWorkbook.Names.Add Name:="ColCreation" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C14,,,COUNTA(" & mois & "!C14)-1)"
Columns("O:O").Select
ActiveWorkbook.Names.Add Name:="ColRefonte" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C15,,,COUNTA(" & mois & "!C15)-1)"
Columns("P
ActiveWorkbook.Names.Add Name:="ColModifBDE1E4" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C16,,,COUNTA(" & mois & "!C16)-1)"
Columns("Q:Q").Select
ActiveWorkbook.Names.Add Name:="ColModifBDE4" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C17,,,COUNTA(" & mois & "!C17)-1)"
Columns("R:R").Select
ActiveWorkbook.Names.Add Name:="ColElectre" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C18,,,COUNTA(" & mois & "!C18)-1)"
Columns("S:S").Select
ActiveWorkbook.Names.Add Name:="ColPanne" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C19,,,COUNTA(" & mois & "!C19)-1)"
Columns("U:U").Select
ActiveWorkbook.Names.Add Name:="ColE1" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C21,,,COUNTA(" & mois & "!C21)-1)"
Columns("V:V").Select
ActiveWorkbook.Names.Add Name:="ColE2" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C22,,,COUNTA(" & mois & "!C22)-1)"
Columns("W:W").Select
ActiveWorkbook.Names.Add Name:="ColE3" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C23,,,COUNTA(" & mois & "!C23)-1)"
Columns("X:X").Select
ActiveWorkbook.Names.Add Name:="ColE4" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C24,,,COUNTA(" & mois & "!C24)-1)"
Columns("Y:Y").Select
ActiveWorkbook.Names.Add Name:="ColE5" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C27,,,COUNTA(" & mois & "!C27)-1)"
Columns("AE:AE").Select
ActiveWorkbook.Names.Add Name:="ColE6" & mois, RefersToR1C1:="=OFFSET(" & mois & "!R4C31,,,COUNTA(" & mois & "!C31)-1)"
Range("A1").Select
test = MsgBox("Réattribution des formules terminée! Retour au menu?", vbYesNo)
If test = vbYes Then
Accueil.Show
ElseIf test = vbNo Then
Exit Sub
End If
End Sub
Voilà je voudrais savoir si il est possible de l'optimiser ou bien non?
Merci d'avance