Empêcher une 2ème exécution d'une macro

hajorinette

XLDnaute Occasionnel
Bonjour,

J'inaugure mon inscription à ce forum et mon initiation au VBA par cette petite question.
J'ai un fichier 'litiges clients':

La 1ere feuille: fiche des réclamations ou je saisie les différentes informations sur le litige.

La 2ème feuille: tableau des litiges ou chaque litige est sur une seule ligne et a un unique N°litige.

pour saisir la réclamation au tableau des litiges, j'ai crée une macro qui saisie les données de la réclamation à la dernière ligne du tableau et qui incrémente le N° de litige associé.

J'aimerai qu'on puisse exécuter cette macro une seule fois ,pour éviter davoir un meme litige sur 2 lignes du tableau

J'ai pensé a comparer le nom du client avec la ligne au dessus et si c'est le même demander a effacer la dernière ligne.

Je suis preneuse de toutes les idées

Merci par avance (euh? j'ai dit "petite" question?):rolleyes:
 

hajorinette

XLDnaute Occasionnel
Re : Empêcher une 2ème exécution d'une macro

Ce que j'aimerai savoir précisément c'est si il y a un code pour que le bouton de contrôle associé à la macro ne puisse s'exécuter qu'une seule fois pour chaque session.
Sinon un code pour comparer deux cases ( nom de client et n de litige) des deux dernières lignes d'un tableau.
 

JNP

XLDnaute Barbatruc
Re : Empêcher une 2ème exécution d'une macro

Bonjour Hajorinette et bienvenue :),
Si je comprends bien ta question et si, en parlant de session, tu parles de l'ouverture et de la fermeture du classeur, et non de la session Windows, je dirais :
Je publierais une variable booléenne dans un module :
Code:
Public AFaire As Boolean
puis dans ThisWorkbook
Code:
Private Sub Workbook_Open()
AFaire = True
End Sub
Puis, dans ta macro, il suffit de tester si AFaire = True. A ce moment là, tu déclenche ta macro, et à la fin, tu passes AFaire = False. Ta macro ne pourra pas être redéclenchée (sauf bug).
Bonne soirée :cool:
 

hajorinette

XLDnaute Occasionnel
Re : Empêcher une 2ème exécution d'une macro

Dernière question
Serait-il possible de renvoyer un MsgBox "vous ne pouvez faire de saisie" lors de la deuxieme demande d'exécution de la marco? dans ce cas ou est ce que je devrait demander ça dans le code de ma macro.
Merci d'avance
 

JNP

XLDnaute Barbatruc
Re : Empêcher une 2ème exécution d'une macro

Bonjour Hajorinette :),
La réponse est dans ta question :D. Le MsgBox est à mettre au niveau du test :
Code:
If AFaire = False Then
     MsgBox("Vous ne pouvez pas faire de saisie !")
     Exit Sub
End If
Bonne journée :cool:
 

JNP

XLDnaute Barbatruc
Re : Empêcher une 2ème exécution d'une macro

Re :),
Erreur,
Code:
If AFaire = False Then [B][COLOR=red]' Si c'est la 1° fois, AFaire = True donc le programme se continue après End If[/COLOR][/B]
     MsgBox("Vous ne pouvez pas faire de saisie !") [COLOR=red][B]' Sinon, le message[/B][/COLOR]
     Exit Sub [B][COLOR=red]' Puis sortie de la macro[/COLOR][/B]
End If
Bonne soirée :cool:
 

Discussions similaires

Réponses
3
Affichages
320

Membres actuellement en ligne

Statistiques des forums

Discussions
312 520
Messages
2 089 297
Membres
104 092
dernier inscrit
karbone57