Executer une macro sans bouton

Résolu
Aurelie -  
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'essaie de lancer une macro avec exécution automatique dès qu'une cellule est modifiée.

Voici ce que j ai écrit :

Private Sub Worksheet_Change(ByVal Target As Range)
' Montantdemande
' Dim Range As Integer, commentaire As String
'Commentaire en fonction du montant
Select Case (Range("c12"))
Case 500 To 80000
commentaire = "OK"
Case Else
commentaire = "Doit etre compris entre 500CHF et 80'000CHF"
End Select

ActiveSheet.Unprotect Password:="aaaa"
Range("i12") = commentaire
ActiveSheet.Protect "aaaa"

End Sub

Mais vous l'aurez compris... ça ne fonctionne pas... par contre quand je nomme ma macro et que je la joue grâce au bouton "run", elle fonctionne
Je vous remercie grandement par avance pour votre aide!
Aurélie

6 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    si vous pouvez déposer un modèle de ce que vous avez testé, macro incluse et qui ne fonctionne pas, on pourra voir chez nous (surtout chez l'ami Michel, parce que moi et VBA...bof!)
    voyez si vous pouvez déposez ici par exemple: http://mon-partage.fr
    et revenez coller le lien créé sur le site
    une question idiote (mais elle est de moi, ça ne surprendra personne!): vous avez bien inscrit la macro dans le code de la feuille, pas dans un module VBA?
    à vous lire
    1
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Le principe:S ans m'occuper de la feuille protégée



    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Attention !
      Avec la procédure worksheet.change
      La valeur dans C12 doit ^etre OBLIGATOIREMENT une saisie manuelle
      0
  3. Aurelie
     
    Merci beaucoup mais il n y a toujours rien qui se lance... je vous avoue que je ne comprends pas du tout pourquoi... je désespère de mon niveau en vba
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour

      Bin, j'vois pas... j'avais testé et c'était bon....
      0
  4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    et salut Michel (ça roule?)
    juste en aparté après test chez moi, ça ne fonctionne pas non plus mais ça fonctionne quand on remplace:
    If target.address="$C$12" Then
    par
    If target.Cells = Range("C12") Then

    ne me demandez pas pourquoi...!
    crdlmnt
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      salut Vaucluse
      c'est curieux chez moi ca marchait....peut-^tre une question de version Excel....

      @+
      0
    2. Aurelie
       
      Merci beaucoup

      Je ne comprends pas ça ne fonctionne toujours pas... j ai pourtant teste les deux versions...
      Merci en tout cas à vous deux

      Bien cordialement
      Aurélie
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Aurelie
     
    la question n etait pas idiote... c etait visiblement moi l'idiote!
    Merci bcp à vous deux cela fonctionne désormais

    Bien cordialement
    0
  7. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Pas de quoi
    je passe le sujet en résolu
    Bonne route
    crdlmnt
    0