activation macro via changement valeur cellule

  • Initiateur de la discussion Initiateur de la discussion charette63
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

charette63

XLDnaute Occasionnel
Bonjour à toutes et tous

j'ai une macro qui modifie le nom de l'onglet d'une feuille suivant la valeur d'une cellule lorsque une modification survient dans une des deux premieres colonnes de la premiere feuille (nommée "récapitulatif")

voici le code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
Dim Feuille As Worksheet
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name <> "récapitulatif" Then
If Feuille.Name <> Feuille.Range("E2") Then Feuille.Name = Feuille.Range("E2")
End If
Next
End Sub

le problème est que la macro s'active quand on change manuellement une valeur, mais les cellules des deux premieres colonnes sont modifiées via des liaisons et la macro ne s'active pas.

une (des) solution(s)

merci pour votre aide

cordialement
Thierry
 
Re : activation macro via changement valeur cellule

Bonjour,

En passant par un worksheet_calculate() ?
"Cet événement se produit après le recalcul de la feuille de calcul, pour l'objet Worksheet."
En bidouillant un peu on teste si les valeurs changent, si c'est le cas on déclenche la macro.

Ca aide?
 
Re : activation macro via changement valeur cellule

Salut charette63 et le forum
Pas sûr de comprendre le problème :
Dans récapitulatif, tu as, mettons 2 noms :
E2 : "AA"
E3 : "BB"
tu changes un nom
=> remplace "AA" par "CC"
=> d'après ce que je comprends, tu voudrais que E2 déclenche une macro même si la feuille n'est pas active et remplace un nom de feuille au moment du changement en regardant tous les noms des feuilles, trouver celui qui n'existe pas en E de récapitulatif et le remplacer par celui de E qui n'existe pas dans les noms des feuilles ?

Je pense qu'avant de se lancer dans une usine à gaz, il serait peut-être intéressant de réfléchir au besoin réel et de voir si d'autres options ne seraient pas envisageables : une feuille masquée servant de "mémoire" de l'état précédent de "récapitulatif" par exemple, avec nom d'onglet ("Name") et nom informatique ("(Name)")
A+
 
bonjour, sympa de vous interesser à mon problème,

un petit dessin vaut mieux qu'un long discours, je joint donc deux petits fichiers, la manip à tester est notée sur la feuille "récapitulatif"

petite demande supplèmentaire, si une solution est trouvée, pourriez vous mettre le code ici sur le forum, je suis au taf jusque demain matin, et le serveur n'accepte pas les pieces jointes

merci
 

Pièces jointes

Re : Re: activation macro via changement valeur cellule

Un peu à la brut, pour éviter de lancer la macro à tout va on peut insérer une condition supplémentaire... Qui dépendra de l'utilisation du logiciel.

Code à insérer dans le 2ème classeur, avant ou après la sub "worksheet_change" :
Code:
Private Sub Worksheet_Calculate()
Dim Feuille As Worksheet
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "horaire" Then
            If Feuille.Name <> Feuille.Range("C1") Then Feuille.Name = Feuille.Range("C1")
        End If
    Next
    
End Sub

Ca le fait?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
791
Réponses
7
Affichages
455
Réponses
4
Affichages
586
Réponses
3
Affichages
333
Réponses
4
Affichages
736
Retour