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

Fermé
Deb - 29 août 2018 à 15:13
 Deb - 3 sept. 2018 à 09:38
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
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 29 août 2018 à 16:05
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 30 août 2018 à 11:43
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
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
29 août 2018 à 22:14
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
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
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
30 août 2018 à 16:31
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
Bonjour titeufdu89,

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