Macro qui s'éxécute automatiquement ?

  • Initiateur de la discussion Initiateur de la discussion laraviole
  • 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 !

L

laraviole

Guest
Bonsoir le Forum,
En haut d'une colonne d'un fichier Excel j'ai un menu et suivant la sélectionque je fais j'ai des nombre ou des %. J'ai une table de correspondance qui me donne 1 ou 2 si c'est nombre ou %. Une petite macro me permet de changer le format des cellules en cliquant sur un petit bouton.
Question: Est-il possible d'avoir le changement automatique du format sans cliquer sur le petit bouton qui lance la macro suivant la valeur 1 ou 2 de la cellule A1
Petit exemple de joint
Merci pour vos réponses et votre aide
Cordialement
Laraviole
 

Pièces jointes

Re : Macro qui s'éxécute automatiquement ?

Bonsoir

Pour savoir si c'est possible
Deux réflexes:
ALT+F11 puis F1
ou
Yclick la loupe tout là haut à droite: loupe.png

EDITION: Bonsoir mth, JCGL
 

Pièces jointes

  • loupe.png
    loupe.png
    1.1 KB · Affichages: 264
  • loupe.png
    loupe.png
    1.1 KB · Affichages: 266
Dernière édition:
Re : Macro qui s'éxécute automatiquement ?

Bonsoir Staple1600,
J'ai testé ton conseil cela me donne l'aide microsoft mais j'avoue que je n'ai pas trouvé, ni la loupe d'ailleurs
Merci pour ta réponse
Cdt
Laraviole
 
Re : Macro qui s'éxécute automatiquement ?

Bonsoir Laraviole, hello staple 🙂

Pour cela il faut une macro évènementielle, qui va se déclencher dès que tu modifieras ta cellule.

Tu dois placer ton code ici, dans la Feuil1 donc comme ceci





Ensuite, pour indiquer que la macro ne doit se déclencher qu'à la modification de ta cellule D2, tu peux placer une instruction du type:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D2")) Is Nothing Then
'... ton code'
End If
End Sub

Tu peux en profiter pour éliminer les SELECT inutiles, par exemple en remplaçant
Code:
Columns("D:D").Select
    Selection.NumberFormat = "0.00"

par
Code:
Columns("D:D").NumberFormat = "0.00"

Bien à toi,

mth

Edit: 🙂 🙂 🙂 Hello JC, bises 🙂 🙂 🙂
 

Pièces jointes

  • microsoftpowerpointprse.png
    microsoftpowerpointprse.png
    99.6 KB · Affichages: 115
Dernière édition:
Re : Macro qui s'éxécute automatiquement ?

Bonjour à tous,

Peux-tu essayer avec ceci dans le code la feuille concernée :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then Call Changement_Format
End Sub

A + à tous

Édition : Salut Mimi. Plein de bises citronnées...
Salut l'Agrafe
 
Dernière édition:
Re : Macro qui s'éxécute automatiquement ?

BonsoiRe


Laraviole
La loupe c'est celle du site (elle se trouve en haut à droite l'écran) quand tu navigues sur XLD.

Vu que tu es inscrit depuis 2007, je pensais que tu étais un utilisateur coutumier du moteur de recherche d'XLD.

Je m'a trompé - Désolé 😉
 
Re : Macro qui s'éxécute automatiquement ?

Bonsoir tout le monde,
Merci pour vos réponses
La réponse de mth fonctionne, JCGL j'ai une erreur de compilation lorsque je change de valeur dans le menu avec ta solution. Il est fort probable que c'est moi qui fait une erreur.Quand à la loupe, je n'avais jamais fait attention à ce raccourci, j'ai appris plein de chose ce soir.
Encore merci pour votre aide
Cordialement
Laraviole
 
Re : Macro qui s'éxécute automatiquement ?

Bonsoir tout le monde,
Tout fonctionne JCGL, mon erreur était d'avoir supprimé le module pour tout ramener dans la feuille1
Carcharodon-Carcharias, j'ai fait les téléchargements VBA.
Une nouvelle fois merci à tous
Trés cordialement
Laraviole
 
Re : Macro qui s'éxécute automatiquement ?

Bonjour à tous,

Si tu préfères "tout" dans un seul code et dans le code de la feuille concernée :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$2" Then
        With Columns("D:D")
            If Range("A1") = 1 Then
                .NumberFormat = "0.00"
            Else
                .NumberFormat = "0.00%"
            End If
            Range("D2").Select
        End With
    End If
End Sub

A + à tous
 
Re : Macro qui s'éxécute automatiquement ?

BonsoiRe

Histoire de croiser JCGL 😉

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$2" Then
    Columns("D:D").NumberFormat = IIf([A1] = 1, "0.00", "0.00%")
    Range("D2").Select
    End If
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
838
D
  • Question Question
Réponses
5
Affichages
250
Didierpasdoué
D
Réponses
3
Affichages
222
Réponses
23
Affichages
684
Retour