Exécuter une macro en fonction d une donnée

Bonjour,

Je souhaiterai qu une macro exécute lorsque j indique "autres" dans ma cellule A1
Pour cela, j ai créé une macro et renseigné le code suivant dans Visualiser le code :
Private Sub Worksheet_Change (ByVal Target As Range)
If Range ("A1") = "Autres" Then
Test1
End If
End Sub

Lorsque j exécute ma macro seule, j ai aucun soucis par contre dès que j indique mon code dans Visualier le code la macro est en boucle et je ne peux plus quitter Excel
Pouvez vous m aider et m indiquer comment résoudre mon problème
Merci beaucoup par avance pour votre aide

Ps : voici le détail de ma macro
Sub Test1()
Dim coeff As String
Dim nbpoint As String

coeff = InputBox("Indiquer le coefficient","Saisie du coefficient")
nbpoint = InputBox("Indiquer le nombre de points","Saisie du nombre de points")
Range ("A3") = coeff
Range ("A4") = nbpoint
End Sub

3 réponses

  1. Contributeur
    bonjour,

    C'est normal tu l'as mis dans l'événement

    Private Sub Worksheet_Change (ByVal Target As Range) 


    à chaque changement ta macro s'effectue

    Mets la dans:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Range("A1") = "Autres" Then
    Test1
    End If
    End Sub


    change tes InputBox pour forcer la saisie en numérique.
    Regarde le dernier exemple

    https://www.excel-plus.fr/vba/demvba/msgbox-inputbox-et-application-inputbox/

    la macro est en boucle et je ne peux plus quitter Excel

    petit astuce pour quitter et revenir à l'éditeur: Ctrl Pause

    voilà

    0
    1. Bonjour cs_Le Pivert,

      Merci pour ta réponse et tes conseils.
      J ai modifié le code en utilisant le BeforeDoubleClick mais je n obtiens toujours pas ce que je souhaite. Avec cette modification, la macro s exécute lorsque la cellule A1 est égale à "Autres" et que je double clique dans cette cellule or je voudrais que la macro s exécute automatiquement à chaque fois que l on choisit la donnée "Autres" dans la cellule A1.
      Encore merci ;-)
      0
    2. Contributeur
      Comme ceci:

      se déclenche au double clic dans la cellule A1 si "Autres" present

      Option Explicit
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
      If Range("A1") = "Autres" Then
      Test1
      End If
      End If
      End Sub


      voilà

      @+ Le Pivert
      0
  2. Bonjour,

    Essaye ce code peut être....
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Set plage = activesheet.Range("A1")
    If Not Intersect(Target, plage) Is Nothing And Activesheet.range("A1") = "Autres" Then
    Test1
    End if 
    Application.EnableEvents = True
    End sub


    Bonne journée
    0
    1. Bonjour tituefdu89,

      Cela ne fonctionne pas :-( avec ce code la macro ne s exécute pas

      Merci pour ta proposition et bonne journée
      0
  3. Je suis surpris que ce code ne fonctionne pas chez toi car je l'utilise tous les jours sans aucun souci... quel version d'Excel as-tu? Te serait-il possible de poster ton fichier (anonymé) que l'on puisse regarder la cause de ce problème?

    Bonne journée

    Jc
    0
    1. Bonjour titeufdu89,

      Je suis désolée de répondre qu aujourd'hui mais je n ai pas trop eu le temps
      0
    2. Je viens de re rester et cela fonctionne!!
      Mille mercis pour ton aide
      0