XL 2010 Blocage impression si cellule non modifiée

sebbbbb

XLDnaute Impliqué
Bonjour

J'utilise le script suivant :

If ActiveSheet.Name = "SOF EXXON" Then
If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Then Cancel = True
MsgBox "VEUILLEZ INDIQUER LE NOM COMPLET DU POSTE A QUAI DANS L'ONGLET 'FICHE DONNEES' POUR POUVOIR IMPRIMER CE DOCUMENT"
End If

cependant je me rends compte que meme si celui ci fonctionne, il y a un hic car lorsque je modifie la valeur de la cellule E15 en ajoutant un chiffre (exemple DONGES N°7), le message d'alerte se lance quand même. je me rends compte en fait que si la cellule est modifiée mais qu'il reste quand même le texte lançant le script

je voudrais donc que l'impression se fasse des qu'il y a modification de la cellule E15 , même si l'on garde le texte de base

j'espère m'être explique suffisament clairement

merci par avance

seb
 

patricktoulon

XLDnaute Barbatruc
RE
bonsoir
il y a 3 choses qui vont pas dans ton if
1° le msgbox obéi a une seule condition (la première sur "SOF EXXON" )
2° la 2d condition est linéaire"if.....then....." sur la même ligne donc la ligne msgbox n'en tient pas compte
3° le test " = "DONGES N°"est restrictif dans le sens ou tu tape "toto" ça va imprimer
alors que peut Etre tu a prévu un préfixe tel que celui qui y est + un numéro il faudra que tu précise ce point

VB:
If ActiveSheet.Name = "SOF EXXON" Then

   If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Then

   Cancel = True

   MsgBox "VEUILLEZ INDIQUER LE NOM COMPLET DU POSTE A QUAI DANS L'ONGLET 'FICHE DONNEES' POUR POUVOIR IMPRIMER CE DOCUMENT"

   End If

End If

donc pour la restriction au préfixe et suffixe numérique
Code:
 If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" or left(  Range("E15").Value,9)<>"DONGES N°" and not  isnumeric(replace (Range("E15").Value,9)<>"DONGES N°" ,"")) then

ainsi pour imprimer il faudra qu'il soit inscrit "DONGES N°1" ou "DONGES N°2" ou etc......

;)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
je te l'ai donné

je te la donne en entier corrigée

VB:
If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Or Left(Range("E15").Value, 9) <> "DONGES N°" And Not IsNumeric(Replace(Range("E15").Value, "DONGES N°", "")) Then
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
VB:
If ActiveSheet.Name = "SOF EXXON" Then

   If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Or Left(Range("E15").Value, 9) <> "DONGES N°" And Not IsNumeric(Replace(Range("E15").Value, "DONGES N°", "")) Then

   Cancel = True

   MsgBox "VEUILLEZ INDIQUER LE NOM COMPLET DU POSTE A QUAI DANS L'ONGLET 'FICHE DONNEES' POUR POUVOIR IMPRIMER CE DOCUMENT"

   End If

End If
 

sebbbbb

XLDnaute Impliqué
En fait c'est ton 1er code qui fonctionne

If ActiveSheet.Name = "SOF EXXON" Then
If Sheets("Fiche Données").Range("E15").Value = "DONGES N°" Then
Cancel = True
MsgBox "VEUILLEZ INDIQUER LE NOM COMPLET DU POSTE A QUAI DANS L'ONGLET 'FICHE DONNEES' POUR POUVOIR IMPRIMER CE DOCUMENT"
End If
End If

pas le 2eme

mais ça me va comme çà

merci bcp
seb
 

sebbbbb

XLDnaute Impliqué
Hello

j'ai autre prob avec le script ci-dessous

quelqu'un pourrait il m'aiguiller svp ?

If ActiveSheet.Name = "Sof Conventionnel" Then
If Sheets("Fiche Données").Range("E15").Value = "" Then
Cancel = True
MsgBox "VEUILLEZ INDIQUER LE NOM COMPLET DU POSTE A QUAI DANS L'ONGLET 'FICHE DONNEES' POUR POUVOIR IMPRIMER CE DOCUMENT"
If Sheets("Sof Conventionnel").Range("A8").Value = "" Then
Cancel = True
MsgBox "VEUILLEZ INSERER LE NOM DE L'ARMATEUR OU OPERATEUR POUR POUVOIR IMPRIMER LE DOCUMENT"
End If
End If
End If
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 317
Membres
102 862
dernier inscrit
Emma35400