VBA excel : insertion par macro non validée
arsouille136
-
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
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:
- VBA excel : insertion par macro non validée
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
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+
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+