J'ai des listes de jours au format texte dans un tableau excel, bien sur j'ai mis le format de cellule en Date mais sans succès, excel s'entête à reconnaitre les valeur comme texte
Voilà ce que contiennent les colonnes (des jours fériés)
Mardi 1 Janvier 2013
Lundi 1 Avril 2013
Mercredi 1 Mai 2013
Mercredi 8 Mai 2013
Jeudi 9 Mai 2013
Lundi 20 Mai 2013
Dimanche 14 Juillet 2013
Jeudi 15 Août 2013
Vendredi 1 Novembre 2013
Lundi 11 Novembre 2013
Mercredi 25 Décembre 2013
Je me suis dis qu'avec VBA j'allais pouvoir traiter ça rapidement
Voici mon code
Code:
Sub dateconvertir()
Dim x As Long, y As Long
Dim D As Variant
With Sheets("Feuil1")
For x = 2 To 12
For y = 3 To 15
D = Cells(x, y).Value
Cells(x, y).Value = CDate(D)
Next y
Next x
End With
End Sub
J'obtiens incompatibilité de type à (CDate(D))
Au début j'étais parti avec cette syntaxe plus simple mais avec le même résultat au même endroit
Code:
Sub dateconvertir()
Dim x As Long, y As Long
With Sheets("Feuil1")
For x = 2 To 12
For y = 3 To 20
Cells(x, y) = CDate(Cells(x, y))
Next y
Next x
End With
End Sub
D’après l'aide ma syntaxe est bonne , alors qu'ai-je dont encore fait de mal ?
Re : Problème de conversion de texte au format Date
Merci Dranreb
ça fonctionne un peu mieux puisque "Cells(x, y)" = 01/01/2013 mais ça plante sur la ligne ; il doit y avoir une erreur que je ne saurais corriger car je comprend mal la formule
merci quand même
cordialement
Re : Problème de conversion de texte au format Date
Bonsoir,
pour tout ce qui concerne l'extraction de chaînes de caractères de type date, tu peux regarder ce fichier.
Copie tes données à partir de A1, rentre la fonction ExtraireDate et tire la formule vers le bas.
Code:
=ExtraireDate(A1;1)
.
Tu peux ensuite te servir de la fonction DateVal pour récupérer un numéro représentant cette date dans Excel.
A+
Split(Cells(x, y).Value, " ", 2)
Représente un petit tableau à 2 éléments (0 et 1) contenant la valeur de cette cellule découpée au 1er espace en 2 morceaux seulement.
Split(Cells(x, y).Value, " ", 2)(1)
Représente donc la 2ème partie seulement, sans le jour de la semaine
CDate(Split(Cells(x, y).Value, " ", 2)(1))
le convertit en date
Cells(x, y) = CDate(Split(Cells(x, y).Value, " ", 2)(1))
l'affecte à la Value de la cellule.
À +
Re : Problème de conversion de texte au format Date
Bonjour à tous
Merci pour toutes ces infos
Rien à faire pour faire fonctionner le code, tampis ce n'est pas vital Quand à la formule excel pas de problème, elle oblige à faire quelques manipulation pour avoir les dates dans les bonnes cellules et sans formules mais ça va plus vite qu'à la main
Re : Problème de conversion de texte au format Date
Je viens de découvrir pourquoi la macro ne fonctionné pas le deuxième jour de la colonne est tout simplement inconvertible que ce soit avec la formule ou la macro ; pourquoi, aucune idée mais si je retape ce jour, ensuite la macro tourne jusqu'au lundi de pâque de l'année suivante.
J'ai récupérer les dates sur internet et peu être qu'il y a un petit malin qui a bricolé le lundi de pâques pour que l'on ne puisse utiliser les tableaux dans excel ; étrange, étrange...
Bonjour à tous
...
Quand à la formule excel pas de problème, elle oblige à faire quelques manipulation pour avoir les dates dans les bonnes cellules et sans formules mais ça va plus vite qu'à la main
Re : Problème de conversion de texte au format Date
Bonjour geedee,
c'est certain il y a toujours plus simple quand on sait cherché mais j'ai sans doute l'esprit un peu compliqué et je ne connais pas encore toutes les possibilités d'excel
mais bon tant bien que mal j'ai mon tableau avec 20 ans de jours fériés et je serais à la retraite bien avant, donc c'est suffisant
J'ai attaqué un problème bien plus ardu et je crois que je vais encore être obliger d'ouvrir un autre post d'ici quelque temps, mais avant je vais essayé d'appliquer toutes mes connaissances avec mon esprit compliqué