Demande d'aide pour un programme VBA

Bonjour tout le monde,

J'ai une erreur de type 13: "incompatibilité de type" au niveau de la ligne 5 et 6:
"Cells(i, 40) = CDate(Right(Cells(i, 40), 2) & "/" & Mid(Cells(i, 40), 5, 2) & "/" & Left(Cells(i, 40), 4))"

Qui pourrait m'aider sur ca ?

Sub changement_date()
Dim i As Double
i = 2
Do While Cells(i, 1) <> ""
Cells(i, 40) = CDate(Right(Cells(i, 40), 2) & "/" & Mid(Cells(i, 40), 5, 2) & "/" & Left(Cells(i, 40), 4))
'Cells(i, 42) = CDate(Right(Cells(i, 42), 2) & "/" & Mid(Cells(i, 42), 5, 2) & "/" & Left(Cells(i, 42), 4))
i = i + 1
Loop
End Sub

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour,
    tu n'expliques ni ce que contiennent les colonnes 40 et 42, ni ce que tu veux obtenir.
    1. Contributeur
      essaie ceci, pour comprendre ce que fait ton programme:
      Cells(i, 40) = Right(Cells(i, 40), 2) & "/" & Mid(Cells(i, 40), 5, 2) & "/" & Left(Cells(i, 40), 4)
    2. Merci @yg_be !

      Au fait la cellule "cells(2,40)" contient un nombre dont le format est : "20170302" et je veux changer ça en format date: "02/03/2017" et le mettre dans la même cellule.

      Merci cordialement !
    3. Contributeur
      @papish_4732utilise plutôt
      dim i as long

      quelles sont les valeurs précises en colonne 40 ou 42 sur la ligne où tu as l'erreur?
  2. ça vient toujours pas !

    J'ai essayé avec la fonction DateSerial(), ça marche dans la base mais ça me renvoie toujours une erreur de type 13: "Incompatibilité de type" au niveau de la ligne: "L_Annee = Left(Cells(i, 42), 4)"

    Sub changement_date()
    Dim i As Double
    Dim Le_mois As Integer, Le_jour As Integer, L_Annee As Integer
    i = 2
    Do While Cells(i, 1) <> ""
    L_Annee = Left(Cells(i, 42), 4)
    Le_mois = Mid(Cells(i, 42), 5, 2)
    Le_jour = Right(Cells(i, 42), 2)
    Cells(i, 42) = DateSerial(L_Annee, Le_mois, Le_jour)
    i = i + 1
    Loop
    End Sub

    Merci cordialement !
    1. Contributeur
      que contient Cells(i, 42)?
  3. Cells(i,42) contient les nombres du type : "20170302", que j'extraie pour le convertir en date.
    1. Contributeur
      tu as des soucis à toutes les lignes?
      cela n'a jamais fonctionné nulle part?
  4. ça fonctionne mais ça renvoie une erreur de type 13 : "Incompatibilité de type"
    1. Contributeur
      veux-tu dire que cela fait une partie du travail, et que cela s'arrête ensuite avec un message d'erreur?
      quelle est la valeur de i au moment du message d'erreur?
  5. dés la premiére valeur de i
    1. Contributeur
      pourquoi écris-tu alors que cela fonctionne?
      quel est le contenu exact de la cellule en deuxième ligne et 42ième colonne?
  6. le contenu est : 02/03/2017 mais c'est pas en format date de plus ça me renvoie cette erreur
    1. Contributeur
      normal alors que cela ne fonctionne pas.
      le code est conçu pour traiter des nombres du type : "20170302".
      si tu changes d'avis, il faut réécrire le code.
  7. bonjour,
    je parle après exécution au fait.
    1. Contributeur
      cela devient petit à petit tout-à-fait incohérent.