Macro qui s'éxécute automatiquement ?

laraviole

XLDnaute Junior
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

  • Laraviole.xls
    23.5 KB · Affichages: 86

Staple1600

XLDnaute Barbatruc
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: 252
  • loupe.png
    loupe.png
    1.1 KB · Affichages: 254
Dernière édition:

mth

XLDnaute Barbatruc
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: 102
Dernière édition:

JCGL

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
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é ;)
 

laraviole

XLDnaute Junior
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
 

laraviole

XLDnaute Junior
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
 

JCGL

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Statistiques des forums

Discussions
312 228
Messages
2 086 418
Membres
103 205
dernier inscrit
zch