Arrêter la macro même si la condition est vrai

Bonjour à tous,

A partir du planning ci-joint j'ai à nouveaux besoins d'aide.

Le planning gère l'utilisation des moyens. Les formules de l'onglet dispo permet de signaler si les moyens sont dispo ou indispo ou en erreur. En erreur se sont des moyens qui sont utilisés par exemple 2 fois le matin ou 2 fois l'après-midi ou matin + toute la journée...etc

Lorsque le moyen est en erreur il y a une macro qui s'exécute avec l'affichage d'une msgbox dans l'onglet planning pour signaler le pb de l'onglet dispo.

Private Sub Worksheet_Change(ByVal Target As Range)

Set ERREUR = Worksheets("Dispo").Range("D:I").Find(What:="erreur*", LookIn:=xlValues)
If Not ERREUR Is Nothing Then

MsgBox ("Surutilisation d'un salarié ou d'un moyen")

End If
End Sub

J'aimerais que la macro s'arrête à partir du moment où le message s'est affiché une fois et qu'on a cliqué sur OK. Malheureusement la condition est toujours vrai (lorsque l'on a pas fait de modification volontairement suite à l'erreur) et donc je n'arrive pas à l'arrêté.

En effet l'utilisateur peut laisser la surutilisation pour différentes raisons, exemple plusieurs tâches dans l'après-midi,..etc

Pouvez-vous m'aider à résoudre mon problème ?

Merci

Florence

Bonjour

Essayez comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Erreur as Range
Set Erreur = Worksheets("Dispo").Cells.Find(What:="Erreur*", LookIn:=xlValues)
On Error Resume Next
If Not Erreur Is Nothing Then
    MsgBox ("Erreur")
End If
Erreur = ""
End Sub

Le code doit être dans la feuille Planning. Veillez à supprimer aussi le même code que vous avez placé dans la feuille Dispo

Attention de supprimer le mot Erreur dans la cellule J124

Cordialement

Bonjour,

Merci pour votre retour.

Ce que je n'ai pas mis dans le fichier c'est que j'ai un onglet planning par semaine mais avec un seul onglet dispo et je sélectionne l'onglet planning cible avec une formule indirect.

Et je donc je ne veux pas que la formule contrôle avec la mention erreur (dans l'onglet dispo) disparaisse. Et je cherche depuis un bon moment comment faire. Mais comme la condition est toujours vrai le message apparait à chaque fois. Je ne sais si c'est possible. Je ne veux pas effacer la cellule avec le message d'erreur ni la cellule (dans l'onglet planning) qui provoque l'erreur car les utilisateurs sont parfois forcés de laisser en erreur. Ma demande n'est pas très logique je sais.

Florence

J'aimerais que la macro s'arrête à partir du moment où le message s'est affiché une fois et qu'on a cliqué sur OK. Malheureusement la condition est toujours vrai (lorsque l'on a pas fait de modification volontairement suite à l'erreur) et donc je n'arrive pas à l'arrêté

C'est peu compliqué là d'autant que vous travaillez avec des formules et qu'excel recalcule à chaque fois dès que vous faites un changement.
Si je reprends votre premier message, dès que vous avez une fois le message Erreur, vous ne voulez plus qu'il s'affiche ? Même si d'autres erreurs sont constatées.

Je pense qu'il faudrait plutot jouer sur un controle les plages dans la feuille Planning si par exemple vous avez plus d'une fois la même info entre B30 et B32, on affiche le message.

Exemple :
- vous avez deux fois Iveco en B30 et B31 : On affiche le message.
- Si vous ajoutez encore une fois IVECO en B32, on affiche le message
- Par contre si on affiche autre chose que Iveco en B33, on n'affiche pas de message

A voir si j'ai bien compris votre problème

Edit:
autre solution : on s'interdit d'avoir un doublon. D'ou si deux fois la même info on l'efface avec un code
Au fait pourquoi avez vous plusieurs fois le même tableau dans la feuille Planning

Merci Dan pour vos recherches.

Alors si, on peut avoir des doublons exceptionnellement dans la journée. C'est pourquoi les opérateurs doivent être prévenu via le message mais doivent pouvoir laisser le même moyen ou la ressource (2x le matin ou 2x l'après-midi, ou..;etc).

Pour répondre à ta question il y a plusieurs fois le même tableau car se sont des missions différentes, pour des clients différents donc dan la même journée.

