VBA : Run a Sub automatiquement

trudy2

XLDnaute Nouveau
Bonjour à tous !

Je pense que vous n'aurez pas de soucis à résoudre mon problème, même si je n'ai rien trouvé sur le net pouvant m'aider.

J'ai créé un Sub qui définit le minimum et le maximum de l'abscisse d'un graphique en fonction de ces deux variables. Elles sont situées en "A1" et "B1". L'idée est que lorsque je change une de ces valeurs, le sub s'exécute automatiquement.

J'ai écrit ceci :

Code:
Sub MySub()

    Application.Volatile
    
    Dim MyMin As Double
    Dim MyMax As Double
    
    MyMin = Worksheets("Sheet1").Cells(1, 1)
    MyMax = Worksheets("Sheet1").Cells(1, 2)
    
    ActiveSheet.ChartObjects("Chart 3").Activate
    ActiveChart.Axes(xlCategory, xlSecondary).Select
    
    With ActiveChart.Axes(xlCategory, xlSecondary)
        .MinimumScale = MyMin
        .MaximumScale = MyMax
    End With
    
End Sub

J'avais espéré que le "Application.Volatile" aurait fonctionné, mais ce n'est pas le cas. Que dois-je faire pour que ce sub soit exécuté automatiquement (en changeant une cellule ou en appuyant F9) ?

Merci d'avance.

Trudy.
 
C

Compte Supprimé 979

Guest
Re : VBA : Run a Sub automatiquement

Bonjour Trudy2,

Il faut lancer ta procédure avec du code dans ta feuille ou tu modifies ta valeur
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Or Target.Address = "$B$1" Then
    Call MySub
  End If
End Sub

"Call" n'est pas obligatoire c'est pour une meilleurs compréhension

Cordialement.
 

trudy2

XLDnaute Nouveau
Re : VBA : Run a Sub automatiquement

Bonjour Bruno et merci beaucoup pour ta réponse aussi rapide !

Ca n'a hélas pas fonctionné. J'ai bien mis ton bout de code au bon endroit je pense, mais lorsque je modifie les cellules, le graphique ne change pas. En revanche, si je fais aller le Sub manuellement depuis le module2, alors le graphique se modifie.

J'insère le fichier Excel un pièce jointe, est-ce que toi ou quelqu'un d'autre peut jeter un oeil pour me dire ce que je fais faux ?

Merci d'avance !

Trudy.
 

Pièces jointes

  • SpreadYTW(forum).xls
    160 KB · Affichages: 391

klin89

XLDnaute Accro
Bonjour trudy2, BrunoM45

Tu as bien placé le code de Bruno dans le module de la feuille concerné ?
Chez moi, ça fonctionne.

Klin89

Edit : tu l'as placé dans le ThisWorkbook :p, il faut le mettre dans Sheet1.
 
Dernière édition:

trudy2

XLDnaute Nouveau
Re : Re: VBA : Run a Sub automatiquement

En mettant le code de Bruno dans "Sheet1". Excel plante lorsque je modifie les cellules A1 ou B1. Ce n'est pas le cas chez vous ?

"Microsoft Office Excel has encountered a problem and needs to close. We are sorry for the inconvenience."
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : VBA : Run a Sub automatiquement

Bonsoir Trudy2,

Effectivement, en modifiant une valeur Excel Plante !
Tes 2 cellules sont liées à une formule quelque part !?

Je vérifie également

A+
 

trudy2

XLDnaute Nouveau
Re : VBA : Run a Sub automatiquement

Bonjour BrunoM45,

Le problème vient des noms que j'ai défini dans Excel. (Insert -> Name -> Define...). En les supprimant, ton bout de code fonctionne très bien. J'essaie de trouver un moyen de contourner ce problème, car j'ai besoin de ces noms. Si tu as une idée, n'hésite pas.

En attendant, je vais créer un bouton où l'on pourra cliquer manuellement pour faire aller la macro. :-( En tout cas, mille mercis.

Trudy.
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : VBA : Run a Sub automatiquement

Salut,

J'ai peu être trouvé une solution, car le souci vient du recalcul
1) dans ta feuille "Sheet1" tu mets ce code
Code:
Private Sub Worksheet_Calculate()
  Application.Calculation = xlCalculationManual
End Sub
2) dans ThisWorkbook, tu changes le code en mettant celui là
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Or Target.Address = "$B$1" Then
    Call MySub
  End If
  Application.Calculation = xlCalculationAutomatic
End Sub

A tester ;)

Cordialement.
 

Discussions similaires

Réponses
4
Affichages
706
Réponses
4
Affichages
1 K

Statistiques des forums

Discussions
312 206
Messages
2 086 202
Membres
103 157
dernier inscrit
youma