Passage obligé par une cellule

Bonjour à tous

Je dois obliger l'utilisateur à modifier la valeur d'une cellule (O3) avant d'aller plus loin, et faire en sort de figer les autres cellules tant que celle ci (O3) n'a pas été modifiée. y a t'il une macro qui correspondrait à cet action. J'ai eu beau chercher, mais sans résultat!

Merci pour votre aide

Bonjour Phuteau,

Voici un code à mettre dans la feuille en question

Private Sub Worksheet_Change(ByVal Target As Range)
  ' Si une modification est effectuée en dehors de la cellule O3
  If Intersect(Target, Range("O3")) Is Nothing Then
    ' Si la cellule O3 est vide
    If Range("O3") = "" Then
      ' En cas d'erreur on continue
      On Error Resume Next
      ' Désactiver les évènements
      Application.EnableEvents = False
      ' Annuler la modification faite
      Application.Undo
      ' Ré-activer les évènements
      Application.EnableEvents = True
      ' Petit message
      MsgBox "Vous devez commencer par saisir une valeur dans O3"
      ' Ré-activer les erreurs
      On Error GoTo 0
    End If
  End If
End Sub

A+

Merci BrunoM45 pour ta réponse,

Lorsque je copie la macro il m'affiche ceci:

"Erreur compilation End sub attendu".

Quel serait la solution?

Merci à toi pour ton aide

Re,

La solution copier la procédure en entier avec le "End Sub"

Oui je suis d'accord, c'est bien ce que j'ai fait mais...! je t'es mis un fichier joint, si tu peux regarder.

Merci

Re,

Aille ya yaille

Sub obliger()
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Rien ne te choque !?

De plus tu as mis ça dans un module, qu'ai-je dis dans mon post ??

Aller un peu de réflexion STP

A+

je pense que ce qui te choque c'est "Sub obliger" le problème qu'il me demande un nom pour la macro, je met quoi? le nom que j'avais donner était "obliger" ce qui ma donner "Sub obliger".

j'ai apporté une modification en supprimant le module et en collant ta macro dans la feuille, sans résultat. je te remet le fichier joint.

encore un indice STP.

Merci

Re,

Voici ton fichier avec le code modifié

  ' Si une modification est effectuée en dehors de la cellule Q4
  If Intersect(Target, Range("Q4")) Is Nothing Then
    ' Si la cellule Q4 est vide
    If Range("Q4") = "" Then

Bon, il est vrai aussi que le code que j'avais créé à l'origine était à mettre dans ThisWorkbook,

ce qui n'est pas toujours pratique

A

Un grand merci pour ce que tu fais, je suis bluffé !

Par contre ta macro ne fonction que si Q4 est a zéro, alors qu'il faudrait que ce soit a chaque démarrage. Y a t'il moyen de rectifier cela?

Sans vouloir abuser, aurais tu une macro qui permettrait de rajouter +1 dans une cellule lorsqu'on la sélectionne.

exemple: V13 affiche "3" et passe à "4" des que l'on sélectionne la cellule.

encore merci, et bravo!

phuteau a écrit :

Un grand merci pour ce que tu fais, je suis bluffé !

De rien, y'a juste un peu d'années de métier

phuteau a écrit :

Par contre ta macro ne fonction que si Q4 est a zéro, alors qu'il faudrait que ce soit a chaque démarrage. Y a t'il moyen de rectifier cela?

Tu peux répéter la question ??

phuteau a écrit :

Sans vouloir abuser, aurais tu une macro qui permettrait de rajouter +1 dans une cellule lorsqu'on la sélectionne.

exemple: V13 affiche "3" et passe à "4" des que l'on sélectionne la cellule.

Par simple sélection, c'est tout à fait faisable, je te fais ça

A+

Re,

Voilà pour la partie sélection cellule = +1

A+

phuteau a écrit :

Par contre ta macro ne fonction que si Q4 est a zéro, alors qu'il faudrait que ce soit a chaque démarrage. Y a t'il moyen de rectifier cela?

Tu peux répéter la question ??

A+

je vais essayer d'être le plus clair possible,

La cellule "Q4" doit être modifier à chaque fois que l'application est mise en route pour que les statistiques soit correctes.

Exemple: à l'ouverture de l'application la cellule Q4 affiche "12" afin de ne pas oublier de changer sa valeur en "13" il me faut une macro qui m'oblige à passer par cette cellule et à la modifier.

hors la macro que tu ma fait ne fonctionne que si elle est à zéro et que l'on oubli de la remplir.

En résumer il faut m'obliger à modifier la valeur de la cellule Q4 avant d'aller plus dans le tableau.

Merci

Re,

Et pourquoi ne pas incrémenter automatiquement la valeur de cette cellule ?

Comme ça tu n'as plus besoin du code de vérification de la cellule

A+

je ne sais pas faire, en sachant que ce n'est pas forcement une suite, on peut passer de 13 a 16, hors quand tu incrémente ces bien pour une suite de chiffre si je ne me trompe pas. non sincèrement je ne vois pas, mais tu as pu te rendre compte j'ai tout a apprendre, je suis novice.

Merci pour ta patience

Re,

J'ai peut-être LA solution

Une cellule, par exemple BG2, va contenir la valeur Faux ou Vrai

Faux = si aucune modification du nombre d'intervention

Vrai = si modification effectué

A l'ouverture du classeur, un petit rappel

Si aucune modification, la valeur est toujours à faux et empêche la modification des cellules

Si la modification est faite, plus rien n'empêche la saisie

A la fermeture, cette valeur est remise à zéro et on recommence

A+

T'es un AS, mille fois merci.

je vous envis tous de savoir manier comme ça l'informatique.

Encore merci et bonne soirée

A chacun son métier et ses passions

Bonne soirée

Rechercher des sujets similaires à "passage oblige"