Erreur d'execution '13' Incompatibilité de type

Bonjour à tous!

J'ai un fichier qui convertit des dates d'un planning de production en dates de période comptable.

Le principe est qu'une date au planning de prod par exemple le 28/01/2021 sera en réalité comptabilisée sur la période comptable de 02/2021.

Pour pouvoir suivre les quantités produites par période comptable, nous avons recours à une macro de conversion qui vient rechercher dans un onglet appellé "date à prendre" la période comptable concernée.

L'onglet date à prendre se présente de la manière suivante :

MoisDébutfin
janv-1622/12/201521/01/2016

Le problème est qu' il y a le code suivant dans le VBA qui génère une erreur d'execution '13' incompatibilité de type sur la ligne en orange ci-dessous :

Sub Dates_comptable()

Dim Mois As String
Dim pctCompl As Single

pctCompl = 0
progress pctCompl

'==============================Saisie donnée planning dans tableau macro==========================

nblig = Sheets("New Planning").Range("C" & Rows.Count).End(xlUp).Row
nbcol = Sheets("New Planning").Cells(4, Columns.Count).End(xlToLeft).Column

Dim TabPlanning()
ReDim TabPlanning(1 To nblig, 1 To nbcol)

For i = 1 To nblig
For j = 1 To nbcol
TabPlanning(i, j) = Sheets("New Planning").Cells(i, j)
Next j
Next i

'=================================================================================================

'========Créé un Tableau TabDateMois avec les dates par mois à prendre en compte===================

NbLigDate = Sheets("Date à prendre").Range("A" & Rows.Count).End(xlUp).Row
NbcolDate = Sheets("Date à prendre").Cells(1, Columns.Count).End(xlToLeft).Column

Dim TabDateMois
ReDim TabDateMois(1 To NbLigDate, 1 To NbcolDate)

For i = 1 To NbLigDate
For j = 1 To NbcolDate
TabDateMois(i, j) = Sheets("Date à prendre").Cells(i, j)
Next j
Next i
'======================================================================================================

'==========Créer un tableau TabFinal en mettant le mois "comptable" correspond ========================

Dim TabFinal
ReDim TabFinal(1 To nblig, 1 To nbcol)

For i = 5 To nblig
For j = 4 To nbcol
For k = 2 To NbLigDate
Mois = Format(TabPlanning(i, j), "mmmm")
If Mois = "" Then GoTo suite
A = DateSerial(Year(TabPlanning(i, j)), Month(TabPlanning(i, j)), 1)
If DateSerial(Year(TabPlanning(i, j)), Month(TabPlanning(i, j)), 1) = TabDateMois(k, 1) Then
DateTrouve = "OUI"
LigMois = k
k = NbLigDate
For m = LigMois - 1 To LigMois + 1
If TabPlanning(i, j) >= TabDateMois(m, 2) And TabPlanning(i, j) <= TabDateMois(m, 3) Then
TabFinal(i, j) = TabDateMois(m, 1)
m = LigMois + 1
End If
Next m
End If
Next k
If DateTrouve = "NON" Then
MsgBox "Manque des mois dont au moins le mois de " & Mois & "-" & Year(TabPlanning(i, j)) & " dans onglet Date à prendre"
Exit Sub
End If
suite:
Next j
Next i
'===================================================================================================

'================remplissage de l'onglet Planning CI================================================

boucle = nblig * nbcol

For i = 5 To nblig
For j = 4 To nbcol
Sheets("Planning CI").Cells(i, j) = TabFinal(i, j)
Next j

pctCompl = ((i * j) / boucle) * 100
progress pctCompl

Next i

Sheets("Planning CI").Activate

Sheets("Planning CI").Range(Cells(5, 4), Cells(nblig, nbcol)).Select
Selection.NumberFormat = "mm/yyyy;@"

'======================================================================================================

Sheets("Planning CI").Range("A1").Select

End Sub

Merci beaucoup pour votre aide!

Tom

bonjour,

tes dates sont-elles bien au format date ? Merci de mettre un classeur représentatif de ton problème.

Hello,

Effectivement c'était simplement un problème de format !

Merci pour l'aide!

Rechercher des sujets similaires à "erreur execution incompatibilite type"