Une application est (quasi) créée de bout en bout par un module.
Ce module crée un TCD dans un nouvelle feuille
Sur modification du TCD, il doit y avoir une action.
Sur une feuille existante j'utiliserais
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Et sur une nouvelle feuille, comment fait-on?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
La màj du TCD déclenche l'évènement Worksheet_Calculate donc, après avoir rajouté ta feuille et fait ton TCD, tu peux ajouter une instruction (détails à définir) de ce genre dans le code du module :
Sub FeuilleEtCode() Sheets.Add.Name = "TCD" 'création du TCD For Each F In Worksheets If F.Name = "TCD" Then codeNom = F.CodeName Exit For End If Next leCode = "Private Sub Worksheet_Calculate()" & vbLf & "Msgbox ""Action""" & vbLf & "End Sub" Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode) End Sub
AV
La màj du TCD déclenche l'évènement Worksheet_Calculate donc, après avoir
rajouté ta feuille et fait ton TCD, tu peux ajouter une instruction (détails à
définir) de ce genre dans le code du module :
Sub FeuilleEtCode()
Sheets.Add.Name = "TCD"
'création du TCD
For Each F In Worksheets
If F.Name = "TCD" Then
codeNom = F.CodeName
Exit For
End If
Next
leCode = "Private Sub Worksheet_Calculate()" & vbLf & "Msgbox ""Action""" & vbLf
& "End Sub"
Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString
(leCode)
End Sub
La màj du TCD déclenche l'évènement Worksheet_Calculate donc, après avoir rajouté ta feuille et fait ton TCD, tu peux ajouter une instruction (détails à définir) de ce genre dans le code du module :
Sub FeuilleEtCode() Sheets.Add.Name = "TCD" 'création du TCD For Each F In Worksheets If F.Name = "TCD" Then codeNom = F.CodeName Exit For End If Next leCode = "Private Sub Worksheet_Calculate()" & vbLf & "Msgbox ""Action""" & vbLf & "End Sub" Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode) End Sub
AV
René Delcourt
Merci pour ta réponse. Comme d'autres calcul s'effectuent, j'ai pensé changer le code en
Sub FeuilleEtCode() For Each F In Worksheets If F.Name = Cible Then codeNom = F.CodeName Exit For End If Next leCode = "Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)" & vbLf & "recap" & vbLf & "End Sub" Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode) End Sub
Cependant, ce code fait planter Excel!!! -- René Delcourt
La màj du TCD déclenche l'évènement Worksheet_Calculate donc, après avoir rajouté ta feuille et fait ton TCD, tu peux ajouter une instruction (détails à définir) de ce genre dans le code du module :
Sub FeuilleEtCode() Sheets.Add.Name = "TCD" 'création du TCD For Each F In Worksheets If F.Name = "TCD" Then codeNom = F.CodeName Exit For End If Next leCode = "Private Sub Worksheet_Calculate()" & vbLf & "Msgbox ""Action""" & vbLf & "End Sub" Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode) End Sub
AV
Merci pour ta réponse.
Comme d'autres calcul s'effectuent, j'ai pensé changer le code en
Sub FeuilleEtCode()
For Each F In Worksheets
If F.Name = Cible Then
codeNom = F.CodeName
Exit For
End If
Next
leCode = "Private Sub Worksheet_PivotTableUpdate(ByVal Target As
PivotTable)" & vbLf & "recap" & vbLf & "End Sub"
Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode)
End Sub
Cependant, ce code fait planter Excel!!!
--
René Delcourt
La màj du TCD déclenche l'évènement Worksheet_Calculate donc, après avoir
rajouté ta feuille et fait ton TCD, tu peux ajouter une instruction (détails à
définir) de ce genre dans le code du module :
Sub FeuilleEtCode()
Sheets.Add.Name = "TCD"
'création du TCD
For Each F In Worksheets
If F.Name = "TCD" Then
codeNom = F.CodeName
Exit For
End If
Next
leCode = "Private Sub Worksheet_Calculate()" & vbLf & "Msgbox ""Action""" & vbLf
& "End Sub"
Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString
(leCode)
End Sub
Merci pour ta réponse. Comme d'autres calcul s'effectuent, j'ai pensé changer le code en
Sub FeuilleEtCode() For Each F In Worksheets If F.Name = Cible Then codeNom = F.CodeName Exit For End If Next leCode = "Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)" & vbLf & "recap" & vbLf & "End Sub" Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode) End Sub
Cependant, ce code fait planter Excel!!! -- René Delcourt
La màj du TCD déclenche l'évènement Worksheet_Calculate donc, après avoir rajouté ta feuille et fait ton TCD, tu peux ajouter une instruction (détails à définir) de ce genre dans le code du module :
Sub FeuilleEtCode() Sheets.Add.Name = "TCD" 'création du TCD For Each F In Worksheets If F.Name = "TCD" Then codeNom = F.CodeName Exit For End If Next leCode = "Private Sub Worksheet_Calculate()" & vbLf & "Msgbox ""Action""" & vbLf & "End Sub" Application.VBE.ActiveVBProject.VBComponents(codeNom).CodeModule.AddFromString (leCode) End Sub