En fait j'ai voulu le faire avec des heures à la place des plages horaires mais c'était trop compliqué.

Pour détourner la chose je me dis que je peux donner comme consigne de ne pas remplir la plage horaire lorsqu'ils veulent "forcer" l'attribution d'un moyen ou ressource déjà utilisée dans la même plage. Toutes les formules sont basées sur la ligne plage horaire. Par contre je rencontre le même problème avec l'équipe 41G ....

Voici la dernière version avec seulement une semaine au lieu de 52.

Bonjour

1. Alors si, on peut avoir des doublons exceptionnellement dans la journée. C'est pourquoi les opérateurs doivent être prévenu via le message mais doivent pouvoir laisser le même moyen ou la ressource (2x le matin ou 2x l'après-midi, ou..;etc).

Je ne parlais pas de supprimer le doublons mais que le message apparaissent si on voit un doublons dans la plage véhicule par exemple. Le but final étant que le mot erreur reste renseigné en feuille Dispo (si j'ai bien compris).

2. Pour détourner la chose je me dis que je peux donner comme consigne de ne pas remplir la plage horaire lorsqu'ils veulent "forcer" l'attribution d'un moyen ou ressource déjà utilisée dans la même plage. Toutes les formules sont basées sur la ligne plage horaire. Par contre je rencontre le même problème avec l'équipe 41G ....

Même problème ? Il me faudrait un exemple concret que je puisse comprendre et analyser. Précédemment j'ai donné un exemple avec B31...

3. Une chose que je vois aussi c'est que s'il y a un doublon (exemple un véhicule mentionné deux fois le lundi) et l'on remet le même véhicule le mardi, le message apparait de nouveau. Est-ce normal ?

Bonjour

1- Le but final étant que le mot erreur reste renseigné en feuille Dispo (si j'ai bien compris).
oui c'est ça

2 - Il me faudrait un exemple concret que je puisse comprendre et analyser. Précédemment j'ai donné un exemple avec B31...
voir exemple ci-joint :
le message apparait pour le DAF car il est utilisé 2 x le matin
le message n'apparait pas pour l'iveco car il est utilisé 1 x le matin et 1 fois l'après-midi
le message apparait pour le jumpy car il est utilisé 1 x le matin 1 fois toute la journée

3- Une chose que je vois aussi c'est que s'il y a un doublon (exemple un véhicule mentionné deux fois le lundi) et l'on remet le même véhicule le mardi, le message apparait de nouveau. Est-ce normal ?
Non ce n'est pas normal. mais il apparait à cause du lundi justement. Car le lundi il est en erreur. Mais si on enlève le véhicule le lundi pour le mardi c'est ok. Mais justement je veux avoir la possibilité de laisser en erreur (faire apparaitre le message une seule fois) et continuer à compléter le planning sans avoir le message à chaque fois que je fais une saisie.

Merci

Florence

Bonjour

Le problème est plus complexe que je n'imaginais car vous avez ajouté des listes déroulantes via l'outil contrôle de formulaire.
Si vous êtes sous Excel Windows vous auriez pu choisir les listes via le contrôle ActiveX.
Mais au delà, je me pose la question de savoir pourquoi vous n'avez pas choisi d'utiliser une liste de validation pour les choix "Matin, Après midi et Journée" ?.
En gros comme vous l'avez fait pour les véhicules.
Cela aurait été plus simple à gérer car actuellement cela complexifie le contrôle à effectuer. Il faut en effet vérifier non seulement par rapport aux doublons de véhicules ou Engins ou Salarié mais en tenant compte aussi de la période choisie

Je reprends l'exemple :
le message apparait pour le DAF car il est utilisé 2 x le matin ->
Ici admettons qu'un matin vous le changez en Après midi...
le message n'apparait pas pour l'iveco car il est utilisé 1 x le matin et 1 fois l'après-midi
--> Ici admettons que vous changez l'après-midi en matin....
Il faudra aussi effectuer une contrôle dans ces cas.

Je suppose que vous comprenez mes explications.

Crdlt

Bonjour à tous,

vue l'heure je vais me contenter d'une suggestion.
Une fois l'erreur annoncée tu mets une couleur sur ta cellule (qui restera masquée par ta MFC).
Un simple test de .Interior t'indiquera si l'alerte a déjà été faite.
Couleur à ôter en cas d'évolution
eric

Rechercher des sujets similaires à "arreter macro meme condition vrai"