Alerte VBA,erreur imcompatibilité de type

Fermé
alex-Mich Messages postés 5 Date d'inscription mercredi 2 novembre 2016 Statut Membre Dernière intervention 4 novembre 2016 - 2 nov. 2016 à 15:06
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 - 4 nov. 2016 à 16:27
Bonjour a tous,
voila j ai creer une alerte VBA dans exel qui fonctionne sauf quand une cellule est rempli par "#VALEUR!".
que dois je indiquer dans la programmation de mon alerte pour que celle si ne tienne pas compte des cellules de la meme colonne comprenant #VALEUR!
voici ma programmation:
Private Sub Workbook_Open()
'pour péremption après ouverture
Dim Délaiavantexpiration As Range
For Each Délaiavantexpiration In ActiveSheet.Range("Délai_avant_expiration")
Valeur = Cells(Délaiavantexpiration.Row, 2)

If Délaiavantexpiration <= "0" Then
MsgBox "Le Standard " & Valeur & " doit être remplacer.", vbCritical, "Standard à remplacer"
Else
End If

If (Délaiavantexpiration >= 1) And (Délaiavantexpiration < 10) Then
MsgBox "Le Standard " & Valeur & " devra bientôt être commandée.", vbExclamation, "Standard à commander"
Else
End If
Next
'pour péremption usine
Dim Datedexpiration As Range
For Each Datedexpiration In ActiveSheet.Range("Date_d_expiration")
Valeur = Cells(Datedexpiration.Row, 2)
If (Datedexpiration <= Date) And (Datedexpiration > Date - 3) Then
MsgBox "Le Standard " & Valeur & " doit être remplacer.", vbCritical, "Standard à remplacer"
Else
End If
Next

Grand merci d avance a vous tous.

3 réponses

f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
2 nov. 2016 à 15:34
Bonjour,

Ben, je serai tente de vous demander pourquoi des cellules contiennent #VALEUR! ??

Ensuite, votre fichier a dispo serait bienvenu, sans donnees confidentielles
0
alex-Mich Messages postés 5 Date d'inscription mercredi 2 novembre 2016 Statut Membre Dernière intervention 4 novembre 2016
3 nov. 2016 à 06:40
Bonjour f894009,

ma cellule marque #Valeur! car cette cellule est le résultat de la formule d une autre cellule (qui est une date)+365.

Cette cellule comprenant #VALEUR! fait partie de ma colonne Délaiavantexpiration.

j'aimerais bien envoyer mon fichier exel pour vous aider mais comment faire?

Merci a vous.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
Modifié par eriiic le 3/11/2016 à 08:38
Bonjour,

Sans que ta date d'origine n'en est pas une mais du texte (alignée à gauche et non à droite).
Revalide-là et contrôle que le format soit Standard ou Date.
cjoint.com pour déposer un fichier et coller ici le lien fourni.
eric
0
alex-Mich Messages postés 5 Date d'inscription mercredi 2 novembre 2016 Statut Membre Dernière intervention 4 novembre 2016 > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
3 nov. 2016 à 12:20
merci eric mais cela ne fonctionne pas.
j ai mis ci dessous le lien de mon fichier.
0
alex-Mich Messages postés 5 Date d'inscription mercredi 2 novembre 2016 Statut Membre Dernière intervention 4 novembre 2016
3 nov. 2016 à 12:18
voici le lien de mon fichier : https://www.cjoint.com/c/FKdlpp7Hyk3

je vous remercie d avance de votre aide.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
Modifié par eriiic le 3/11/2016 à 12:42
Parce que tu trouves que '- est une date valide ?
Teste ta cellule avant :
If Not IsError(Délaiavantexpiration) Then
...
End If

eric

edit : et tu es sûr que ce sera toujours la feuille 'Standard' active à l'ouverture ?
Dans workbook_Open tu ne spécifies pas la feuille de travail, ça sera la feuille active
0
salut eric,
je ne peux pas mettre de date car le standard n as pas encore etait ouvert c 'est pour cela que j ai mis '- sinon si je met rien il me met une valeur dans "delai avant expiration" qui ne veut rien dire.
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704 > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
3 nov. 2016 à 13:26
Bonjour eriiic,
Ben non, c'est pas une date. Il peut biaiser en modifiant sa formule en colonne J:

=SIERREUR(H6-AUJOURDHUI();"") en J6 et etirer vers le bas

pas de #VALEUR!
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704 > alex-Mich
3 nov. 2016 à 13:43
Re,

j ai mis '- sinon si je met rien il me met une valeur
Il suffit de modifier la formule de la colonne "delai avant expiration"

=SI(G6="";"";G6+365) et vous etirez vers le bas
0
merci pour votre aide à vous 2.

f894009 c est ta 1er formule qui fonctionne le mieux,seulement même si ma cellule est vide un message d'alerte apparaît.

si tu as une idee pour mon alerte dans VBA afin qu il ne tient pas compte de mes cellules vide?

mais bon tu m as déjà pas mal aide et encore merci.
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
4 nov. 2016 à 16:27
Re,

Fichier modifie, avec meme formule pour les deux colonnes.
Cette formule(=SI(G6="";"";G6+365)) qui marchait avant ne marche plus prend la colonne G en nombre et plus en date ??

https://www.cjoint.com/c/FKepBHpjwvf
0