Afficher un message d'erreur

french_guy

XLDnaute Nouveau
Bonjour,
Je souhaite afficher un message d'erreur en fonction d'1 test sur 2 cellules
Si D5=0 et D6<>0, alors afficher une fenetre avec un message d'erreur type "Il ne peut pas y avoir de volume si Status=0"
Comment faire? Dois je passer par une macro?
Et surtout comment etendre ce test a toutes les colonnes (de D a S)?

merci
 

Pièces jointes

  • Test.xls
    13.5 KB · Affichages: 86
  • Test.xls
    13.5 KB · Affichages: 87
  • Test.xls
    13.5 KB · Affichages: 89

job75

XLDnaute Barbatruc
Re : Afficher un message d'erreur

Bonjour,

Il faudrait savoir comment D5 et D6 sont renseignées : manuellement ou par formule ?

Si c'est manuellement, utiliser la Validation de données (menu Données) dans ces 2 cellules.

Si c'est par formules, à quel moment, par quel évènement (entrée dans ue cellule ou autre), vous voulez obtenir ce message ?

Edit : pardon je n'avais pas vu le fichier

A+
 
Dernière édition:

french_guy

XLDnaute Nouveau
Re : Afficher un message d'erreur

Bonjour,

Il faudrait savoir comment D5 et D6 sont renseignées : manuellement ou par formule ?

Si c'est manuellement, utiliser la Validation de données (menu Données) dans ces 2 cellules.

Si c'est par formules, à quel moment, par quel évènement (entrée dans ue cellule ou autre), vous voulez obtenir ce message ?

A+

D5 et D6 seront rempli par une formule, en provenance d'autres cellules
 

job75

XLDnaute Barbatruc
Re : Afficher un message d'erreur

Re, salut Kobaya2, bienvenue sur XLD,

C'est donc par formules... Il va falloir une macro :)

Mais vous voulez étendre ça à toutes les colonnes...

Pour qu'il n'y ait qu'un seul message (et pas une foultitude), il faut un évènement qui dépende d'une seule colonne. Je n'en vois que 2 :

- Change

- SelectionChange

Toutes 2 concerneront une ou plusieurs cellules dans chaque colonne, lesquelles ?

A+
 

french_guy

XLDnaute Nouveau
Re : Afficher un message d'erreur

Euh....Suis pas sur de bien comprendre la question (totalement novice en macro et VB...:eek::eek::eek:)
En fait, j'ai fait un essai avec une macro sur 1 colonne seulement (W) et ca semble marcher pour cette colonne
Voila une copie de la macro en provenance du vrai fichier (le fichier test n'etait qu'un exemple)
Private Sub Worksheet_Calculate()
If Range("W874").Value = 0 And Range("W877").Value <> 0 Then
MsgBox "This press has volume loaded...You can't have that Press inactive, unless you remove the volume "
End If
End Sub

Mais:
1) Je ne sais pas comment etendre cette macro a toutes les autres colonnes (de N a BU dans le vrai fichier)
2) je suis d'accord qu'il y ait un risque d'avoir une foultitude de messages, ce qui n'est pas l'ideal
3) pour info, c'est en Anglais car je suis Francais mais travaille aux USA :)

D'avance merci pour l'aide
 

french_guy

XLDnaute Nouveau
Re : Afficher un message d'erreur

La colonne D5 (qui est en fait W874 dans le vrai fichier) est la suivante:
='Serv & Trials'!M27 C'est donc la recopie d'une cellule en provenance d'un autre onglet
Et la colonne D6 (qui est en fait W877 dans le vrai fichier) est la suivante:
=SUM(W894,W909,W924,W939,W954,W969,W984,W999,W1014,W1029)
 

job75

XLDnaute Barbatruc
Re : Afficher un message d'erreur

Re,

Vu votre post #7. Je venais de penser aussi à l'évènement Calculate, avec le risque de nombreux messages.

Ce sont maintenant d'autres lignes et d'autres colonnes...

Si vous ne nous donnez pas une copie (allégée, pas besoin de toutes les lignes) du vrai fichier on ne va pas s'en sortir :confused:

A+
 

job75

XLDnaute Barbatruc
Re : Afficher un message d'erreur

Re,

En fait je pense que vous avez eu la bonne intuition avec Calculate.

Avant de partir, j'ai pensé à cette macro (pas testée) :

Code:
Private Sub Worksheet_Calculate()
Dim col As Byte
For col = 14 To 73 'colonnes N à BU
If cells(874, col) = 0 And cells(877, col)  <> 0 Then
MsgBox "This press has volume loaded...You can't have that Press inactive, unless you remove the volume "
Exit For
End If
Next
End Sub

Il n'y aura bien qu'un seul message, mais à chaque recalcul de la feuille.

Si OK pas besoin de fichier.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Afficher un message d'erreur

Re,

La macro pouvant je pense se déclancher quand une autre feuille est active, il faut impérativement préciser la feuille pour les cellules étudiées, donc corrigez :

Code:
If [COLOR="Red"]Sheets("Feuil1").[/COLOR]cells(874, col) = 0 And [COLOR="Red"]Sheets("Feuil1").[/COLOR]cells(877, col)  <> 0 Then

EDITION : je pensais être sûr de moi et bien c'est faux. Pour la macro Calculate, LA FEUILLE PAR DEFAUT EST CELLE OU SE TROUVE LA MACRO. Donc inutile de préciser la feuille.

A+
 
Dernière édition:

Discussions similaires

Réponses
14
Affichages
896
Réponses
5
Affichages
453
Compte Supprimé 979
C