Demande d'aide pour un programme VBA

Fermé
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021 - Modifié le 15 juin 2021 à 11:45
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 16 juin 2021 à 12:08
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

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 12:15
bonjour,
tu n'expliques ni ce que contiennent les colonnes 40 et 42, ni ce que tu veux obtenir.
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 12:22
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)
0
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
Modifié le 15 juin 2021 à 12:29
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 !
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
15 juin 2021 à 12:52
utilise 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?
0
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
Modifié le 15 juin 2021 à 13:54
ç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 !
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 16:37
que contient Cells(i, 42)?
0
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
15 juin 2021 à 17:01
Cells(i,42) contient les nombres du type : "20170302", que j'extraie pour le convertir en date.
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 17:04
tu as des soucis à toutes les lignes?
cela n'a jamais fonctionné nulle part?
0
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
15 juin 2021 à 17:07
ça fonctionne mais ça renvoie une erreur de type 13 : "Incompatibilité de type"
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 17:09
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
15 juin 2021 à 17:18
dés la premiére valeur de i
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 18:05
pourquoi écris-tu alors que cela fonctionne?
quel est le contenu exact de la cellule en deuxième ligne et 42ième colonne?
0
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
15 juin 2021 à 18:27
le contenu est : 02/03/2017 mais c'est pas en format date de plus ça me renvoie cette erreur
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
15 juin 2021 à 19:09
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.
0
papish_4732 Messages postés 28 Date d'inscription lundi 7 juin 2021 Statut Membre Dernière intervention 22 juin 2021
16 juin 2021 à 12:03
bonjour,
je parle après exécution au fait.
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
16 juin 2021 à 12:08
cela devient petit à petit tout-à-fait incohérent.
0