Erreur '13' avec des dates

Bonjour à tous,

Je suis nouvelle sur ce forum (et sur VBA) et je m'attarde sur une légère erreur d'incompatibilité de type (erreur '13').

Je cherche à automatiser une rentrée de date fixe à la fin de chaque tableau de chaque onglet de mon fichier Excel.

Voici mon code :

Sub AJOUTDATE()

Dim Ws As Worksheet
Dim NvlDate As Date
Dim LastDate As Date

For Each Ws In ActiveWorkbook.Worksheets

    For i = 1 To 26
        If IsEmpty(Cells(1, i).Value) = False Then

            DerLigne = Ws.Cells(Rows.Count, i).End(xlUp).Row
            LastDate = DateValue(Range("A" & DerLigne).Value)
            NvlDate = DateAdd("m", 1, LastDate)
            Ws.Cells(DerLigne + 1, i).Value = NvlDate

       Else
       End If
   Next i

Next Ws

End Sub

L'erreur est identifiée à la ligne 13 du code. Je pense que c'est une simple fonction à ajouter mais dont je n'ai pas connaissance. Si vous pouviez m'aider dans cette erreur sûrement toute bête, je vous en remercie par avance.

Bonne journée à tous et toutes !

bonjour,

si la ligne 13 est correspond à cette instruction :

 LastDate = DateValue(Range("A" & DerLigne).Value)

probablement que la cellule identifiée par "A" & derligne, ne contient pas une chaine de caractères correspondant à une date à convertir.

essaie simplement ceci

 LastDate =Range("A" & DerLigne).Value

Bonjour ERB et bonjour H2so4 j'avais repéré la même ligne.

LastDate = Cdate(Range("A" & DerLigne).Value)

Bonjour h2so4 et Xmenpl, merci pour vos réponses,

Mes données dans le tableau sont bel et bien des dates et malgré vos deux solutions la même erreur est détectée à cette même ligne.

re-bonjour,

le problème est lié à une incompatibilité entre ton code et le contenu de la feuille. On t'a donné une piste, pour t'aider davantage merci de mettre un classeur dans lequel tu as pu reproduire cette erreur.

h2so4,

Voici mon fichier test, en soit le logiciel Excel force la main mais l'erreur est quand même présente.

En espérant que vous puissiez m'aider.

4test.xlsm (84.52 Ko)

re-bonjour,

malheureusement ton fichier ne me permet pas de tester car il utilise des formules qui font référence à un autre fichier (que tu n'as pas fourni).

mais je remarque que ton code s'applique à plusieurs feuilles, ce que je n'avait pas remarqué et ce code tel quel pourrait poser problème.

voici une correction

Sub AJOUTDATE()

Dim Ws As Worksheet
Dim NvlDate As Date
Dim LastDate As Date

For Each Ws In ActiveWorkbook.Worksheets

    For i = 1 To 26
        If IsEmpty(Ws.Cells(1, i).Value) = False Then

            DerLigne = Ws.Cells(Rows.Count, i).End(xlUp).Row
            LastDate = Ws.Range("A" & DerLigne).Value
            NvlDate = DateAdd("m", 1, LastDate)
            Ws.Cells(DerLigne + 1, i).Value = NvlDate
       End If
   Next i

Next Ws

End Sub

Aaaah en effet c'était un oublie de précision d'onglets !

Merci beaucoup, vous m'avez été d'une grande aide.

Rechercher des sujets similaires à "erreur dates"