VBA excel : insertion par macro non validée

arsouille136 -  
 arsouille136 -
Bonjour,

contexte : classeur XL avec feuilles de relevés hebdo Sn (semaine n). 1 par sem.
j'ai fait une macro qui permet d'insérer une feuille après la semaine n en mettant à jour son nom dans l'onglet (S n+1)
NB : S15 est la feuille référence répliquée.
Ces feuilles Sn ont des références entre elles (sur Sn-1 et sur Sn+1) dans certaines cases. Il me fallait donc incrémenter toutes les ref relatives à des feuilles lors de la création d'une nouvelle feuille.


le code :

Sub nvlSem()
Names.Add Name:="NouvFeuille", RefersTo:="=" & [NouvFeuille] + 1
Sheets("S15").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "S" & Format([NouvFeuille], "00")
ActiveSheet.Range("E4") = "S" & Format([NouvFeuille], "00")
ActiveSheet.Range("E33") = "=SI(" & "S" & Format([NouvFeuille] - 1) & "!E83=1," & Chr(34) & "we" & Chr(34) & "," & Chr(34) & Chr(34) & ")"
ActiveSheet.Range("E86") = "=" & "S" & Format([NouvFeuille] - 1) & "!E84"

' nvlSem Macro
' Macro enregistrée le 02/04/2009 par'
' Touche de raccourci du clavier: Ctrl+s

End Sub



Pb :
les formules dans les cases se mettent bien à jour en fonction du rang n+i, MAIS elles apparaisent sous la forme #nom (pour E33 avec le test SI notamment) et il faut double-cliquer sur la case, et ensuite appuyer sur entrer, comme pour valider la formule insérée par la macro pour qu'elle se mette à jour.

merci de bien vouloir m'aider ! j'aimerais pouvoir finir cette feuille et pouvoir laisser les utlisateurs autonomes sur cet outil !
cordialement,

Alex
A voir également:

2 réponses

pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   646
 
Bonjour,

Aprés test, il faut juste remplacer :
ActiveSheet.Range("E33") = "=SI(" & "S" & Format([NouvFeuille] - 1) & "!E83=1," & Chr(34) & "we" & Chr(34) & "," & Chr(34) & Chr(34) & ")"

par :

ActiveSheet.Range("E33") = "=IF(" & "S" & Format([NouvFeuille] - 1) & "!E83=1," & Chr(34) & "we" & Chr(34) & "," & Chr(34) & Chr(34) & ")"

Parceque VBA est en anglais et qu'a l'interprétation il va de lui même "franciser" la formule.

A+
0
arsouille136
 
merci Pilas pour ta réponse aussi rapide !
0