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

Deb -  
 Deb -
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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. Deb
       
      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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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. titeufdu89 Messages postés 387 Statut Membre 38
     
    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. Deb
       
      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. titeufdu89 Messages postés 387 Statut Membre 38
     
    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. Deb
       
      Bonjour titeufdu89,

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