XL 2010 Erreur d'exécution '13'

C-LAKATA

XLDnaute Nouveau
bonjour le Forum,

Je m'arrache les cheveux sur ce bug depuis 2 jours. Alors je viens crier "AU SECOURS" .
Dans une BdD j'ai des enregistrements d'appareils de mesures pour lesquels il y a une date d'étalonnage à respecter.
Via une macro, je veux extraire dans une autre feuille du même classeur les dates < à la date d'aujourd'hui +7 jours.
Au lancement de la macro, le programme se bloque avec le message (en objet).
Ci-dessous une image du programme et du bug.
Par avance, merci pour votre aide ;)
erreur exécution 13.jpg
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour C-LAKATA, le forum

Sans fichier, ça va être difficile.
On ne sait pas si votre p est une variable publique ni de quel type ou non définie et donc en variant, on ne sait pas ce qu'il y a dans vos cellules de la colonne D, dates en valeur ou texte d'une date ou autre.
votre problème vient soit de p soit d'une valeur colonne D qui n'est pas une date soit d'une valeur négative sur un calcul de date, plus probablement la deuxième option.
essayez quand même un
VB:
p = DateValue(D) - w1.Range("D" & i).Value2
sinon, mettez un fichier light et anonymisé reproduisant le problème.

Cordialement, @+
 

C-LAKATA

XLDnaute Nouveau
Bonjour C-LAKATA, le forum

Sans fichier, ça va être difficile.
On ne sait pas si votre p est une variable publique ni de quel type ou non définie et donc en variant, on ne sait pas ce qu'il y a dans vos cellules de la colonne D, dates en valeur ou texte d'une date ou autre.
votre problème vient soit de p soit d'une valeur colonne D qui n'est pas une date soit d'une valeur négative sur un calcul de date, plus probablement la deuxième option.
essayez quand même un
VB:
p = DateValue(D) - w1.Range("D" & i).Value2
sinon, mettez un fichier light et anonymisé reproduisant le problème.

Cordialement, @+
Bonjour Bernard XLD?
Tout d'abord merci d'avoir pris le temps d'examiner mon pb.
C'est en effet le premier réflexe que j'ai eu d'aller vérifier le format des cellules dan la colonne D de feuille 1 (format date) puisque ma variable "D" as Date.
Ci-joint le fichier pour y voir plus clair.
Aussi, pour info, c'est une macro que j'ai récupéré dans un tuto parce qu'elle répond à mon besoin et, qui fonctionne en l'état quand je l'active. Je n'ai rien changé au programme dans le fichier en PJ! Juste les données en Feuille 1 qui sont les miennes par rapport au projet.
 

Pièces jointes

  • Essai VBA erreur 13.xlsm
    29.5 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour C-LAKATA, Bernard,
w1.Range("D" & i) est considéré comme texte.
Essayez :
VB:
p = D - CDate(w1.Range("D" & i))
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour C-LAKATA, sylvanu, le forum

Certaines de vos cellules contiennent du texte, on le voit tout de suite en remettant un alignement standard pour les cellules, à gauche le texte, à droite les valeurs. La solution de sylvanu devrait convenir.

Cordialement, @+
1649836771618.png
 

C-LAKATA

XLDnaute Nouveau
Super, c'est exactement ce qu'il fallait.
La solution de sylvanu fonctionne à merveille.
Merci Bernard pour tes conseils et remarques, Merci sylvanu d'avoir évité que je m'arrache tout mes cheveux
:oops:
au plaisir sur ce super forum avec des supers conseillers comme vous

Forum clos
 

Discussions similaires

Réponses
2
Affichages
245

Statistiques des forums

Discussions
312 207
Messages
2 086 228
Membres
103 160
dernier inscrit
Torto