Execution auto macro lors de la modification d'une valeur

Bonjour à tous,

Je reviens vers vous concernant un autre petit problème que j'ai actuellement sur ma feuille de devis.

Cette fois j'aimerai afficher en en-tête la valeur de ma case D2 qui correspond au numéros du devis sur toute mes pages futures.

J'ai crée une macro qui permet cela, mon seul problème est que lorsque je modifie la valeur de ma case D2, la macro ne se réexecute pas et du coup les pages 2, 3, 4, etc n'ont plus la même valeur (du coup ils n'ont pas le même n° de devis, ce qui n'est pas très pratique pour s'y retrouver une fois imprimer).

Je vous met à disposition en PJ mon fichier.

Je vous joint également ma macro au cas ou il y est une erreur toute bête..

Sub Macro1()

'

' Macro1 Macro

' Ajouter numeros devis dans en tête du fichier

With ActiveSheet.PageSetup

'en-tête de page

.CenterHeader = Range("D2")

End With

End Sub

Private Sub Wordksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("D2")) Is Nothing Then

Macro1

End If

PJ :

Bonne journée à tous, et merci d'avance à ceux qui prendront le temps de me lire.

Cdt,

Nonow.

Bonjour

Logique car la macro Private Sub Wordksheet_Change(ByVal Target As Range) est mal placée dans ton fichier

va dans le module, enlève la macro et place là dans la feuille Devis.

Pour ce faire :

  • Clique droite sur l'onglet Devis
  • choisis l'option "visualiser le code"
  • Dans la fenetre, colle le code que tu as enlevé du module

Autre chose, mets ton numéro de devis en E2 plutôt que dans une cellule fusionnée. Règle de base, JAMAIS de fusion de cellules lorsque tu utilises la ou les cellules dans un code VBA

Si ok, lors de ta réponse, clique sur le V vert à coté du bouton EDITER, pour cloturer le fil

Crdlt

Merci de m'avoir répondu aussi vite Dan.

J'ai bien replacer le code dans le module général et j'ai bien modifier ma cellule fusionné mais lorsque je change la valeur de ma cellule, mon en tête de page n°2 ne change pas.

Voici le fichier avec les modifications.

PJ :

Cdt,

Nonow.

Bonjour,

A tester.

Cdlt.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$2" Then
        ActiveSheet.PageSetup.CenterHeader = [E2]
    End If
End Sub

Merci ça fonctionne niquel !!!

Cdt,

Nonow.

Rechercher des sujets similaires à "execution auto macro lors modification valeur"