Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur d'éxecution 13

  • Initiateur de la discussion Initiateur de la discussion Jum_o
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jum_o

XLDnaute Junior
Bonjour à tous,

Tout d'abord merci de votre aide. Je sais que des sujets de ce type ont déja été traités mais je n'ai pas trouvé de solutions.
J'execute une macro (qui marchait trés bien jusqu'au passage à l'année 2009) et la un message d'erreur : Erreur d'exécution 13: Incompatiblité de type apparait.

Ma macro me permet en fonction de la date actuelle, de sélectionner le mois juste avant.
Voici mon code avec en italique le bout de code surligné:

Dim wrk As Workbook
Dim i, j As Integer
Dim nom_onglet As String
Dim DD As Date
Dim date_en_cours As String

DD = Now()
MOIS = Format(DD, "mm") - 1
ANNEE = Format(DD, "yyyy")
date_en_cours = CDate("01/" & MOIS & "/" & ANNEE)

Je pense (pas sur) que la macro se dit aujourd'hui 05/01/2009 je retranche 1 mois ce qui donne 01/00/2009 d'ou le message d'erreur.

Auriez-vous une solution?

Merci bcp

Jum_o
 
Re : Erreur d'éxecution 13

Bonjour,

Tu peux essayer ceci:
Code:
[I]date_en_cours = DateSerial(Year(Date), Month(Date) - 1, 1)[/I]

Cela donne le 1er jour du mois précédant. (01/12/2008)

A+
 
Re : Erreur d'éxecution 13

Mais ne vais-je pas retrouver le même problème du passage de l'année 2008 a 2009 si je mets:

DateAdd("m", -1, Now())?? ne va-t-il pas assimiler ca à 05/00/2009

La pour l'instant j'ai modifié mon code comme suit :

DD = Now()
MOIS = Format(DD, "mm") + 11
ANNEE = Format(DD, "yyyy") - 1
date_en_cours = CDate("01/" & MOIS & "/" & ANNEE)

mais ce serait cool de ne pas avoir à le faire chaque nouvelle année!!
 
Re : Erreur d'éxecution 13

Re bonjour le fil
en plus court pour avoir le 01 du mois précedent quelque soit la date et l'année
utilise la fonction de feuille de calcul "FindeMois"
Application.WorksheetFunction.EoMonth(Date, -2) + 1
nota, il est préferable d'utiliser Date que Now() si l'on a besoin que de dates.
Bon courage et à +
Denis
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
359
Réponses
10
Affichages
718
Réponses
2
Affichages
703
Réponses
3
Affichages
1 K
Réponses
9
Affichages
784
  • Question Question
Microsoft 365 Erreur de macro
Réponses
4
Affichages
819
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…